diff options
| author | Mqdd <ahmadmiqdad27@gmail.com> | 2026-01-14 10:31:46 +0700 |
|---|---|---|
| committer | Mqdd <ahmadmiqdad27@gmail.com> | 2026-01-14 10:31:46 +0700 |
| commit | c4a4653e4065789a9c1baa97e91709ea52a6131e (patch) | |
| tree | d703a93120b084cbd6248908d8bfe4b976c2b145 | |
| parent | fc6426726da32814736d7e692448fbd08b95cafc (diff) | |
<Miqdad> Done pahri
| -rw-r--r-- | fixco_custom/models/account_move.py | 7 | ||||
| -rw-r--r-- | fixco_custom/models/purchase_order_line.py | 7 | ||||
| -rwxr-xr-x | fixco_custom/security/ir.model.access.csv | 2 | ||||
| -rw-r--r-- | fixco_custom/views/account_move.xml | 11 | ||||
| -rw-r--r-- | fixco_custom/views/purchase_order.xml | 1 | ||||
| -rw-r--r-- | fixco_custom/views/purchase_order_line_wizard.xml | 13 |
6 files changed, 27 insertions, 14 deletions
diff --git a/fixco_custom/models/account_move.py b/fixco_custom/models/account_move.py index e605f15..a0de6bb 100644 --- a/fixco_custom/models/account_move.py +++ b/fixco_custom/models/account_move.py @@ -285,8 +285,6 @@ class AccountMove(models.Model): if entry.move_type == 'out_invoice': if entry.picking_id: entry.invoice_date = entry.picking_id.date_done - - return res @api.onchange('purchase_vendor_bill_ids', 'purchase_id') @@ -359,11 +357,8 @@ class PurchaseOrderLineWizard(models.TransientModel): if move.state != 'draft': raise UserError('Invoice harus draft') - existing = move.invoice_line_ids.mapped('purchase_line_id') for po_line in self.line_ids: - if po_line in existing: - continue line = self.env['account.move.line'].with_context( check_move_validity=False @@ -372,10 +367,10 @@ class PurchaseOrderLineWizard(models.TransientModel): 'product_id': po_line.product_id.id, }) - # 🔑 trigger onchange resmi Odoo 14 line._onchange_product_id() line.name = po_line.name + # 🔹 Hanya qty yang belum di-invoice line.quantity = po_line.product_qty - po_line.qty_invoiced line.price_unit = po_line.price_unit line.tax_ids = po_line.taxes_id diff --git a/fixco_custom/models/purchase_order_line.py b/fixco_custom/models/purchase_order_line.py index 53a5eba..bdd729c 100644 --- a/fixco_custom/models/purchase_order_line.py +++ b/fixco_custom/models/purchase_order_line.py @@ -38,6 +38,13 @@ class PurchaseOrderLine(models.Model): original_price_subtotal = fields.Float(string='Original Subtotal', readonly=True) description = fields.Text(string='Description', readonly=True, copy=False) docstatus_altama = fields.Text(string='Status Altama', readonly=True, copy=False) + bill_remain = fields.Float(string='Bill Remain', readonly=True, copy=False, tracking=True, compute='_compute_bill_remain') + + @api.depends('qty_invoiced', 'product_qty') + def _compute_bill_remain(self): + for line in self: + line.bill_remain = line.product_qty - line.qty_invoiced + @api.constrains('product_id', 'price_unit', 'product_qty') def _store_original_price(self): diff --git a/fixco_custom/security/ir.model.access.csv b/fixco_custom/security/ir.model.access.csv index 4d13b37..2117f29 100755 --- a/fixco_custom/security/ir.model.access.csv +++ b/fixco_custom/security/ir.model.access.csv @@ -47,4 +47,4 @@ access_upload_cancel_picking,access.upload.cancel.picking,model_upload_cancel_pi access_upload_cancel_picking_line,access.upload.cancel.picking.line,model_upload_cancel_picking_line,,1,1,1,1 access_queue_job,access.queue.job,model_queue_job,,1,1,1,1 access_purchase_order_multi_bills,access.purchase.order.multi_bills,model_purchase_order_multi_bills,,1,1,1,1 -access_purchase_order_line_wizard,access.purchase.order.line.wizard,model_purchase_order_line_wizard,,1,1,1,1 +access_purchase_order_line_wizard,access.purchase.order.line.wizard,model_purchase_order_line_wizard,,1,1,1,1
\ No newline at end of file diff --git a/fixco_custom/views/account_move.xml b/fixco_custom/views/account_move.xml index 41ad966..69c9b47 100644 --- a/fixco_custom/views/account_move.xml +++ b/fixco_custom/views/account_move.xml @@ -35,10 +35,13 @@ </button> <xpath expr="//header" position="inside"> <button name="action_open_po_item_wizard" - type="object" - string="Add PO Items" - class="oe_highlight" - attrs="{'invisible': [('move_type','!=','in_invoice')]}"/> + type="object" + string="Add PO Items" + class="oe_highlight" + attrs="{'invisible': ['|', + ('move_type','!=','in_invoice'), + ('state','!=','draft') + ]}"/> </xpath> diff --git a/fixco_custom/views/purchase_order.xml b/fixco_custom/views/purchase_order.xml index cb85374..d254c92 100644 --- a/fixco_custom/views/purchase_order.xml +++ b/fixco_custom/views/purchase_order.xml @@ -59,6 +59,7 @@ <field name="altama_ordered" optional="hide" readonly="1"/> <field name="altama_delivered" optional="hide" readonly="1"/> <field name="altama_invoiced" optional="hide" readonly="1"/> + <field name="bill_remain" readonly="1"/> </field> </field> </record> diff --git a/fixco_custom/views/purchase_order_line_wizard.xml b/fixco_custom/views/purchase_order_line_wizard.xml index 7ae76bc..bce3667 100644 --- a/fixco_custom/views/purchase_order_line_wizard.xml +++ b/fixco_custom/views/purchase_order_line_wizard.xml @@ -8,10 +8,17 @@ <field name="arch" type="xml"> <form string="Select PO Items"> <group> - <field name="line_ids" - widget="many2many_tags" - options="{'no_create': True}"/> + <field name="line_ids"> + <tree editable="bottom"> + <field name="order_id" readonly="1"/> + <field name="product_id" readonly="1"/> + <field name="bill_remain" readonly="1"/> + <field name="qty_invoiced" readonly="1"/> + <field name="product_qty" readonly="1"/> + </tree> + </field> </group> + <footer> <button string="Add" type="object" |
