summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-10-14 14:11:18 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-10-14 14:11:18 +0700
commit724d7ed6d85ecc3acadbcf56a98aead0512af01d (patch)
treea0587a1d528a1654a1114e298f27a576df275340
parent67691bbda67b4362728a8bd99a7be1478a15e5b1 (diff)
push
-rw-r--r--indoteknik_custom/models/partial_delivery.py21
1 files changed, 2 insertions, 19 deletions
diff --git a/indoteknik_custom/models/partial_delivery.py b/indoteknik_custom/models/partial_delivery.py
index 83fe9981..977cceed 100644
--- a/indoteknik_custom/models/partial_delivery.py
+++ b/indoteknik_custom/models/partial_delivery.py
@@ -46,7 +46,6 @@ class PartialDeliveryWizard(models.TransientModel):
raise UserError(_("Tidak ada produk yang dipilih."))
for line in self.line_ids:
line.selected = True
- # return action supaya wizard gak nutup
return {
'type': 'ir.actions.act_window',
'res_model': self._name,
@@ -60,7 +59,6 @@ class PartialDeliveryWizard(models.TransientModel):
raise UserError(_("Tidak ada produk yang dipilih."))
for line in self.line_ids:
line.selected = False
- # juga reload biar tetap di wizard
return {
'type': 'ir.actions.act_window',
'res_model': self._name,
@@ -76,7 +74,6 @@ class PartialDeliveryWizard(models.TransientModel):
self.line_ids = [(5, 0, 0)]
return
- # ๐Ÿงน hapus line lama dulu
if self.line_ids:
self.line_ids.unlink()
@@ -95,7 +92,7 @@ class PartialDeliveryWizard(models.TransientModel):
'wizard_id': self.id,
'product_id': move.product_id.id,
'reserved_qty': reserved_qty,
- 'selected_qty': reserved_qty, # biar langsung keisi default
+ # 'selected_qty': reserved_qty,
'move_id': move.id,
'sale_line_id': move.sale_line_id.id if move.sale_line_id else False,
})
@@ -119,12 +116,11 @@ class PartialDeliveryWizard(models.TransientModel):
lines_by_qty = self.line_ids.filtered(lambda l: l.selected_qty > 0)
lines_by_selected = self.line_ids.filtered(lambda l: l.selected and not l.selected_qty)
- selected_lines = lines_by_qty | lines_by_selected # gabung dua domain hasil filter
+ selected_lines = lines_by_qty | lines_by_selected
if not selected_lines:
raise UserError(_("Tidak ada produk yang dipilih atau diisi jumlahnya."))
- # ๐Ÿง  Tambahan: kalau semua line dipilih (full delivery)
all_selected = len(selected_lines) == len(self.line_ids)
full_selected = all_selected and all(
(line.selected_qty or line.reserved_qty) >= line.reserved_qty
@@ -132,10 +128,8 @@ class PartialDeliveryWizard(models.TransientModel):
)
if full_selected:
- # ๐Ÿ’ก Gak perlu bikin picking baru, langsung ubah state_reserve
picking.write({'state_reserve': 'partial'})
- # Tambahin log aja biar ada jejak
picking.message_post(
body=f"<b>Full Picking Confirmed</b> dari wizard partial delivery oleh {self.env.user.name}",
message_type="comment",
@@ -171,11 +165,9 @@ class PartialDeliveryWizard(models.TransientModel):
move = line.move_id
move._do_unreserve()
- # kalau cuma selected tanpa isi qty, otomatis set selected_qty = reserved_qty
if line.selected and not line.selected_qty:
line.selected_qty = line.reserved_qty
- # MODE 1 โ†’ Prioritas kalau ada selected_qty
if line.selected_qty > 0:
if line.selected_qty > move.product_uom_qty:
raise UserError(_(
@@ -184,7 +176,6 @@ class PartialDeliveryWizard(models.TransientModel):
if line.selected_qty < move.product_uom_qty:
qty_to_keep = move.product_uom_qty - line.selected_qty
- # split move
new_move = move.copy(default={
'product_uom_qty': line.selected_qty,
'picking_id': new_picking.id,
@@ -192,19 +183,13 @@ class PartialDeliveryWizard(models.TransientModel):
})
move.write({'product_uom_qty': qty_to_keep})
else:
- # full pindah
move.write({'picking_id': new_picking.id, 'partial': True})
-
-
- # Confirm & assign DO baru
new_picking.action_confirm()
new_picking.action_assign()
- # Reassign DO lama biar sisa qty ke-update
picking.action_assign()
- # --- ๐Ÿ”ข Rename picking baru dengan format "/(Nomor urut)" ---
existing_partials = self.env['stock.picking'].search([
('origin', '=', picking.origin),
('state_reserve', '=', 'partial'),
@@ -220,7 +205,6 @@ class PartialDeliveryWizard(models.TransientModel):
new_name = f"{picking.name}/{suffix_number}"
new_picking.name = new_name
- # --- ๐Ÿ’ฌ Post message ke SO ---
if picking.origin:
sale_order = self.env['sale.order'].search([('name', '=', picking.origin)], limit=1)
if sale_order:
@@ -231,7 +215,6 @@ class PartialDeliveryWizard(models.TransientModel):
subtype_xmlid="mail.mt_note",
)
- # --- ๐Ÿ“ Log di DO baru ---
new_picking.message_post(
body=f"<b>Partial Picking created</b> dari {picking.name} oleh {self.env.user.name}",
message_type="comment",