diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2024-08-01 13:43:52 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2024-08-01 13:43:52 +0700 |
| commit | 5e4b34998b2af53de965667e5e9b957affeda6fa (patch) | |
| tree | 9b4335ee3c3db05b328aeedb3d2172659a6ed0e8 | |
| parent | 9abc0ebbbbf6d75582b1bc80afce9664c6d20722 (diff) | |
fix so ask approve
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 33 |
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() |
