From 3c170c77e4913313ca28169172dbad8c8726ad5c Mon Sep 17 00:00:00 2001 From: "Indoteknik ." Date: Thu, 15 May 2025 13:19:22 +0700 Subject: (andri) add button sync price to SO & penyesuaian readonly pada orderline PO --- indoteknik_custom/models/purchase_order_line.py | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'indoteknik_custom/models/purchase_order_line.py') 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() + -- cgit v1.2.3 From 351934c0b2107782557998feb68c71cc5ba024e0 Mon Sep 17 00:00:00 2001 From: "Indoteknik ." Date: Thu, 15 May 2025 13:21:53 +0700 Subject: (andri) hapus method yang tidak diperlukan/comment --- indoteknik_custom/models/purchase_order_line.py | 49 ------------------------- 1 file changed, 49 deletions(-) (limited to 'indoteknik_custom/models/purchase_order_line.py') diff --git a/indoteknik_custom/models/purchase_order_line.py b/indoteknik_custom/models/purchase_order_line.py index 766e304b..4802ebea 100755 --- a/indoteknik_custom/models/purchase_order_line.py +++ b/indoteknik_custom/models/purchase_order_line.py @@ -388,54 +388,5 @@ class PurchaseOrderLine(models.Model): 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() -- cgit v1.2.3 From c61cb9fcd3d01b4ffafaa6446f9fd68b09a88ff7 Mon Sep 17 00:00:00 2001 From: "Indoteknik ." Date: Fri, 16 May 2025 11:17:25 +0700 Subject: (andri) hapus perubahan terkait sync price to SO pada branch ini --- indoteknik_custom/models/purchase_order_line.py | 2 -- 1 file changed, 2 deletions(-) (limited to 'indoteknik_custom/models/purchase_order_line.py') diff --git a/indoteknik_custom/models/purchase_order_line.py b/indoteknik_custom/models/purchase_order_line.py index 4802ebea..315795d5 100755 --- a/indoteknik_custom/models/purchase_order_line.py +++ b/indoteknik_custom/models/purchase_order_line.py @@ -51,8 +51,6 @@ 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 -- cgit v1.2.3