diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-09-26 14:56:35 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-09-26 14:56:35 +0700 |
| commit | d324fdd8ea3b14c966510bde610a96c8f5c3e3c5 (patch) | |
| tree | 92ef64b4a6614154dfbfccd175425977b8574c11 | |
| parent | 25a3271bd14671d57da6b4349745e446e94ebfef (diff) | |
Update readonly condition order line on purchase order
| -rwxr-xr-x | indoteknik_custom/models/purchase_order.py | 5 | ||||
| -rwxr-xr-x | indoteknik_custom/views/purchase_order.xml | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py index daf8d269..92df3119 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -46,6 +46,11 @@ class PurchaseOrder(models.Model): summary_qty_receipt = fields.Float('Summary Qty Receipt', compute='_compute_summary_qty') count_line_product = fields.Float('Total Item', compute='compute_count_line_product') note_description = fields.Char(string='Note', help='bisa diisi sebagai informasi indent barang tertentu atau apapun') + has_active_invoice = fields.Boolean(string='Has Active Invoice', compute='_compute_has_active_invoice') + + def _compute_has_active_invoice(self): + for order in self: + order.has_active_invoice = any(invoice.state != 'cancel' for invoice in order.invoice_ids) def add_product_to_pricelist(self): for line in self.order_line: diff --git a/indoteknik_custom/views/purchase_order.xml b/indoteknik_custom/views/purchase_order.xml index e7a72cd3..0ad76ae5 100755 --- a/indoteknik_custom/views/purchase_order.xml +++ b/indoteknik_custom/views/purchase_order.xml @@ -76,6 +76,11 @@ <field name="fiscal_position_id" position="after"> <field name="note_description"/> <field name="total_so_percent_margin"/> + <field name="has_active_invoice" invisible="1" /> + </field> + + <field name="order_line" position="attributes"> + <attribute name="attrs">{'readonly': ['|', ('state', 'in', ['done', 'cancel']), ('has_active_invoice', '=', True)]}</attribute> </field> <xpath expr="//form/sheet/notebook/page/field[@name='order_line']/tree/field[@name='price_unit']" position="attributes"> |
