summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-03-27 16:20:05 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-03-27 16:20:05 +0700
commitb105f669873645f29314be55aac45d95d0556970 (patch)
treeba934dfaaf3e3adba0f42598c432cddd6ee1fa98
parent1e3da858c3d924a8fc61c83115ffce654198b10b (diff)
fix bug
-rw-r--r--indoteknik_custom/models/mrp_production.py7
-rw-r--r--indoteknik_custom/models/stock_move.py21
-rw-r--r--indoteknik_custom/views/mrp_production.xml3
3 files changed, 19 insertions, 12 deletions
diff --git a/indoteknik_custom/models/mrp_production.py b/indoteknik_custom/models/mrp_production.py
index 1813dbeb..d80df2ce 100644
--- a/indoteknik_custom/models/mrp_production.py
+++ b/indoteknik_custom/models/mrp_production.py
@@ -11,6 +11,7 @@ class MrpProduction(models.Model):
desc = fields.Text(string='Description')
sale_order = fields.Many2one('sale.order', string='Sale Order', required=True, copy=False)
production_purchase_match = fields.One2many('production.purchase.match', 'production_id', string='Purchase Matches', auto_join=True)
+ is_po = fields.Boolean(string='Is PO')
def action_confirm(self):
"""Override action_confirm untuk mengirim pesan ke Sale Order jika state berubah menjadi 'confirmed'."""
@@ -31,6 +32,9 @@ class MrpProduction(models.Model):
if not self.state == 'confirmed':
raise UserError('Harus Di Approve oleh Merchandiser')
+ if self.is_po == True:
+ raise UserError('Sudah pernah di buat PO')
+
if not self.move_raw_ids:
raise UserError('Tidak ada Lines, belum bisa create PO')
# if self.is_po:
@@ -115,7 +119,8 @@ class MrpProduction(models.Model):
'production_id': self.id,
'order_id': new_po.id
}])
- # self.is_po = True
+
+ self.is_po = True
return po_ids
diff --git a/indoteknik_custom/models/stock_move.py b/indoteknik_custom/models/stock_move.py
index 87b1c94e..514acad0 100644
--- a/indoteknik_custom/models/stock_move.py
+++ b/indoteknik_custom/models/stock_move.py
@@ -17,16 +17,17 @@ class StockMove(models.Model):
@api.constrains('product_id')
def constrains_product_to_fill_vendor(self):
- if self.product_id:
- if self.product_id.x_manufacture.override_vendor_id:
- self.vendor_id = self.product_id.x_manufacture.override_vendor_id.id
- else:
- purchase_pricelist = self.env['purchase.pricelist'].search(
- [('product_id', '=', product_id.id),
- ('is_winner', '=', True)],
- limit=1)
- if purchase_pricelist:
- self.vendor_id = purchase_pricelist.vendor_id.id
+ for rec in self:
+ if rec.product_id and rec.bom_line_id:
+ if rec.product_id.x_manufacture.override_vendor_id:
+ rec.vendor_id = rec.product_id.x_manufacture.override_vendor_id.id
+ else:
+ purchase_pricelist = self.env['purchase.pricelist'].search(
+ [('product_id', '=', rec.product_id.id),
+ ('is_winner', '=', True)],
+ limit=1)
+ if purchase_pricelist:
+ rec.vendor_id = purchase_pricelist.vendor_id.id
def _compute_qr_code_variant(self):
for rec in self:
diff --git a/indoteknik_custom/views/mrp_production.xml b/indoteknik_custom/views/mrp_production.xml
index ffbc8659..f8278f39 100644
--- a/indoteknik_custom/views/mrp_production.xml
+++ b/indoteknik_custom/views/mrp_production.xml
@@ -6,11 +6,12 @@
<field name="inherit_id" ref="mrp.mrp_production_form_view" />
<field name="arch" type="xml">
<button name="button_mark_done" position="after">
- <button name="create_po_from_manufacturing" type="object" string="Create PO" class="oe_highlight" attrs="{'invisible': [('state', '!=', 'confirmed')]}"/>
+ <button name="create_po_from_manufacturing" type="object" string="Create PO" class="oe_highlight" attrs="{'invisible': ['|', ('state', '!=', 'confirmed'), ('is_po', '=', True)]}"/>
</button>
<field name="bom_id" position="after">
<field name="desc"/>
<field name="sale_order"/>
+ <field name="is_po"/>
</field>
<xpath expr="//form/sheet/notebook/page/field[@name='move_raw_ids']/tree/field[@name='product_uom_qty']" position="before">
<field name="vendor_id"/>