34 lines
1.5 KiB
XML
34 lines
1.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<odoo>
|
|
<record id="x_payment_state" model="ir.model.fields">
|
|
<field name="field_description">Zahlungsstatus</field>
|
|
<field name="model">purchase.order</field>
|
|
<field name="model_id" ref="purchase.model_purchase_order"/>
|
|
<field name="name">x_payment_state</field>
|
|
<field name="store" eval="True"/>
|
|
<field name="readonly" eval="True"/>
|
|
<field name="copied" eval="False"/>
|
|
<field name="ttype">selection</field>
|
|
<field name="selection_id">[
|
|
{'value':'not_paid','name':'Nicht Bezahlt'},
|
|
{'value':'in_payment','name':'In Zahlung'},
|
|
{'value':'paid','name':'Bezahlt'},
|
|
]</field>
|
|
<field name="depends">invoice_ids,invoice_ids.payment_state</field>
|
|
<field name="compute">for rec in self:
|
|
if rec.invoice_ids:
|
|
has_only_paid_invoices = all(rec.invoice_ids.mapped(lambda i: i.payment_state == 'paid'))
|
|
has_in_payment_invoices = any(rec.invoice_ids.mapped(lambda i: i.payment_state == 'in_payment'))
|
|
has_not_paid_invoices = any(rec.invoice_ids.mapped(lambda i: i.payment_state == 'not_paid'))
|
|
|
|
if has_only_paid_invoices:
|
|
rec['x_payment_state'] = 'paid'
|
|
elif has_in_payment_invoices:
|
|
rec['x_payment_state'] = 'in_payment'
|
|
elif has_not_paid_invoices:
|
|
rec['x_payment_state'] = 'not_paid'
|
|
else:
|
|
rec['x_payment_state'] = 'not_paid' </field>
|
|
</record>
|
|
</odoo>
|