Files
Odoo-Build/snippets/ir_model.purchase_order.x_payment_state.xml
T

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>