summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorFIN-IT_AndriFP <andrifebriyadiputra@gmail.com>2025-12-12 13:48:45 +0700
committerFIN-IT_AndriFP <andrifebriyadiputra@gmail.com>2025-12-12 13:48:45 +0700
commit21d01b83204677e3cf8d355b6198290b6dbb9d52 (patch)
tree6bf82db66666a3ebe56db44326189c7ebfc47f77 /indoteknik_custom/models
parentb615e3bc69910a6a495a72dc49309a80295486a0 (diff)
parent8996a5b127f4bb3bf8926d23b3e79d25de8ddc76 (diff)
Merge branch 'odoo-backup' of https://bitbucket.org/altafixco/indoteknik-addons into cr_renca_find
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/stock_inventory.py4
-rw-r--r--indoteknik_custom/models/stock_picking.py26
-rw-r--r--indoteknik_custom/models/tukar_guling.py19
3 files changed, 43 insertions, 6 deletions
diff --git a/indoteknik_custom/models/stock_inventory.py b/indoteknik_custom/models/stock_inventory.py
index 432d9225..84eb5a17 100644
--- a/indoteknik_custom/models/stock_inventory.py
+++ b/indoteknik_custom/models/stock_inventory.py
@@ -53,8 +53,8 @@ class StockInventory(models.Model):
return "00001" # Jika belum ada data, mulai dari 00001
def action_start(self):
- if self.env.user.id not in [21, 17, 6277]:
- raise UserError("Hanya Rafly, denise, dan faisal yang bisa start inventory")
+ if self.env.user.id not in [21, 17, 571, 28]:
+ raise UserError("Hanya Rafly, Denise, Iqmal, dan Stephan yang bisa start inventory")
return super(StockInventory, self).action_start()
@api.model
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 2f99a85a..602b1145 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -202,6 +202,12 @@ class StockPicking(models.Model):
so_num = fields.Char('SO Number', compute='_get_so_num')
is_so_fiktif = fields.Boolean('SO Fiktif?', compute='_compute_is_so_fiktif', tracking=3)
payment_term = fields.Char('Payment Term', compute='_get_partner_payment_term')
+ is_rev_tg = fields.Boolean('Revisi SO', compute='_compute_is_rev_tg', store=False)
+
+ @api.depends('tukar_guling_id.rev_tukar_guling')
+ def _compute_is_rev_tg(self):
+ for record in self:
+ record.is_rev_tg = record.tukar_guling_id.rev_tukar_guling if record.tukar_guling_id else False
@api.depends('sale_id.payment_term_id')
def _get_partner_payment_term(self):
@@ -1453,6 +1459,24 @@ class StockPicking(models.Model):
raise UserError(
f"Tidak bisa validasi {picking.name} sebelum {prev_picking.name} divalidasi."
)
+
+ def internal_transfer_val(self):
+ for rec in self:
+ # Gudang service
+ if rec.location_dest_id.id == 98 and self.env.user.id not in [21, 17]:
+ raise UserError(f"Transfer ke gudang {rec.location_dest_id.name} harus di approve Rafly H. atau Denise")
+ # Gudang selisih
+ if rec.location_dest_id.id == 47 and self.env.user.id not in [21, 17]:
+ raise UserError(f"Transfer ke gudang {rec.location_dest_id.name} harus di approve Rafly H. atau Denise")
+
+ # Gudang Rusak
+ if rec.location_dest_id.id == 62 and self.env.user.id not in [21, 17]:
+ raise UserError(f"Transfer ke gudang {rec.location_dest_id.name} harus di approve Rafly H. atau Denise")
+
+ # Gudang Peminjaman
+ if rec.location_dest_id.id == 48 and self.env.user.id not in [21, 17]:
+ raise UserError(f"Transfer ke gudang {rec.location_dest_id.name} harus di approve Rafly H. atau Denise")
+
def button_validate(self):
self.check_invoice_date()
_logger.info("Kode Picking: %s", self.picking_type_id.code)
@@ -1463,6 +1487,8 @@ class StockPicking(models.Model):
group_id = self.env.ref('indoteknik_custom.group_role_merchandiser').id
users_in_group = self.env['res.users'].search([('groups_id', 'in', [group_id])])
active_model = self.env.context.get('active_model')
+ if self.picking_type_id.id in [26, 10, 20, 32, 53, 52]:
+ self.internal_transfer_val()
if self.tukar_guling_po_id and self.tukar_guling_po_id.return_type == 'tukar_guling':
self.validate_seq_vcm()
if self.is_so_fiktif == True:
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index f31c68d0..9bcb0988 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -87,6 +87,7 @@ class TukarGuling(models.Model):
is_has_invoice = fields.Boolean('Has Invoice?', compute='_compute_is_has_invoice', readonly=True, default=False)
invoice_id = fields.Many2many('account.move', string='Invoice Ref', readonly=True)
+ rev_tukar_guling = fields.Boolean('SO Direvisi?', default=False, tracking=3)
@api.depends('origin', 'operations')
def _compute_origin_so(self):
@@ -808,7 +809,8 @@ class TukarGuling(models.Model):
srt_picking.write({
'group_id': bu_out.group_id.id,
'tukar_guling_id': record.id,
- 'sale_order': record.origin
+ 'sale_order': record.origin,
+ 'note': record.notes,
})
created_returns.append(srt_picking)
_logger.info(f"✅ SRT created: {srt_picking.name}")
@@ -868,7 +870,11 @@ class TukarGuling(models.Model):
ort_picking.write({
'group_id': bu_out.group_id.id,
'tukar_guling_id': record.id,
- 'sale_order': record.origin
+ 'sale_order': record.origin,
+ 'sj_return_date': bu_out.sj_return_date,
+ 'driver_arrival_date': bu_out.driver_arrival_date,
+ 'delivery_date': bu_out.delivery_date,
+ 'note': record.notes,
})
created_returns.append(ort_picking)
@@ -913,7 +919,8 @@ class TukarGuling(models.Model):
new_pick.write({
'group_id': bu_out.group_id.id,
'tukar_guling_id': record.id,
- 'sale_order': record.origin
+ 'sale_order': record.origin,
+ 'note': record.notes,
})
new_pick.action_assign()
new_pick.action_confirm()
@@ -952,7 +959,11 @@ class TukarGuling(models.Model):
new_out.write({
'group_id': bu_out.group_id.id,
'tukar_guling_id': record.id,
- 'sale_order': record.origin
+ 'sale_order': record.origin,
+ 'note': record.notes,
+ 'sj_return_date': bu_out.sj_return_date if record.rev_tukar_guling else False,
+ 'driver_arrival_date': bu_out.driver_arrival_date if record.rev_tukar_guling else False,
+ 'delivery_date': bu_out.delivery_date if record.rev_tukar_guling else False,
})
created_returns.append(new_out)
_logger.info(f"✅ BU/OUT Baru dari SRT created: {new_out.name}")