summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/purchase_order_line.py
diff options
context:
space:
mode:
authorIndoteknik . <it@fixcomart.co.id>2025-05-15 13:19:22 +0700
committerIndoteknik . <it@fixcomart.co.id>2025-05-15 13:19:22 +0700
commit3c170c77e4913313ca28169172dbad8c8726ad5c (patch)
tree5feb24f481271c812836b88b95870b2c0be93b45 /indoteknik_custom/models/purchase_order_line.py
parent2469ee37cfe854f0419a8c3fbabed5bc32bcaa6e (diff)
(andri) add button sync price to SO & penyesuaian readonly pada orderline PO
Diffstat (limited to 'indoteknik_custom/models/purchase_order_line.py')
-rwxr-xr-xindoteknik_custom/models/purchase_order_line.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/indoteknik_custom/models/purchase_order_line.py b/indoteknik_custom/models/purchase_order_line.py
index 033469b8..766e304b 100755
--- a/indoteknik_custom/models/purchase_order_line.py
+++ b/indoteknik_custom/models/purchase_order_line.py
@@ -51,6 +51,8 @@ class PurchaseOrderLine(models.Model):
contribution_cost_service = fields.Float(string='Contribution Cost Service', compute='_compute_doc_delivery_amt')
ending_price = fields.Float(string='Ending Price', compute='_compute_doc_delivery_amt')
+ mark_po_line = fields.Boolean(string=' ', default=False, help='centang jika anda ingin menandai PO line ini')
+
def _compute_doc_delivery_amt(self):
for line in self:
# Inisialisasi nilai default untuk field computed
@@ -385,3 +387,55 @@ class PurchaseOrderLine(models.Model):
line.delivery_amt_line = delivery_amt * contribution
else:
line.delivery_amt_line = 0
+
+ # @api.model
+ # def create(self, vals):
+ # """
+ # Override method create untuk mencegah penambahan line baru
+ # jika status PO sudah bukan draft
+ # """
+ # # Cek apakah ada order_id di vals
+ # if vals.get('order_id'):
+ # order = self.env['purchase.order'].browse(vals['order_id'])
+ # # Jika status PO bukan draft, tolak pembuatan line baru
+ # if order.state in ['purchase', 'done', 'cancel']:
+ # raise UserError(_("Tidak bisa menambahkan item baru karena PO sudah dikonfirmasi atau selesai."))
+
+ # return super(PurchaseOrderLine, self).create(vals)
+
+ # def write(self, vals):
+ # """
+ # Override method write untuk membatasi field yang bisa diubah
+ # jika status PO sudah bukan draft
+ # """
+ # for line in self:
+ # if line.order_id.state in ['purchase', 'done', 'cancel']:
+ # # Hanya izinkan mengubah mark_po_line
+ # if 'mark_po_line' in vals and len(vals) == 1:
+ # # Izinkan perubahan jika hanya field mark_po_line yang diubah
+ # return super(PurchaseOrderLine, self).write(vals)
+ # else:
+ # _logger.info("Fields being updated: %s", vals.keys())
+ # raise UserError(_("Tidak bisa mengubah item karena PO sudah dikonfirmasi atau selesai."))
+
+ # return super(PurchaseOrderLine, self).write(vals)
+
+ # def toggle_mark_po_line(self):
+ # """
+ # Method khusus untuk toggle mark_po_line, aman digunakan dalam semua status PO
+ # """
+ # for line in self:
+ # line.mark_po_line = not line.mark_po_line
+ # return True
+
+ # def unlink(self):
+ # """
+ # Override method unlink untuk mencegah penghapusan line
+ # jika status PO sudah bukan draft
+ # """
+ # for line in self:
+ # if line.order_id.state in ['purchase', 'done', 'cancel']:
+ # raise UserError(_("Tidak bisa menghapus item karena PO sudah dikonfirmasi atau selesai."))
+
+ # return super(PurchaseOrderLine, self).unlink()
+