summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHafidBuroiroh <hafidburoiroh09@gmail.com>2025-09-25 17:04:52 +0700
committerHafidBuroiroh <hafidburoiroh09@gmail.com>2025-09-25 17:04:52 +0700
commitb29805b2540c357f420580aa746b376f0b4c54bd (patch)
tree526bd4a880aa7e75bd8700086343deec4f36483f
parent7fed48782b6790be66cf8134eacc36881eeb29d4 (diff)
<hafid> refund
-rw-r--r--indoteknik_custom/models/refund_sale_order.py102
1 files changed, 37 insertions, 65 deletions
diff --git a/indoteknik_custom/models/refund_sale_order.py b/indoteknik_custom/models/refund_sale_order.py
index ae8df4ef..820a58f7 100644
--- a/indoteknik_custom/models/refund_sale_order.py
+++ b/indoteknik_custom/models/refund_sale_order.py
@@ -333,41 +333,30 @@ class RefundSaleOrder(models.Model):
has_settlement = any(so.payment_status == 'settlement' for so in ssos)
sisa_uang_masuk = 0.0
+ amounts = []
if has_moves and has_settlement:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(ssos.mapped('gross_amount'))
- elif has_moves2:
- sisa_uang_masuk = sum(moves2.mapped('amount_total_signed'))
- elif has_moves and has_misc:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed'))
- elif has_moves and has_misc and has_moves2:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_moves and has_moves2:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_moves:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed'))
-
- elif has_settlement:
- sisa_uang_masuk = sum(ssos.mapped('gross_amount'))
-
- elif has_piutangbca and has_misc and has_moves2:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_piutangbca and has_misc:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed'))
- elif has_piutangbca and has_moves2:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_piutangbca:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed'))
-
- elif has_piutangmdr and has_misc and has_moves2:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_piutangmdr and has_misc:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed'))
- elif has_piutangmdr and has_moves2:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed'))
- elif has_piutangmdr:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed'))
+ amounts.append(sum(moves.mapped('amount_total_signed')))
+ amounts.append(sum(ssos.mapped('gross_amount')))
else:
+ if has_moves:
+ amounts.append(sum(moves.mapped('amount_total_signed')))
+ if has_settlement:
+ amounts.append(sum(ssos.mapped('gross_amount')))
+
+ # sisanya bisa dijumlahkan tanpa konflik
+ if has_moves2:
+ amounts.append(sum(moves2.mapped('amount_total_signed')))
+ if has_piutangbca:
+ amounts.append(sum(piutangbca.mapped('amount_total_signed')))
+ if has_piutangmdr:
+ amounts.append(sum(piutangmdr.mapped('amount_total_signed')))
+ if has_misc:
+ amounts.append(sum(misc.mapped('amount_total_signed')))
+
+ sisa_uang_masuk = sum(amounts)
+
+ if not sisa_uang_masuk:
raise UserError(
"❌ Tidak bisa melakukan refund karena SO tidak memiliki Record Uang Masuk "
"(Journal Uang Muka / Payment Invoices / Midtrans Payment)."
@@ -684,39 +673,22 @@ class RefundSaleOrder(models.Model):
sisa_uang_masuk = 0.0
- if has_moves and has_settlement:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(ssos.mapped('gross_amount'))
- elif has_moves2:
- sisa_uang_masuk = sum(moves2.mapped('amount_total_signed'))
- elif has_moves and has_misc:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed'))
- elif has_moves and has_misc and has_moves2:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_moves and has_moves2:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_moves:
- sisa_uang_masuk = sum(moves.mapped('amount_total_signed'))
-
- elif has_settlement:
- sisa_uang_masuk = sum(ssos.mapped('gross_amount'))
-
- elif has_piutangbca and has_misc:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed'))
- elif has_piutangbca and has_misc and has_moves2:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_piutangbca and has_moves2:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_piutangbca:
- sisa_uang_masuk = sum(piutangbca.mapped('amount_total_signed'))
-
- elif has_piutangmdr and has_misc and has_moves2:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_piutangmdr and has_misc:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed')) + sum(misc.mapped('amount_total_signed'))
- elif has_piutangmdr and has_moves2:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed')) + sum(moves2.mapped('amount_total_signed'))
- elif has_piutangmdr:
- sisa_uang_masuk = sum(piutangmdr.mapped('amount_total_signed'))
+ amounts = []
+
+ if has_moves:
+ amounts.append(sum(moves.mapped('amount_total_signed')))
+ if has_moves2:
+ amounts.append(sum(moves2.mapped('amount_total_signed')))
+ if has_piutangbca:
+ amounts.append(sum(piutangbca.mapped('amount_total_signed')))
+ if has_piutangmdr:
+ amounts.append(sum(piutangmdr.mapped('amount_total_signed')))
+ if has_misc:
+ amounts.append(sum(misc.mapped('amount_total_signed')))
+ if has_settlement:
+ amounts.append(sum(ssos.mapped('gross_amount')))
+
+ sisa_uang_masuk = sum(amounts)
self.uang_masuk = sisa_uang_masuk - amount_refund_before