diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2025-05-23 02:11:28 +0000 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2025-05-23 02:11:28 +0000 |
| commit | 957004adc73e524667800457f3db9fb6793edeac (patch) | |
| tree | 1824b9ee589f2b54657ab75f539b2f7d02224e7c /indoteknik_custom/models/stock_backorder_confirmation.py | |
| parent | 92b6da28414fed56732f86e1f04ea2fac3464d7d (diff) | |
| parent | 558130bbf48c33ddfa6080450c80bc8801a570f0 (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.py | 33 |
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 |
