Files
odoo-at-payroll/addons/l10n_at_payroll_agent/__manifest__.py
T
fegger a848c07e96 [ADD] l10n_at_payroll_agent: PV-agent review bridge for payout plausibility
PV-agent bridge (D25/M4.1): Odoo stays the system of record; the
standalone, KB-bound knowledge service (pv-agent) reviews plausibility
and returns evidence-backed answers (mode=review, agent API v1). No
back path: the agent never calls Odoo and receives no personal data —
only the minimized, schema-bound review context.

- context builder: projects a computed draft payslip with an
  ATP_PRAMIE input (planned one-off payout) onto the review context
  (facts + computation): gross wage (hr.version.wage), applying
  collective agreement (version.kv_id) and the draft's DG/LST lines
  (SVDG_*/LST_*/FLAFDB/KOMMST/DZ/BVG/WIEN_DAG)
- client (stdlib urllib, no extra dependency): POST /v1/ask with
  X-Request-ID, bearer key from company settings (pv_agent_url /
  pv_agent_api_key, group_hr_payroll_user); neutral UserErrors,
  technical details only in the server log
- review wizard on the draft payslip: agent answer (evidence-backed),
  structured verdict (plausible / implausible / not checkable) and
  checks in the dialog
- security: wizard bound to hr_payroll.group_hr_payroll_user; agent
  service key stored on res.company, never logged; 5 tests
2026-09-17 13:50:18 +02:00

43 lines
1.9 KiB
Python

# Part of the odoo-at-payroll project. License: LGPL-3.
{
'name': 'Österreich - PV-Agent Prüfung (AT Payroll Agent)',
'version': '19.0.1.0.0',
'author': 'Florian Egger',
'website': 'https://gem360.at',
'category': 'Human Resources/Payroll',
'description': """
PV-Agent-Brücke (D25/M4.1)
==========================
Odoo orchestriert und rechnet (System of Record); der eigenständige,
KB-gebundene Wissensdienst (pv-agent) prüft Plausibilität und liefert
belegte Antworten. Kein Rückpfad: Der Agent ruft niemals Odoo auf und
erhält keine Personendaten — nur das minimierte, schema-gebundene
Kontextformat der Agent-API v1 (mode=review).
- **Pilot-Workflow „Geplante Auszahlung prüfen“:** Wizard am gerechneten
Draft-Lohnzettel mit ATP_PRAMIE-Eingabe. Der Kontext-Builder projiziert
Bruttolohn (hr.version.wage), anwendenden KV (version.kv_id) und die
DG-/LST-Zeilen des Drafts (SVDG_*/LST_*/FLAFDB/KOMMST/DZ/BVG/WIEN_DAG)
auf das Review-Kontextformat (facts + computation).
- **Client (stdlib urllib, kein Zusatz-Dependency):** POST /v1/ask mit
X-Request-ID, Bearer-Key aus den Unternehmensstammdaten
(res.company.pv_agent_url / pv_agent_api_key, group_hr_payroll_user);
neutrale UserError-Meldungen, technische Details nur im Server-Log.
- **Antwortdarstellung:** Agent-Antwort (belegt), strukturiertes
Verdict (plausible / implausible / nicht prüfbar) und Prüfpunkte im
Dialog. Odoo bleibt autoritativ für Zahlen; der Agent korrigiert nichts
stillschweigend (D25).
- Privacy: Der Agentendienst läuft lokal (Tailscale-Host); die
Datenschutzerarbeitung bleibt in Odoo. Der Wizard ist an
hr_payroll.group_hr_payroll_user gebunden.
""",
'depends': ['l10n_at_hr_payroll_private'],
'data': [
'security/ir.model.access.csv',
'views/pv_agent_review_views.xml',
],
'countries': ['at'],
'license': 'LGPL-3',
'installable': True,
'auto_install': False,
}