summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-06-21 15:05:43 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-06-21 15:05:43 +0700
commitcbf88d93e082f30305123deb467c4c15916d9519 (patch)
tree66d6a2b3308d9600e252176f8c8c63157f082174
parent19c7a29333bd2c196a4aec2b173293da4d25e3ab (diff)
Revert "<miqdad> fix from and to return"
wkwkwk This reverts commit c1fa178a6afb9ef4a914dc617d2fb69da50af673.
-rw-r--r--indoteknik_custom/models/tukar_guling.py56
1 files changed, 22 insertions, 34 deletions
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index 740bb7d7..ff52bab5 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -300,11 +300,11 @@ class TukarGuling(models.Model):
])
if not related_pickings:
raise UserError(
- "Tidak ditemukan BU/PICK atau BU/OUT dari SO: %s" % record.origin)
+ "Tidak ditemukan BU/PICK atau BU/OUT dari SO: %s" % record.origin + "Atau masih belum Done")
# 2. Filter berdasarkan tipe picking
- bu_pick_to_return = related_pickings.filtered(lambda ktl: ktl.picking_type_id.id == 30) # BU/PICK
- bu_out_to_return = related_pickings.filtered(lambda ktl: ktl.picking_type_id.id == 29) # BU/OUT
+ bu_pick_to_return = related_pickings.filtered(lambda p: p.picking_type_id.id == 30) # BU/PICK
+ bu_out_to_return = related_pickings.filtered(lambda p: p.picking_type_id.id == 29) # BU/OUT
if not bu_pick_to_return and not bu_out_to_return:
raise UserError("Tidak ada BU/PICK atau BU/OUT yang selesai untuk diretur.")
@@ -312,18 +312,13 @@ class TukarGuling(models.Model):
created_returns = []
# Lokasi default untuk retur
- srt_type = self.env['stock.picking.type'].browse(73)
- ort_type = self.env['stock.picking.type'].browse(74)
+ bu_out_type = self.env['stock.picking.type'].browse(73)
+ bu_stock_type = self.env['stock.picking.type'].browse(74)
- stock_location = self.env['stock.location']
+ bu_out = bu_out_type.default_location_src_id.id
+ bu_stock = bu_out_type.default_location_dest_id.id
- srt_src = stock_location.browse(5)
- srt_dest = stock_location.browse(60)
-
- ort_src = stock_location.browse(60)
- ort_dest = stock_location.browse(57)
-
- if not ort_src or not ort_dest or not srt_src or not srt_dest:
+ if not bu_out or not bu_stock:
raise UserError("salahwoi")
partner_location = self.env['stock.location'].search(
@@ -334,19 +329,14 @@ class TukarGuling(models.Model):
# Fungsi membuat retur dari picking tertentu
def _create_return_from_picking(picking):
- grup = self.operations.group_id
-
- PARTNER_LOCATION_ID = 5 # Partner Locations/Customers
- BU_OUTPUT_LOCATION_ID = 60 # BU/Output (from your logs)
- BU_STOCK_LOCATION_ID = 57 # BU/Stock (adjust to your actual ID)
-
- # Determine locations based on picking type
+ grup = self.env['stock.picking'].search([('origin', '=', self.operations.origin)])
+ # Tentukan lokasi berdasarkan jenis picking
if picking.picking_type_id.id == 29: # BU/OUT → BU/SRT
- default_location_id = PARTNER_LOCATION_ID # From: Partner Locations
- default_location_dest_id = BU_OUTPUT_LOCATION_ID # To: BU/Output
+ default_location_id = partner_location.id
+ default_location_dest_id = bu_out
elif picking.picking_type_id.id == 30: # BU/PICK → BU/ORT
- default_location_id = BU_OUTPUT_LOCATION_ID # From: BU/Output
- default_location_dest_id = BU_STOCK_LOCATION_ID # To: BU/Stock (FIXED)
+ default_location_id = bu_out
+ default_location_dest_id = bu_stock
else:
return None
@@ -363,7 +353,7 @@ class TukarGuling(models.Model):
'location_id': default_location_id,
})
- # Create return lines
+ # Buat return lines
return_lines = []
for move in picking.move_lines:
qty = move.quantity_done or move.product_uom_qty
@@ -381,21 +371,19 @@ class TukarGuling(models.Model):
_logger.info("Creating return for picking %s", picking.name)
_logger.info("Default location src: %s", default_location_id)
_logger.info("Default location dest: %s", default_location_dest_id)
+ _logger.info("Move lines: %s", picking.move_lines)
return_vals = return_wizard.create_returns()
return_id = return_vals.get('res_id')
- return_picking = self.env['stock.picking'].browse(return_id)
- if not return_picking:
+ if not return_id:
raise UserError("Retur gagal dibuat. Hasil create_returns: %s" % str(return_vals))
- # Force the destination location (extra safeguard)
- return_picking.write({
- 'location_dest_id': default_location_dest_id,
- 'group_id': grup.id,
- 'tukar_guling_id': record.id,
- })
+ picking_obj = self.env['stock.picking'].browse(return_id)
+ for p in picking_obj:
+ p.group_id = self.operations.group_id.id
+ p.tukar_guling_id = record.id
- return return_picking.name
+ return picking_obj.name
# Buat return dari BU/PICK
for picking in bu_pick_to_return: