summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-08-15 09:10:07 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-08-15 09:10:07 +0700
commit9ea33822721c3c548675633effdf679cc1a99b0d (patch)
tree7aac3bbc6712376354c2c05c03e1acb319a8b335
parent7644260c8b660c71aa1f9232cb50acea551798c2 (diff)
parent4e1d5fa01a64bc6daa6c7bf7255caa55ccf53c59 (diff)
<hafid> revisi refund system
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py4
-rw-r--r--indoteknik_custom/models/account_move.py33
-rw-r--r--indoteknik_custom/models/res_partner.py4
-rw-r--r--indoteknik_custom/models/stock_picking.py2
-rw-r--r--indoteknik_custom/models/tukar_guling.py4
-rw-r--r--indoteknik_custom/models/tukar_guling_po.py9
-rw-r--r--indoteknik_custom/views/tukar_guling_po.xml2
7 files changed, 20 insertions, 38 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index 14136ca3..acec19f7 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -150,7 +150,7 @@ class Partner(controller.Controller):
partner_params = self.get_request_params(request_data, {
'tax_name': ['alias:nama_wajib_pajak'],
- # 'company_type_id': ['number'],
+ 'company_type_id': [''],
'industry_id': ['number'],
'npwp': [],
'alamat_lengkap_text': [],
@@ -170,7 +170,7 @@ class Partner(controller.Controller):
if 'id_user' in request_data:
user_params = self.get_request_params(request_data, {
'id_user': ['required', 'number'],
- # 'company_type_id': ['number'],
+ 'company_type_id': [''],
'industry_id': ['number'],
'tax_name': ['alias:nama_wajib_pajak'],
'npwp': [],
diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py
index 273bcdf9..b0ffd8b9 100644
--- a/indoteknik_custom/models/account_move.py
+++ b/indoteknik_custom/models/account_move.py
@@ -121,20 +121,6 @@ class AccountMove(models.Model):
else:
move.payment_date = False
- # def name_get(self):
- # result = []
- # for move in self:
- # if move.move_type == 'entry':
- # # Jika masih draft, tampilkan 'Draft CAB'
- # if move.state == 'draft':
- # label = 'Draft CAB'
- # else:
- # label = move.name
- # result.append((move.id, label))
- # else:
- # # Untuk invoice dan lainnya, pakai default
- # result.append((move.id, move.display_name))
- # return result
def send_due_invoice_reminder(self):
today = fields.Date.today()
@@ -146,31 +132,22 @@ class AccountMove(models.Model):
today + timedelta(days=7),
]
- # --- TESTING ---
- # partner = self.env['res.partner'].search([('name', 'ilike', 'DIRGANTARA YUDHA ARTHA')], limit=1)
- # if not partner:
- # _logger.info("Partner tidak ditemukan.")
- # return
- # invoices = self.env['account.move'].search([
- # ('move_type', '=', 'out_invoice'),
- # ('state', '=', 'posted'),
- # ('payment_state', 'not in', ['paid', 'in_payment', 'reversed']),
- # ('invoice_date_due', 'in', target_dates),
- # ('partner_id', '=', partner.id),
- # ])
+ for days_after_due in range(14, 181, 7):
+ target_dates.append(today - timedelta(days=days_after_due))
invoices = self.env['account.move'].search([
('move_type', '=', 'out_invoice'),
('state', '=', 'posted'),
('payment_state', 'not in', ['paid', 'in_payment', 'reversed']),
('invoice_date_due', 'in', target_dates),
+ ('date_terima_tukar_faktur', '!=', False)
])
- _logger.info(f"Invoices tahap 1: {invoices}")
+ _logger.info(f"Invoices: {invoices}")
invoices = invoices.filtered(
lambda inv: inv.invoice_payment_term_id and 'tempo' in (inv.invoice_payment_term_id.name or '').lower()
)
- _logger.info(f"Invoices tahap 2: {invoices}")
+ # _logger.info(f"Invoices tahap 2: {invoices}")
if not invoices:
_logger.info("Tidak ada invoice yang due")
diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py
index f260f58e..cf9fbea4 100644
--- a/indoteknik_custom/models/res_partner.py
+++ b/indoteknik_custom/models/res_partner.py
@@ -231,7 +231,7 @@ class ResPartner(models.Model):
rec.payment_difficulty = rec.parent_id.payment_difficulty
return records
- @api.constrains('name')
+ @api.constrains('email')
def _check_duplicate_name(self):
for record in self:
if record.name:
@@ -242,7 +242,7 @@ class ResPartner(models.Model):
], limit=1)
if existing_partner:
- raise ValidationError(f"Nama '{record.name}' sudah digunakan oleh partner lain!")
+ raise ValidationError(f"Nama '{record.name}' dengan email '{record.email}' sudah digunakan oleh partner lain!")
@api.constrains('npwp')
def _check_npwp(self):
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index eb1c7085..bf6834d0 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -1060,7 +1060,7 @@ class StockPicking(models.Model):
self.sale_id.date_doc_kirim = self.date_doc_kirim
def action_assign(self):
- if self.env.context.get('default_picking_type_id'):
+ if self.env.context.get('default_picking_type_id') and self.sale_id:
pickings_to_assign = self.filtered(
lambda p: not (p.sale_id and p.sale_id.hold_outgoing)
)
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index ff641f34..4b03d4b0 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -380,10 +380,6 @@ class TukarGuling(models.Model):
res.message_post(body=_("CCM Created By %s") % self.env.user.name)
return res
- res = super(TukarGuling, self).create(vals)
- res.message_post(body=_("CCM Created By %s") % self.env.user.name)
- return res
-
def copy(self, default=None):
if default is None:
default = {}
diff --git a/indoteknik_custom/models/tukar_guling_po.py b/indoteknik_custom/models/tukar_guling_po.py
index cc1c79c0..94771f37 100644
--- a/indoteknik_custom/models/tukar_guling_po.py
+++ b/indoteknik_custom/models/tukar_guling_po.py
@@ -435,6 +435,15 @@ class TukarGulingPO(models.Model):
if bu_put:
raise UserError("❌ Tidak bisa retur BU/INPUT karena BU/PUT sudah Done!")
+ existing_tukar_guling = self.env['tukar.guling.po'].search([
+ ('operations', '=', self.operations.id),
+ ('id', '!=', self.id),
+ ('state', '!=', 'cancel'),
+ ], limit=1)
+
+ if existing_tukar_guling:
+ raise UserError("BU ini sudah pernah diretur oleh dokumen %s." % existing_tukar_guling.name)
+
picking = self.operations
pick_id = self.operations.picking_type_id.id
if pick_id == 75:
diff --git a/indoteknik_custom/views/tukar_guling_po.xml b/indoteknik_custom/views/tukar_guling_po.xml
index 1c6a86ea..548a209f 100644
--- a/indoteknik_custom/views/tukar_guling_po.xml
+++ b/indoteknik_custom/views/tukar_guling_po.xml
@@ -21,7 +21,7 @@
<field name="name">pengajuan.tukar.guling.po.tree</field>
<field name="model">tukar.guling.po</field>
<field name="arch" type="xml">
- <tree create="1" delete="1" default_order="create_date desc">
+ <tree create="0" delete="1" default_order="create_date desc">
<field name="name"/>
<field name="vendor_id" string="Customer"/>
<field name="origin" string="PO Number"/>