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: GP8 Vertragsstichtage-UI, All-in-Deckungsrechnung, DAG-Ausweis, Frist-mBGM-Verlinkung
Vertragsstichtage-UI (views/vertragsfelder_views.xml): GP4-Felder (ALV-Entfall, UV-Entfall, PV-Bonusphase, LNK-frei) + Status (Lehrling, fallweise, Familienabsetzbetrag, ueberw. Nachtarbeit) als gruppierte Payroll-Seite am Mitarbeiterformular (Muster: KV-Einstufung + BV-Gruppe). All-in-Deckungsrechnung (report/gp8_reports.xml — QWeb auf hr.payslip): GP2-_at_allin_deckung als Ausweis (Pauschale vs. Bezuege, Rest = Über-/Unterdeckung; § 2g AVRAG). DAG-Ausweis (QWeb auf hr.payslip.run): § 1 DAG je Monat — Lohnsumme der Geringfuegigen, Schwelle (1,5 × GFG), Abgabe 19,4 % (GP4 _l10n_at_dag). Frist-mBGM-Verlinkung (models/fristen_private.py): ref_mbgm_id-Feld am Fristenkalender (Kernmodell kennt mBGM nicht) + action_zum_objekt-Super-Chain; _l10n_at_verlinke_deklarationen setzt Sprungziele fuer offene L16- und mBGM-Fristen. 19.0.8.0.0. Tests: GP8-Kernsuite 6 (100/100 gesamt).
This commit is contained in:
@@ -8,4 +8,5 @@ from . import bv_report
|
||||
from . import account_chart_private
|
||||
from . import account_posting_private
|
||||
from . import mbgm
|
||||
from . import versichertenmeldung
|
||||
from . import versichertenmeldung
|
||||
from . import fristen_private
|
||||
@@ -0,0 +1,48 @@
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
"""GP8-Privat: Verlinkung des Fristenkalenders mit den
|
||||
privatwirtschaftlichen GP7-Deklarationen (L16/mBGM-Sprungziele)."""
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class L10nAtPayrollFrist(models.Model):
|
||||
_inherit = 'l10n.at.payroll.frist'
|
||||
|
||||
ref_mbgm_id = fields.Many2one(
|
||||
'l10n.at.payroll.mbgm', string='mBGM-Deklaration',
|
||||
help='Sprungziel für SV-Fristen (Privatmodul — das '
|
||||
'Kernmodell kennt mBGM nicht).')
|
||||
|
||||
def action_zum_objekt(self):
|
||||
"""Sprung zur GP7-Deklaration (L16 oder mBGM)."""
|
||||
self.ensure_one()
|
||||
result = super().action_zum_objekt()
|
||||
if result is not True:
|
||||
return result
|
||||
if self.ref_mbgm_id:
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'l10n.at.payroll.mbgm',
|
||||
'res_id': self.ref_mbgm_id.id,
|
||||
'view_mode': 'form',
|
||||
}
|
||||
return True
|
||||
|
||||
def _l10n_at_verlinke_deklarationen(self):
|
||||
"""Sprungziele für offene L16- und mBGM-Fristen setzen: neueste
|
||||
Deklaration des Bezugsjahres verlinken, wenn vorhanden."""
|
||||
for frist in self:
|
||||
if frist.fristart in ('l16', 'arbeitsstaette'):
|
||||
l16 = self.env['l10n.at.payroll.l16'].search([
|
||||
('company_id', '=', frist.company_id.id),
|
||||
('jahr', '=', frist.jahr),
|
||||
], order='id desc', limit=1)
|
||||
frist.ref_l16_id = l16 or False
|
||||
elif frist.fristart == 'sv_mbgm':
|
||||
mbgm = self.env['l10n.at.payroll.mbgm'].search([
|
||||
('company_id', '=', frist.company_id.id),
|
||||
('beitragsmonat', '>=',
|
||||
'%d-%02d-01' % (frist.jahr, frist.monat or 1)),
|
||||
('beitragsmonat', '<=',
|
||||
'%d-%02d-01' % (frist.jahr, frist.monat or 12)),
|
||||
], order='id desc', limit=1)
|
||||
frist.ref_mbgm_id = mbgm or False
|
||||
Reference in New Issue
Block a user