# 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}