mirror of
http://100.103.83.12:3003/fegger/odoo-at-payroll.git
synced 2026-09-17 16:56:42 +00:00
[ADD] l10n_at_payroll_dokumente: generate documents from templates
Document generation module: templates with own text (structure reference and source stand documented per template, no licensed full text in the repo), fill fields resolved from hr data (company, employee, hr.version stand) plus wizard input, preview rendering and PDF/HTML attachment via the generic report layout. - templates: pilot set for the general-AT track formulated as own text after the KB muster structure (lb-bes-09, lb-bnd-55, lb-bnd-52/62, lb-end-35), legal status per template marked as draft - rendering via convert_inline_template_to_qweb + ir.qweb (t-out auto-escapes values) — deliberately not mail.render.mixin inline engine, whose expression whitelist blocks werte[...] placeholders for non-template-editors - wizard resolves hr.version by date_version at the reference date; PDF falls back to HTML attachment without wkhtmltopdf - security: ir.model.access (hr user read / manager write) + company rule; 8 tests, suite 236/236 green on a fresh -i database run
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="view_dokument_vorlage_list" model="ir.ui.view">
|
||||
<field name="name">l10n.at.payroll.dokument.vorlage.list</field>
|
||||
<field name="model">l10n.at.payroll.dokument.vorlage</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name"/>
|
||||
<field name="thema"/>
|
||||
<field name="kb_ref"/>
|
||||
<field name="quell_stand"/>
|
||||
<field name="rechtsstatus"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_dokument_vorlage_form" model="ir.ui.view">
|
||||
<field name="name">l10n.at.payroll.dokument.vorlage.form</field>
|
||||
<field name="model">l10n.at.payroll.dokument.vorlage</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<field name="rechtsstatus" widget="statusbar"
|
||||
options="{'clickable': true}"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1><field name="name" placeholder="z. B. Dienstvertrag (Angestellte)"/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="thema"/>
|
||||
<field name="active"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="kb_ref"/>
|
||||
<field name="quell_stand"/>
|
||||
<field name="rechtsstatus"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="beschreibung"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Vorlagentext" name="text">
|
||||
<field name="inhalt_html"/>
|
||||
</page>
|
||||
<page string="Befüllfelder" name="felder">
|
||||
<field name="feld_ids">
|
||||
<list editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="key"/>
|
||||
<field name="bezeichnung"/>
|
||||
<field name="quelle"/>
|
||||
<field name="pflicht"/>
|
||||
<field name="hinweis"/>
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_dokument_vorlage" model="ir.actions.act_window">
|
||||
<field name="name">Dokumentvorlagen</field>
|
||||
<field name="res_model">l10n.at.payroll.dokument.vorlage</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="context">{'default_active': True}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Erste Dokumentvorlage anlegen
|
||||
</p>
|
||||
<p>
|
||||
Eigener Text mit Platzhaltern {{ werte['key'] }}; die
|
||||
Befüllfelder steuern, was der Generierungs-Wizard abfragt.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_dokumente_root"
|
||||
name="AT Dokumente"
|
||||
sequence="50"/>
|
||||
<menuitem id="menu_dokument_vorlage"
|
||||
action="action_dokument_vorlage"
|
||||
parent="menu_dokumente_root"
|
||||
sequence="10"/>
|
||||
</odoo>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="view_dokument_wizard_form" model="ir.ui.view">
|
||||
<field name="name">l10n.at.payroll.dokument.wizard.form</field>
|
||||
<field name="model">l10n.at.payroll.dokument.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Dokument aus Vorlage generieren">
|
||||
<group>
|
||||
<group>
|
||||
<field name="vorlage_id" options="{'no_create': True}"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="datum"/>
|
||||
<field name="version_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Befüllung" name="befuellung">
|
||||
<field name="feld_wert_ids">
|
||||
<list editable="bottom">
|
||||
<field name="key" optional="show"/>
|
||||
<field name="bezeichnung" optional="show"/>
|
||||
<field name="hinweis" optional="hide"/>
|
||||
<field name="quelle" optional="show"/>
|
||||
<field name="pflicht" optional="hide"/>
|
||||
<field name="wert"
|
||||
readonly="key and quelle == 'auto'"
|
||||
required="pflicht"/>
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Vorschau" name="vorschau">
|
||||
<field name="vorschau_html" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<footer>
|
||||
<button name="action_vorschau" type="object"
|
||||
string="Vorschau erzeugen" class="btn-primary"/>
|
||||
<button name="action_pdf" type="object"
|
||||
string="PDF erzeugen & ablegen"
|
||||
class="btn-primary"/>
|
||||
<button special="cancel" string="Abbrechen"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_dokument_generieren" model="ir.actions.act_window">
|
||||
<field name="name">Dokument aus Vorlage generieren</field>
|
||||
<field name="res_model">l10n.at.payroll.dokument.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record id="action_dokument_generieren_employee" model="ir.actions.act_window">
|
||||
<field name="name">Dokument aus Vorlage generieren</field>
|
||||
<field name="res_model">l10n.at.payroll.dokument.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="context">{'default_employee_id': active_id}</field>
|
||||
<field name="binding_model_id" ref="hr.model_hr_employee"/>
|
||||
<field name="binding_view_types">list,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_dokument_generieren"
|
||||
action="action_dokument_generieren"
|
||||
parent="menu_dokumente_root"
|
||||
sequence="20"/>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user