summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2025-09-25 09:12:52 +0000
committerIT Fixcomart <it@fixcomart.co.id>2025-09-25 09:12:52 +0000
commit0d9b4feda638e606db3c5fe2c6b3ba8cbcb2f4d4 (patch)
treef42778834ec043b92e6dc84c1b2bf9b16862c6cc
parent1299851d0d6280d92ccc4123a82ea083a92bc7ec (diff)
parent7fed48782b6790be66cf8134eacc36881eeb29d4 (diff)
Merged in refund_system (pull request #436)
<hafid> refund
-rw-r--r--indoteknik_custom/models/refund_sale_order.py86
-rwxr-xr-xindoteknik_custom/models/sale_order.py17
2 files changed, 101 insertions, 2 deletions
diff --git a/indoteknik_custom/models/refund_sale_order.py b/indoteknik_custom/models/refund_sale_order.py
index 2a6a9d9b..ae8df4ef 100644
--- a/indoteknik_custom/models/refund_sale_order.py
+++ b/indoteknik_custom/models/refund_sale_order.py
@@ -310,8 +310,22 @@ class RefundSaleOrder(models.Model):
('journal_id', '=', 13),
('state', '=', 'posted'),
])
+ moves2 = self.env['account.move']
+ if so_ids:
+ so_names = self.env['sale.order'].browse(so_ids).mapped('name')
+ domain = [
+ ('journal_id', '=', 11),
+ ('state', '=', 'posted'),
+ ('ref', 'ilike', 'dp')
+ ]
+ if so_names:
+ domain += ['|'] * (len(so_names) - 1)
+ for n in so_names:
+ domain.append(('ref', 'ilike', n))
+ moves2 = self.env['account.move'].search(domain)
has_moves = bool(moves)
+ has_moves2 = bool(moves2)
has_piutangmdr = bool(piutangmdr)
has_piutangbca = bool(piutangbca)
has_misc = bool(misc)
@@ -319,20 +333,38 @@ class RefundSaleOrder(models.Model):
has_settlement = any(so.payment_status == 'settlement' for so in ssos)
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 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'))
else:
@@ -542,6 +574,21 @@ class RefundSaleOrder(models.Model):
('journal_id', '=', 7),
('state', '=', 'posted'),
])
+
+ moves2 = self.env['account.move']
+ if rec.sale_order_ids:
+ so_names = rec.sale_order_ids.mapped('name')
+
+ domain = [
+ ('journal_id', '=', 11),
+ ('state', '=', 'posted'),
+ ('ref', 'ilike', 'dp')
+ ]
+ domain += ['|'] * (len(so_names) - 1)
+ for n in so_names:
+ domain.append(('ref', 'ilike', n))
+
+ moves2 = self.env['account.move'].search(domain)
misc = self.env['account.move']
if invoice_ids:
@@ -553,7 +600,7 @@ class RefundSaleOrder(models.Model):
('state', '=', 'posted'),
])
- all_moves = moves | piutangbca | piutangmdr | misc
+ all_moves = moves | piutangbca | piutangmdr | misc | moves2
for move in all_moves:
url = f"/web#id={move.id}&model=account.move&view_type=form"
@@ -611,7 +658,24 @@ class RefundSaleOrder(models.Model):
('journal_id', '=', 13),
('state', '=', 'posted'),
])
+ moves2 = self.env['account.move']
+ if so_ids:
+ so_records = self.env['sale.order'].browse(so_ids)
+ so_names = so_records.mapped('name')
+
+ domain = [
+ ('journal_id', '=', 11),
+ ('state', '=', 'posted'),
+ ('ref', 'ilike', 'dp')
+ ]
+ domain += ['|'] * (len(so_names) - 1)
+ for n in so_names:
+ domain.append(('ref', 'ilike', n))
+
+ moves2 = self.env['account.move'].search(domain)
+
has_moves = bool(moves)
+ has_moves2 = bool(moves2)
has_piutangmdr = bool(piutangmdr)
has_piutangbca = bool(piutangbca)
has_misc = bool(misc)
@@ -619,20 +683,38 @@ class RefundSaleOrder(models.Model):
has_settlement = any(so.payment_status == 'settlement' for so in ssos)
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'))
- if has_moves and has_misc:
+ 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'))
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index f80941d2..663cba58 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -3340,10 +3340,17 @@ class SaleOrder(models.Model):
('state', '=', 'posted'),
])
+ moves2 = self.env['account.move'].search([
+ ('ref', 'ilike', self.name),
+ ('journal_id', '=', 11),
+ ('state', '=', 'posted'),
+ ])
+
# Default 0
total_uang_muka = 0.0
has_moves = bool(moves)
+ has_moves2 = bool(moves2)
has_piutangmdr = bool(piutangmdr)
has_piutangbca = bool(piutangbca)
has_settlement = self.payment_status == 'settlement'
@@ -3352,6 +3359,8 @@ class SaleOrder(models.Model):
total_uang_muka = sum(moves.mapped('amount_total_signed')) + self.gross_amount
elif has_moves:
total_uang_muka = sum(moves.mapped('amount_total_signed'))
+ elif has_moves2:
+ total_uang_muka = sum(moves2.mapped('amount_total_signed'))
elif has_settlement:
total_uang_muka = self.gross_amount
elif has_piutangbca:
@@ -3439,12 +3448,20 @@ class SaleOrder(models.Model):
('state', '=', 'posted'),
])
+ moves2 = self.env['account.move'].search([
+ ('ref', 'ilike', order.name),
+ ('journal_id', '=', 11),
+ ('state', '=', 'posted'),
+ ])
+
total_uang_muka = 0.0
if moves and order.payment_status == 'settlement':
total_uang_muka = order.gross_amount + sum(moves.mapped('amount_total_signed')) or 0.0
elif moves:
total_uang_muka = sum(moves.mapped('amount_total_signed')) or 0.0
+ elif moves2:
+ total_uang_muka = sum(moves2.mapped('amount_total_signed')) or 0.0
elif order.payment_status == 'settlement':
total_uang_muka = order.gross_amount
else: