summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/stock_backorder_confirmation.py
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2025-05-23 02:11:28 +0000
committerIT Fixcomart <it@fixcomart.co.id>2025-05-23 02:11:28 +0000
commit957004adc73e524667800457f3db9fb6793edeac (patch)
tree1824b9ee589f2b54657ab75f539b2f7d02224e7c /indoteknik_custom/models/stock_backorder_confirmation.py
parent92b6da28414fed56732f86e1f04ea2fac3464d7d (diff)
parent558130bbf48c33ddfa6080450c80bc8801a570f0 (diff)
Merged in CR/form-merchant (pull request #310)odoo-production
odoo quotation view & merchant view
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