Finanzen Aktionen

Neue Aktionen für Buchungen und Abstimmungen.

Aktionen

Aktion "Als gesendet markieren" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Als gesendet markieren
Modell: account.move
Folgeaktion: Python-Code ausführen

for record in records:
	record.write({ 'is_move_sent': True })

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Buchungssätze erscheint nun in der Auswahl Aktion das Menu Als gesendet markieren.

Aktion "Als ungebucht markieren" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Als ungebucht markieren
Modell: account.move
Folgeaktion: Python-Code ausführen

for record in records:
	if record.state != 'cancel':
		UserError('Can only unpost entry if it is cancelled.')
	record.write({ 'posted_before': False })

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Buchungssätze erscheint nun in der Auswahl Aktion das Menu Als ungebucht markieren.

Aktion "Bankauszug zurücksetzen" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Bankauszug zurücksetzen
Modell: account.bank.statement
Folgeaktion: Python-Code ausführen

Kopieren Sie die folgenden Zeilen in das Feld Pythoncode:

for record in records:  
  record.button_reopen()

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Belege erscheint nun in der Auswahl Aktion das Menu Bankauszug zurücksetzen.

Aktion "Buchungszeilen aktualisieren" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Buchungszeilen aktualisieren
Modell: account.move
Folgeaktion: Python-Code ausführen

records.filtered(lambda r: r.state == "draft").with_context(check_move_validity=False)._move_autocomplete_invoice_lines_values()

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Buchungssätze erscheint nun in der Auswahl Aktion das Menu Buchungszeilen aktualisieren.

Aktion "Reset to Draft" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Reset to Draft Modell: account.move Folgeaktion: Python-Code ausführen

Kopieren Sie die folgenden Zeilen in das Feld Pythoncode:

for record in records:  
  record.button_draft()

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Buchungssätze erscheint nun in der Auswahl Aktion das Menu Reset to Draft.

Aktion "Abstimmung zurücksetzen" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Abstimmung zurücksetzen
Modell: account.bank.statement.line
Folgeaktion: Python-Code ausführen

Kopieren Sie die folgenden Zeilen in das Feld Pythoncode:

for record in records:  
  record.button_undo_reconciliation()

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Vorgänge erscheint nun in der Auswahl Aktion das Menu Abstimmung zurücksetzen.

Aktion "Reset to Posted" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Reset to Posted Modell: account.move Folgeaktion: Python-Code ausführen

Kopieren Sie die folgenden Zeilen in das Feld Pythoncode:

for record in records:  
  record.write({'state': 'posted'})

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Buchungssätze erscheint nun in der Auswahl Aktion das Menu Reset to Posted.

Aktion "Zahlung gesendet zurücksetzen" erstellen

Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Zahlung gesendet zurücksetzen
Modell: account.payment
Folgeaktion: Python-Code ausführen

Kopieren Sie die folgenden Zeilen in das Feld Pythoncode:

for record in records:  
  record.write({'is_move_sent': False})

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.

In der Liste der Zahlung erscheint nun in der Auswahl Aktion das Menu Zahlung gesendet zurücksetzen.

Geplante Aktionen

Geplante Aktion "Rechnung mit Abrechnungsinterval generieren" erstellen

Das ist eine einfach Lösung um wiederholgende Rechnung zu generieren. Mit dem Zusatzfeld x_recurring_inverval wird geprüft ob die Rechnung wieder fällig ist.

Navigieren Sie nach Einstellungen > Technisch > Geplante Aktionen und erstellen Sie einen neuen Eintrag:

Name der Aktion: Rechnung mit Abrechnungsinterval generieren
Modell: ir.actions.server
Ausführen alle: 1 Tage
Nächstes Ausführungsdatum: DD.MM.YYYY 06:00:00
Anzahl der Anrufe: -1
Folgeaktion: Python-Code ausführen

Kopieren Sie die folgenden Zeilen in das Feld Python Code:

today = datetime.datetime.today()

# Get invoices with recurring inverval within a month
invoice_ids = env['account.move'].search([
  ('x_recurring_inverval', 'in', ['monthly']),
  ('invoice_date', '>=', (today - datetime.timedelta(days=35)).strftime('%Y-%m-%d'))
], order='invoice_date desc')

# Foreach invoice check if it is due
refs = []
for invoice in invoice_ids:
  
  if invoice.x_recurring_inverval == 'monthly' and invoice.ref not in refs:
    invoice_date = invoice.invoice_date
    last_date = datetime.date(today.year, abs(today.month-1), today.day)
    refs.append(invoice.ref)
    # Duplicate invoice
    if invoice_date <= last_date:
      new_invoice = invoice.copy({'date': today})
    
    # raise UserError([invoice.name, refs, invoice_date, last_date,  invoice_date <= last_date, new_invoice])

📝 Edit on GitHubopen in new window