summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/stock_backorder_confirmation.py
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-05-27 10:19:09 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-05-27 10:19:09 +0700
commitf0f414383b3bd34e6fce12e68e171014c08d2a55 (patch)
treef9eef4c1331f6507fadc680bdd801656ff9f8ea7 /indoteknik_custom/models/stock_backorder_confirmation.py
parent431229f2a6f1203fbdfe470229e55da8ebd3ea01 (diff)
parentd3f530b94569059106164172485aaa9665e80709 (diff)
Merge branch 'odoo-backup' into CR/repeat-order
Diffstat (limited to 'indoteknik_custom/models/stock_backorder_confirmation.py')
-rw-r--r--indoteknik_custom/models/stock_backorder_confirmation.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/indoteknik_custom/models/stock_backorder_confirmation.py b/indoteknik_custom/models/stock_backorder_confirmation.py
new file mode 100644
index 00000000..d8a41f54
--- /dev/null
+++ b/indoteknik_custom/models/stock_backorder_confirmation.py
@@ -0,0 +1,33 @@
+from odoo import models, fields, api
+from odoo.tools.float_utils import float_compare
+
+class StockBackorderConfirmation(models.TransientModel):
+ _inherit = 'stock.backorder.confirmation'
+
+ def process(self):
+ pickings_to_do = self.env['stock.picking']
+ pickings_not_to_do = self.env['stock.picking']
+ for line in self.backorder_confirmation_line_ids:
+ line.picking_id.send_mail_bills()
+ # line.picking_id.send_koli_to_so()
+ if line.to_backorder is True:
+ pickings_to_do |= line.picking_id
+ else:
+ pickings_not_to_do |= line.picking_id
+
+ for pick_id in pickings_not_to_do:
+ moves_to_log = {}
+ for move in pick_id.move_lines:
+ if float_compare(move.product_uom_qty,
+ move.quantity_done,
+ precision_rounding=move.product_uom.rounding) > 0:
+ moves_to_log[move] = (move.quantity_done, move.product_uom_qty)
+ pick_id._log_less_quantities_than_expected(moves_to_log)
+
+ pickings_to_validate = self.env.context.get('button_validate_picking_ids')
+ if pickings_to_validate:
+ pickings_to_validate = self.env['stock.picking'].browse(pickings_to_validate).with_context(skip_backorder=True)
+ if pickings_not_to_do:
+ pickings_to_validate = pickings_to_validate.with_context(picking_ids_not_to_backorder=pickings_not_to_do.ids)
+ return pickings_to_validate.button_validate()
+ return True