summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-08-01 13:43:52 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-08-01 13:43:52 +0700
commit5e4b34998b2af53de965667e5e9b957affeda6fa (patch)
tree9b4335ee3c3db05b328aeedb3d2172659a6ed0e8
parent9abc0ebbbbf6d75582b1bc80afce9664c6d20722 (diff)
fix so ask approve
-rwxr-xr-xindoteknik_custom/models/sale_order.py33
1 files changed, 31 insertions, 2 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 376ae20a..44e4a886 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -486,7 +486,7 @@ class SaleOrder(models.Model):
# pattern = r'^\d{10,}$'
# return re.match(pattern, self.npwp) is not None
- def sale_order_approve(self):
+ def sale_order_check_approve(self):
self.check_due()
self._validate_order()
@@ -502,6 +502,35 @@ class SaleOrder(models.Model):
raise UserError("Payment Term berbeda pada Master Data Customer")
if not order.client_order_ref and order.create_date > datetime(2024, 6, 27):
raise UserError("Customer Reference kosong, di isi dengan NO PO jika PO tidak ada mohon ditulis Tanpa PO")
+
+ def sale_order_approve(self):
+ self.check_due()
+
+ self._validate_order()
+ for order in self:
+ order.order_line.validate_line()
+
+ partner = order.partner_id.parent_id or order.partner_id
+ if not partner.property_payment_term_id:
+ raise UserError("Payment Term pada Master Data Customer harus diisi")
+ if not partner.active_limit:
+ raise UserError("Credit Limit pada Master Data Customer harus diisi")
+ if order.payment_term_id != partner.property_payment_term_id:
+ raise UserError("Payment Term berbeda pada Master Data Customer")
+ if not order.client_order_ref and order.create_date > datetime(2024, 6, 27):
+ raise UserError("Customer Reference kosong, di isi dengan NO PO jika PO tidak ada mohon ditulis Tanpa PO")
+
+ if order.validate_partner_invoice_due():
+ return self._create_notification_action('Notification', 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension')
+
+ if order._requires_approval_margin_leader():
+ order.approval_status = 'pengajuan2'
+ return self._create_approval_notification('Pimpinan')
+ elif order._requires_approval_margin_manager():
+ order.approval_status = 'pengajuan1'
+ return self._create_approval_notification('Sales Manager')
+
+ raise UserError("Bisa langsung Confirm")
def send_notif_to_salesperson(self, cancel=False):
@@ -575,7 +604,7 @@ class SaleOrder(models.Model):
def action_confirm(self):
for order in self:
- order.sale_order_approve()
+ order.sale_order_check_approve()
order._validate_order()
order.order_line.validate_line()