mirror of
http://100.103.83.12:3003/fegger/odoo-at-payroll.git
synced 2026-09-17 16:56:42 +00:00
9b4221fcef
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
32 lines
1.4 KiB
Python
32 lines
1.4 KiB
Python
# 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} |