diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2025-05-05 03:05:15 +0000 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2025-05-05 03:05:15 +0000 |
| commit | ca48d2fcffbb48d6b3a09360144a71101f6f41ef (patch) | |
| tree | 08769ff2dafb566042d8ecaaffff299c88aa699a /indoteknik_custom/models/sale_order.py | |
| parent | 86cccc64c6f67b031a1bc345aae7922d83e021ea (diff) | |
| parent | 6dcc5e48adb87d43101eaa2e868d12356da092be (diff) | |
Merged in reject_line_new (pull request #283)
<miqdad> Removed product from order line moved to reject line
Diffstat (limited to 'indoteknik_custom/models/sale_order.py')
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index b0e17a3a..4c48684d 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -64,6 +64,55 @@ class ShippingOption(models.Model): etd = fields.Char(string="Estimated Delivery Time") sale_order_id = fields.Many2one('sale.order', string="Sale Order", ondelete="cascade") +class SaleOrderLine(models.Model): + _inherit = 'sale.order.line' + + def unlink(self): + lines_to_reject = [] + for line in self: + if line.order_id: + now = fields.Datetime.now() + + initial_reason="Product Rejected" + + # Buat lognote untuk product yang di delete + log_note = (f"<li>Product '{line.product_id.name}' rejected. </li>" + f"<li>Quantity: {line.product_uom_qty}, </li>" + f"<li>Date: {now.strftime('%d-%m-%Y')}, </li>" + f"<li>Time: {now.strftime('%H:%M:%S')} </li>" + f"<li>Reason reject: {initial_reason} </li>") + + lines_to_reject.append({ + 'sale_order_id': line.order_id.id, + 'product_id': line.product_id.id, + 'qty_reject': line.product_uom_qty, + 'reason_reject': initial_reason, # pesan reason reject + 'message_body': log_note, + 'order_id': line.order_id, + }) + + # Call the original unlink method + result = super(SaleOrderLine, self).unlink() + + # After deletion, create reject lines and post messages + SalesOrderReject = self.env['sales.order.reject'] + for reject_data in lines_to_reject: + # Buat line baru di reject line + SalesOrderReject.create({ + 'sale_order_id': reject_data['sale_order_id'], + 'product_id': reject_data['product_id'], + 'qty_reject': reject_data['qty_reject'], + 'reason_reject': reject_data['reason_reject'], + }) + + # Post to chatter with a more prominent message + reject_data['order_id'].message_post( + body=reject_data['message_body'], + author_id=self.env.user.partner_id.id, # menampilkan pesan di lognote sebagai current user + ) + + return result + class SaleOrder(models.Model): _inherit = "sale.order" |
