Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
74
stock_picking_invoicing/tests/common.py
Normal file
74
stock_picking_invoicing/tests/common.py
Normal file
@@ -0,0 +1,74 @@
|
||||
# Copyright (C) 2023-Today - Akretion (<http://www.akretion.com>).
|
||||
# @author Magno Costa <magno.costa@akretion.com.br>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo.tests import Form
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestPickingInvoicingCommon(TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
|
||||
def _run_picking_onchanges(self, record):
|
||||
record._onchange_invoice_state()
|
||||
|
||||
def _run_line_onchanges(self, record):
|
||||
record._onchange_product_id()
|
||||
|
||||
def picking_move_state(self, picking):
|
||||
self._run_picking_onchanges(picking)
|
||||
picking.action_confirm()
|
||||
# Check product availability
|
||||
picking.action_assign()
|
||||
# Force product availability
|
||||
for move in picking.move_ids_without_package:
|
||||
self._run_line_onchanges(move)
|
||||
move.quantity = move.product_uom_qty
|
||||
picking.button_validate()
|
||||
|
||||
def create_invoice_wizard(self, pickings):
|
||||
wizard_obj = self.env["stock.invoice.onshipping"].with_context(
|
||||
active_ids=pickings.ids,
|
||||
active_model=pickings._name,
|
||||
)
|
||||
fields_list = wizard_obj.fields_get().keys()
|
||||
wizard_values = wizard_obj.default_get(fields_list)
|
||||
wizard_values.update({"group": "partner_product"})
|
||||
wizard = wizard_obj.create(wizard_values)
|
||||
wizard.onchange_group()
|
||||
wizard.action_generate()
|
||||
domain = [("picking_ids", "in", pickings.ids)]
|
||||
invoice = self.env["account.move"].search(domain)
|
||||
return invoice
|
||||
|
||||
def return_picking_wizard(self, picking):
|
||||
# Return Picking
|
||||
return_wizard_form = Form(
|
||||
self.env["stock.return.picking"].with_context(
|
||||
**dict(active_id=picking.id, active_model="stock.picking")
|
||||
)
|
||||
)
|
||||
return_wizard_form.invoice_state = "2binvoiced"
|
||||
self.return_wizard = return_wizard_form.save()
|
||||
self.return_wizard.product_return_moves[0].quantity = 1
|
||||
result_wizard = self.return_wizard.action_create_returns()
|
||||
self.assertTrue(result_wizard, "Create returns wizard fail.")
|
||||
picking_devolution = self.env["stock.picking"].browse(
|
||||
result_wizard.get("res_id")
|
||||
)
|
||||
return picking_devolution
|
||||
|
||||
def create_backorder_wizard(self, picking):
|
||||
res_dict_for_back_order = picking.button_validate()
|
||||
backorder_wizard = Form(
|
||||
self.env[res_dict_for_back_order["res_model"]].with_context(
|
||||
**res_dict_for_back_order["context"]
|
||||
)
|
||||
).save()
|
||||
backorder_wizard.process()
|
||||
backorder = self.env["stock.picking"].search(
|
||||
[("backorder_id", "=", picking.id)]
|
||||
)
|
||||
return backorder
|
||||
Reference in New Issue
Block a user