summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2025-09-25 10:05:19 +0000
committerIT Fixcomart <it@fixcomart.co.id>2025-09-25 10:05:19 +0000
commitb74c23f253c0b122311a91f159793d6123f1c951 (patch)
treeffab3a2dcf9dd4b4b126939a33c4ffd78a3e440d
parent0d9b4feda638e606db3c5fe2c6b3ba8cbcb2f4d4 (diff)
parentb29805b2540c357f420580aa746b376f0b4c54bd (diff)
Merged in refund_system (pull request #437)
<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