diff options
| author | Miqdad <ahmadmiqdad27@gmail.com> | 2025-10-27 09:01:01 +0700 |
|---|---|---|
| committer | Miqdad <ahmadmiqdad27@gmail.com> | 2025-10-27 09:01:01 +0700 |
| commit | 7f24bdb9a5902a6b7e28aa1703ced7cf316da33e (patch) | |
| tree | 2b3c72705f728164c5e8c5d97117ac0eefb3aa5a | |
| parent | bc15f6c49970e6b57a3be07327575ca85a66bb5b (diff) | |
| parent | dbb3e64d43a5e5752a31879bc7be88d54c67d11c (diff) | |
Merge branch 'odoo-backup' of https://bitbucket.org/altafixco/indoteknik-addons into odoo-backup
merge
| -rw-r--r-- | indoteknik_custom/models/account_payment.py | 2 | ||||
| -rw-r--r-- | indoteknik_custom/models/partial_delivery.py | 10 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 30 |
3 files changed, 26 insertions, 16 deletions
diff --git a/indoteknik_custom/models/account_payment.py b/indoteknik_custom/models/account_payment.py index 11c664eb..d2d3d175 100644 --- a/indoteknik_custom/models/account_payment.py +++ b/indoteknik_custom/models/account_payment.py @@ -42,7 +42,7 @@ class AccountPayment(models.Model): def allocate_invoices(self): for payment in self: - if self. + # if self. for line in payment.payment_line: invoice = line.account_move_id move_lines = payment.line_ids.filtered(lambda line: line.account_internal_type in ('receivable', 'payable')) diff --git a/indoteknik_custom/models/partial_delivery.py b/indoteknik_custom/models/partial_delivery.py index 4df7da1e..744db325 100644 --- a/indoteknik_custom/models/partial_delivery.py +++ b/indoteknik_custom/models/partial_delivery.py @@ -172,9 +172,11 @@ class PartialDeliveryWizard(models.TransientModel): for line in selected_lines: if line.selected_qty > line.reserved_qty: raise UserError(_("Jumlah produk %s yang dipilih melebihi jumlah reserved.") % line.product_id.display_name) + move = line.move_id move._do_unreserve() + # 🔹 Kalau cuma selected tanpa qty → anggap kirim semua reserved qty if line.selected and not line.selected_qty: line.selected_qty = line.reserved_qty @@ -186,12 +188,20 @@ class PartialDeliveryWizard(models.TransientModel): if line.selected_qty < move.product_uom_qty: qty_to_keep = move.product_uom_qty - line.selected_qty + new_move = move.copy(default={ 'product_uom_qty': line.selected_qty, 'picking_id': new_picking.id, 'partial': True, }) + + if move.move_dest_ids: + for dest_move in move.move_dest_ids: + # dest_move.write({'move_orig_ids': [(4, new_move.id)]}) + new_move.write({'move_dest_ids': [(4, dest_move.id)]}) + move.write({'product_uom_qty': qty_to_keep}) + else: move.write({'picking_id': new_picking.id, 'partial': True}) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 5c8f34c6..e254ef41 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -399,21 +399,21 @@ class SaleOrder(models.Model): ) def action_open_partial_delivery_wizard(self): - raise UserError("Fitur ini sedang dalam pengembangan") - # self.ensure_one() - # pickings = self.picking_ids.filtered(lambda p: p.state not in ['done', 'cancel'] and p.name and 'BU/PICK/' in p.name) - # return { - # 'type': 'ir.actions.act_window', - # 'name': 'Partial Delivery', - # 'res_model': 'partial.delivery.wizard', - # 'view_mode': 'form', - # 'target': 'new', - # 'context': { - # 'default_sale_id': self.id, - # # kasih langsung list of int biar ga ribet di wizard - # 'default_picking_ids': pickings.ids, - # } - # } + # raise UserError("Fitur ini sedang dalam pengembangan") + self.ensure_one() + pickings = self.picking_ids.filtered(lambda p: p.state not in ['done', 'cancel'] and p.name and 'BU/PICK/' in p.name) + return { + 'type': 'ir.actions.act_window', + 'name': 'Partial Delivery', + 'res_model': 'partial.delivery.wizard', + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_sale_id': self.id, + # kasih langsung list of int biar ga ribet di wizard + 'default_picking_ids': pickings.ids, + } + } @api.depends('partner_id.is_cbd_locked') |
