summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-07-24 13:04:15 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-07-24 13:04:15 +0700
commit4d87e7317448dd7cc46d01e32ac2c953f02d72b1 (patch)
tree3f837c7505f23e81b0ceebacf323ccb7e63b23fe /indoteknik_custom/models
parentdbe66f04df0fa1809ed015b7a6993697b482106d (diff)
parentd8c9133eeee42458e579e5f537e54136032e3f6f (diff)
<miqdad> merge w/ odoo-backup
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/refund_sale_order.py31
-rw-r--r--indoteknik_custom/models/tukar_guling_po.py6
2 files changed, 17 insertions, 20 deletions
diff --git a/indoteknik_custom/models/refund_sale_order.py b/indoteknik_custom/models/refund_sale_order.py
index 559ca07a..11bfd07f 100644
--- a/indoteknik_custom/models/refund_sale_order.py
+++ b/indoteknik_custom/models/refund_sale_order.py
@@ -17,7 +17,7 @@ class RefundSaleOrder(models.Model):
note_refund = fields.Text(string='Note Refund')
sale_order_ids = fields.Many2many('sale.order', string='Sales Order Numbers')
uang_masuk = fields.Float(string='Uang Masuk', required=True)
- total_invoice = fields.Float(string='Total Invoice', compute='_compute_total_invoice', readonly=True)
+ total_invoice = fields.Float(string='Total Invoice')
ongkir = fields.Float(string='Ongkir', required=True, default=0.0)
amount_refund = fields.Float(string='Total Refund', required=True)
amount_refund_text = fields.Char(string='Total Refund Text', compute='_compute_refund_text')
@@ -105,6 +105,10 @@ class RefundSaleOrder(models.Model):
)
is_locked = fields.Boolean(string="Locked", compute="_compute_is_locked")
+ sale_order_names_jasper = fields.Char(string='Sales Order List', compute='_compute_order_invoice_names')
+ invoice_names_jasper = fields.Char(string='Invoice List', compute='_compute_order_invoice_names')
+
+
@api.depends('refund_type')
def _compute_refund_type_display(self):
@@ -147,10 +151,10 @@ class RefundSaleOrder(models.Model):
invoice_ids_data = vals.get('invoice_ids', [])
invoice_ids = invoice_ids_data[0][2] if invoice_ids_data and invoice_ids_data[0][0] == 6 else []
- if invoice_ids and refund_type and refund_type not in ['uang', 'barang_kosong_sebagian', 'retur_half']:
+ if invoice_ids and refund_type and refund_type not in ['uang', 'barang_kosong_sebagian', 'barang_kosong', 'retur_half']:
raise UserError("Refund type Hanya Bisa Lebih Bayar, Barang Kosong Sebagian, atau Retur Sebagian jika ada invoice")
- if not invoice_ids and refund_type and refund_type in ['uang', 'barang_kosong_sebagian', 'retur_half']:
+ if not invoice_ids and refund_type and refund_type in ['uang', 'barang_kosong_sebagian', 'barang_kosong', 'retur_half']:
raise UserError("Refund type Lebih Bayar, Barang Kosong Sebagian, atau Retur Sebagian Hanya Bisa dipilih Jika Ada Invoice")
@@ -241,10 +245,10 @@ class RefundSaleOrder(models.Model):
else:
invoice_ids = rec.invoice_ids.ids
- if invoice_ids and vals.get('refund_type', rec.refund_type) not in ['uang', 'barang_kosong_sebagian', 'retur_half']:
+ if invoice_ids and vals.get('refund_type', rec.refund_type) not in ['uang', 'barang_kosong_sebagian', 'barang_kosong', 'retur_half']:
raise UserError("Refund type Hanya Bisa Lebih Bayar, Barang Kosong Sebagian, atau Retur Sebagian jika ada invoice")
- if not invoice_ids and vals.get('refund_type', rec.refund_type) in ['uang', 'barang_kosong_sebagian', 'retur_half']:
+ if not invoice_ids and vals.get('refund_type', rec.refund_type) in ['uang', 'barang_kosong_sebagian', 'barang_kosong', 'retur_half']:
raise UserError("Refund type Lebih Bayar, Barang Kosong Sebagian, atau Retur Sebagian Hanya Bisa dipilih Jika Ada Invoice")
if refund_type in ['retur', 'retur_half'] and so_ids:
@@ -279,11 +283,12 @@ class RefundSaleOrder(models.Model):
def _compute_is_locked(self):
for rec in self:
rec.is_locked = rec.status_payment in ['done', 'reject']
-
- @api.depends('invoice_ids.amount_total')
- def _compute_total_invoice(self):
+
+ @api.depends('sale_order_ids.name', 'invoice_ids.name')
+ def _compute_order_invoice_names(self):
for rec in self:
- rec.total_invoice = sum(inv.amount_total for inv in rec.invoice_ids)
+ rec.sale_order_names_jasper = ', '.join(rec.sale_order_ids.mapped('name')) or ''
+ rec.invoice_names_jasper = ', '.join(rec.invoice_ids.mapped('name')) or ''
@api.depends('sale_order_ids')
def _compute_advance_move_names(self):
@@ -428,14 +433,6 @@ class RefundSaleOrder(models.Model):
pengurangan = rec.total_invoice + rec.ongkir
refund = rec.uang_masuk - pengurangan
rec.amount_refund = refund if refund > 0 else 0.0
-
- if rec.uang_masuk and rec.uang_masuk <= pengurangan:
- return {
- 'warning': {
- 'title': 'Uang Masuk Kurang',
- 'message': 'Uang masuk harus lebih besar dari total invoice + ongkir untuk dapat melakukan refund.'
- }
- }
@api.model
def default_get(self, fields_list):
diff --git a/indoteknik_custom/models/tukar_guling_po.py b/indoteknik_custom/models/tukar_guling_po.py
index 20adcfef..b3279077 100644
--- a/indoteknik_custom/models/tukar_guling_po.py
+++ b/indoteknik_custom/models/tukar_guling_po.py
@@ -25,9 +25,9 @@ class TukarGulingPO(models.Model):
)
name = fields.Char('Number', required=True, copy=False, readonly=True, default='New')
date = fields.Datetime('Date', default=fields.Datetime.now, required=True)
- date_purchase = fields.Datetime('Date Approve Purchase', required=True, readonly=True)
- date_finance = fields.Datetime('Date Approve Finance', required=True, readonly=True)
- date_logistic = fields.Datetime('Date Approve Logistic', required=True, readonly=True)
+ date_purchase = fields.Datetime('Date Approve Purchase', readonly=True)
+ date_finance = fields.Datetime('Date Approve Finance', readonly=True)
+ date_logistic = fields.Datetime('Date Approve Logistic', readonly=True)
operations = fields.Many2one(
'stock.picking',
string='Operations',