summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/tukar_guling.py
diff options
context:
space:
mode:
authorMqdd <ahmadmiqdad27@gmail.com>2026-02-02 11:15:32 +0700
committerMqdd <ahmadmiqdad27@gmail.com>2026-02-02 11:15:32 +0700
commita52626db2cb646c9b8573b7ab15690066313031d (patch)
tree85997f84305ba735ebc1fbc64dc3526906e32cfe /indoteknik_custom/models/tukar_guling.py
parent12c5971f46f3527ed9a8e1d865430d2b9fa25b38 (diff)
parent24b33148858c9827ad0b14e716562c377e1644ca (diff)
Merge branch 'gudang-service' of bitbucket.org:altafixco/indoteknik-addons into gudang-service
Diffstat (limited to 'indoteknik_custom/models/tukar_guling.py')
-rw-r--r--indoteknik_custom/models/tukar_guling.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index 682c478a..03af984f 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -62,6 +62,7 @@ class TukarGuling(models.Model):
notes = fields.Text('Notes')
return_type = fields.Selection(String='Return Type', selection=[
('tukar_guling', 'Tukar Guling'), # -> barang yang sama
+ ('service', 'Service'), # -> barang yang sama
('retur_so', 'Retur SO')], required=True, tracking=3, help='Retur SO (ORT-SRT),\n Tukar Guling (ORT-SRT-PICK-OUT)')
state = fields.Selection(string='Status', selection=[
('draft', 'Draft'),
@@ -931,6 +932,66 @@ class TukarGuling(models.Model):
_logger.info(f"✅ BU/PICK Baru dari ORT created: {new_pick.name}")
record.message_post(
body=f"📦 <b>{new_pick.name}</b> created by <b>{self.env.user.name}</b> (state: <b>{new_pick.state}</b>)")
+
+ if record.return_type == 'service':
+ GUDANG_SERVICE_LOCATION_ID = 98
+ # From STOCK to OUTPUT
+ done_service = self.env['stock.picking'].create({
+ 'group_id': bu_out.group_id.id,
+ 'tukar_guling_id': record.id,
+ 'sale_order': record.origin,
+ 'note': record.notes,
+ 'picking_type_id': 32,
+ 'location_id': GUDANG_SERVICE_LOCATION_ID,
+ 'location_dest_id': BU_STOCK_LOCATION_ID,
+ 'partner_id': bu_out.partner_id.id,
+ 'move_ids_without_package': [(0, 0, {
+ 'product_id': line.product_id.id,
+ 'product_uom_qty': line.product_uom_qty,
+ 'product_uom': line.product_uom.id,
+ 'name': line.product_id.display_name,
+ 'location_id': GUDANG_SERVICE_LOCATION_ID,
+ 'location_dest_id': BU_STOCK_LOCATION_ID,
+ }) for line in record.line_ids],
+ })
+ if done_service:
+ done_service.action_confirm()
+ done_service.action_assign()
+ else:
+ raise UserError("Gagal membuat picking service")
+
+ service_to_output = self.env['stock.picking'].create({
+ 'group_id': bu_out.group_id.id,
+ 'tukar_guling_id': record.id,
+ 'sale_order': record.origin,
+ 'note': record.notes,
+ 'picking_type_id': 32,
+ 'location_id': BU_STOCK_LOCATION_ID,
+ 'location_dest_id': BU_OUTPUT_LOCATION_ID,
+ 'partner_id': bu_out.partner_id.id,
+ 'move_lines': [(0, 0, {
+ 'product_id': line.product_id.id,
+ 'product_uom_qty': line.product_uom_qty,
+ 'product_uom': line.product_uom.id,
+ 'name': line.product_id.display_name,
+ 'location_id':BU_STOCK_LOCATION_ID,
+ 'location_dest_id': BU_STOCK_LOCATION_ID,
+ }) for line in record.line_ids],
+ 'move_ids_without_package': [(0, 0, {
+ 'product_id': line.product_id.id,
+ 'product_uom_qty': line.product_uom_qty,
+ 'product_uom': line.product_uom.id,
+ 'name': line.product_id.display_name,
+ 'location_id': BU_STOCK_LOCATION_ID,
+ 'location_dest_id': BU_OUTPUT_LOCATION_ID,
+ }) for line in record.line_ids],
+ })
+ if service_to_output:
+ service_to_output.action_confirm()
+ service_to_output.action_assign()
+ else:
+ raise UserError("Gagal membuat picking service")
+
# BU/OUT Baru dari SRT
if srt_picking: