summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-09-10 11:43:40 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-09-10 11:43:40 +0700
commit97be5b4f02f5eb499ab6cf2afa031a703d2a5866 (patch)
tree9bba9423063fb19578ae8a9f9f6a9cb031fca8a9
parent8cf34c73b9276f88499b056c0a7070a3464f3367 (diff)
<miqdad> done kyknya
-rwxr-xr-xindoteknik_custom/models/sale_order.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 8cb169a6..630f25ba 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -1900,10 +1900,10 @@ class SaleOrder(models.Model):
# raise UserError('Kelurahan Real Delivery Address harus diisi')
def generate_payment_link_midtrans_sales_order(self):
- # midtrans_url = 'https://app.sandbox.midtrans.com/snap/v1/transactions' # dev - sandbox
- # midtrans_auth = 'Basic U0ItTWlkLXNlcnZlci1uLVY3ZDJjMlpCMFNWRUQyOU95Q1dWWXA6' # dev - sandbox
- midtrans_url = 'https://app.midtrans.com/snap/v1/transactions' # production
- midtrans_auth = 'Basic TWlkLXNlcnZlci1SbGMxZ2gzWGpSVW5scl9JblZzTV9OTnU6' # production
+ midtrans_url = 'https://app.sandbox.midtrans.com/snap/v1/transactions' # dev - sandbox
+ midtrans_auth = 'Basic U0ItTWlkLXNlcnZlci1uLVY3ZDJjMlpCMFNWRUQyOU95Q1dWWXA6' # dev - sandbox
+ # midtrans_url = 'https://app.midtrans.com/snap/v1/transactions' # production
+ # midtrans_auth = 'Basic TWlkLXNlcnZlci1SbGMxZ2gzWGpSVW5scl9JblZzTV9OTnU6' # production
so_number = self.name
so_number = so_number.replace('/', '-')
@@ -1916,8 +1916,8 @@ class SaleOrder(models.Model):
}
# ==== ENV ====
- # check_url = f'https://api.sandbox.midtrans.com/v2/{so_number}/status' # dev - sandbox
- check_url = f'https://api.midtrans.com/v2/{so_number}/status' # production
+ check_url = f'https://api.sandbox.midtrans.com/v2/{so_number}/status' # dev - sandbox
+ # check_url = f'https://api.midtrans.com/v2/{so_number}/status' # production
# =============================================
check_response = requests.get(check_url, headers=headers)
@@ -2387,17 +2387,23 @@ class SaleOrder(models.Model):
# Ambil blocking stage dari partner
block_stage = rec.partner_id.parent_id.blocking_stage if rec.partner_id.parent_id else rec.partner_id.blocking_stage or 0
is_cbd = rec.partner_id.parent_id.property_payment_term_id.id == 26 if rec.partner_id.parent_id else rec.partner_id.property_payment_term_id.id == 26 or False
+ partner_term = rec.partner_id.property_payment_term_id
+ partner_term_days_total = 0
+ if partner_term:
+ partner_term_days_total = sum((line.days or 0) for line in partner_term.line_ids)
+ is_partner_cbd = (partner_term_days_total == 0)
+ is_so_cbd = bool(rec.payment_term_id.id == 26)
# Ambil jumlah nilai dari SO yang invoice_status masih 'to invoice'
so_to_invoice = 0
for sale in rec.partner_id.sale_order_ids:
if sale.invoice_status == 'to invoice':
so_to_invoice = so_to_invoice + sale.amount_total
- # Hitung remaining credit limit
- remaining_credit_limit = block_stage - current_total - so_to_invoice
+
+ remaining_credit_limit = block_stage - current_total - so_to_invoice if not is_cbd and not is_partner_cbd else 0
# Validasi limit
- if remaining_credit_limit <= 0 and block_stage > 0 and not is_cbd:
+ if remaining_credit_limit <= 0 and block_stage > 0 and not is_cbd and not is_so_cbd and not is_partner_cbd:
raise UserError(
_("The credit limit for %s will exceed the Blocking Stage if the Sale Order is confirmed. The remaining credit limit is %s, from %s and the outstanding amount is %s.")
% (rec.partner_id.name, block_stage - current_total, block_stage, outstanding_amount))