NAV-Hintergrundaufgaben – Rechnungsabgleich, Steuerkonto, Erklärungen, Steuerschulden
Funktionsweise der NAV-Aufgabentypen: die viertelstündliche Abgleichkette, Digest- und vollständige Rechnungsabfragen, Verweisaktualisierung, Steuerkonto, fehlende Erklärungen und Steuerschulden.
Überblick
NAV-Aufgaben laufen über die zentrale Warteschlange im Systemkontext. Die NAV-Aufrufe erledigt die Bibliothek navmtom.
Aufgabentypen
| Typ | Verhalten | Tabellen |
|---|---|---|
nav_invoice_sync (je Unternehmen, an Intervallgrenzen, Standard 15 Min.) | runCompanyNavSync(): UTC-Fenster des letzten Intervalls (bei verpasstem Band bis zum letzten erfolgreichen Lauf, max. 48 Stunden); Eingang und Ausgang über nav/invoicequery::processForCronqueueJob() nach Übermittlungsdatum (INS); Zeilen nav_invoice_data für neue Rechnungen; ein verständliches NAV-Protokoll (nav/sync) und Benachrichtigungen über neue Rechnungen und Fehler | Rechnungstabellen |
nav_invoice_query (Main-Job-Posten) | Digest einer Einheit (Mandant × Fenster × Richtung) (queryInvoiceDigest, seitenweise), Kopf-Upsert, Einordnung neuer und bekannter Rechnungen, Zeilen nav_invoice_data für neue; den Fortschritt führt der Worker in der Tabelle job | invoice, job |
nav_invoice_data | queryInvoiceData, Rohantwort ins Audit, Positionen in invoice_item, Kopfsummen aus den Positionen, Zusatzdaten (line_additional_data), Aktualisierung des Partnerstamms (Bankkonto, Adresse, Steuernummer — auf Kundenseite nur bei passendem Partner), sync_status='done', status=2 | invoice, invoice_item, line_additional_data |
nav_invoice_ref | von der Funktion „NAV references“ der Rechnungsliste oberhalb der Grenze eingereiht (Payload: Rechnungs-IDs); je Rechnung dlbtinvoice->refreshKindFromNav(); was nicht passt, kommt in eine sofortige Fortsetzungszeile | invoice |
taxaccount (je Unternehmen, täglich) | nav/taxaccount::processForCronqueue(): erste 8 Ziffern der Steuernummer, adozoQuery('TetelesAdoszamla'); je Steuerart Verbindlichkeits- und Zahlungsposten mit Bankkontozuordnung, Diagnose (wiederholte Posten mit Rohantwort), Speichern mit addTaxaccount(); PDF aus der Cron-Vorlage nach der Speicherregel des Dokumentencenters (ohne Regel nur als E-Mail-Anhang), danach E-Mail | nav_tax_account, _item, _document, nav_tax_type, doc |
missingtaxreturn (je Unternehmen, täglich) | adozoQuery('HianyzoBevallas'), bekannte Schlüssel herausgefiltert, neue Zeilen über addMissingTaxReturn(), E-Mail bei neuer Lücke (Fehler protokolliert) | nav_missing_tax_return |
nav_tax_debt (global, 06:10) | nav/taxdebt::run(): Abfrage der fälligen Unternehmen gemäß Plan je Mandant (eingeschaltet und im Datumsfenster); Auswertung der Posten mit Navmtom::taxDebtItems() | nav_tax_debt, nav_tax_debt_config |
invoice | alter Typ, abgeschaltet: steht in der Reihenfolge, aber der dispatch()-Zweig ist auskommentiert und companyWantsJobType('invoice') ist immer falsch, daher entsteht keine Zeile | — |
Fehlerbehandlung
Fehler je Steuerart werden im Ergebnis gesammelt; bei einer Ausnahme wiederholt der Worker. Ein endgültiger NAV-Fehler wird einmal, ein vorübergehender Netzfehler dreimal versucht; über Fehler des NAV-Abgleichs werden die berechtigten Benutzer des Unternehmens benachrichtigt.