mirror of
http://100.103.83.12:3003/fegger/odoo-at-payroll.git
synced 2026-09-17 08:52:45 +00:00
[IMP] l10n_at_hr_payroll_private: Wr. DAG, Buchungsbeleg, VWGJ-Einstufung, EFZG-Teilentgelt mit fiktiver BV (AP2d+AP3+AP9+AP4)
AP3 — Wiener Dienstgeberabgabe (U-Bahn-Steuer, RIS LrW GesNr 20000133 verifiziert): Regel WIEN_DAG (Kopfpauschale 2 Euro je DN und angefangene Woche, Wochenlogik Montag-im-Monat, Befreiungen Lehrling/55+/<=10 WStd/Karenz-Woche), Company-Flag-Verwertung, Parameter at_wien_dag_satz, FI 6663/3560 (Referenz-Rest) AP2d — Buchungsbeleg-Report am Lohnlauf (Konto/Belegtext/Soll/Haben der FI-Buchung, balancierte Summen; test_account_private-Erweiterung) AP9 — Vordienstzeiten -> Einstufung: Stufen-Schwelle vwgj_ab an l10n.at.payroll.kv.gruppe.stufe (aus Labels 'nach N VWGJ'; -1 = nicht gepflegt, ORM liest Integer-NULL als 0), CSV-Seed, _get_stufe_fuer_vwgj/_get_naechste_vwgj, Vertragsfeld l10n_at_vordienstzeit_monate + VWGJ-Vorschlag + Vorrueckungstermin (S 17 Abs 5 Rahmen-KV, Erster des Erreichungsmonats) + Uebernahme- Button (manueller Verwaltungsakt) AP4 — EFZG/Teilentgelt (AngG S 8/EFZG S 2 verifiziert, Gleichlauf 6/8/10/12+4 Wochen; lb-krs-07/08): EFZ-Phasenmaschine models/efzg.py (Kalendertage-Kontingente je Arbeitsjahr, Krank-/AU-Topf getrennt, AU-Urlaubsart ATP_AU), Regeln TEIL_ENTGELT_HALB/-50 % und KRANKENTGELT_PHASE/-100 % je Arbeitstag (Tagesatz aus unreduzierter Basis), fiktive BV-Grundlage S 7 Abs 3 BMSVG im _at_bv_basis_laufen- Hook (50 % Vormonatsentgelt x Bezugs-KT/30), Parameter at_efz_stufen; Krankengeldumlage S 62 ASVG = Falsch-Praemise (kein Baustein); Rechenfaelle docs/rechenfaelle/efzg.md
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
"""Buchungsbeleg der Lohnbuchhaltung (AP2d): Druck der FI-Buchung
|
||||
eines Lohnlaufs — die account.move je Lohnlauf (bzw. je Payslip, wenn
|
||||
nicht gebatcht bucht wird) mit Konto, Belegtext, Soll/Haben und
|
||||
Summen; Kontrollgrößen stimmen mit dem Monatsjournal überein
|
||||
(GP6-Matrix, KFS/BW 6)."""
|
||||
from odoo import models
|
||||
|
||||
|
||||
class L10nAtPayrollBuchungsbeleg(models.AbstractModel):
|
||||
_name = 'report.l10n_at_hr_payroll_private.report_buchungsbeleg'
|
||||
_description = 'Buchungsbeleg Lohnlauf (AP2d)'
|
||||
|
||||
def _get_report_values(self, docids, data=None):
|
||||
runs = self.env['hr.payslip.run'].browse(docids)
|
||||
laeufe = []
|
||||
for run in runs:
|
||||
# Batch-Buchung hängt am Lauf, sonst je Payslip-Move
|
||||
# (hr_payroll_account schreibt move_id je Slip bzw. je Run).
|
||||
moves = (run.move_id + run.slip_ids.mapped('move_id')) \
|
||||
.filtered(lambda m: m.state != 'cancel')
|
||||
zeilen = moves.line_ids.filtered(
|
||||
lambda l: l.debit or l.credit).sorted(
|
||||
key=lambda l: (l.account_id.code or '', l.id))
|
||||
laeufe.append({
|
||||
'run': run,
|
||||
'moves': moves,
|
||||
'zeilen': zeilen,
|
||||
'summe_soll': sum(zeilen.mapped('debit')),
|
||||
'summe_haben': sum(zeilen.mapped('credit')),
|
||||
})
|
||||
return {'docs': runs, 'laeufe': laeufe}
|
||||
Reference in New Issue
Block a user