Initial commit: OCA Workflow Process packages (456 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:00 +02:00
commit d366e42934
18799 changed files with 1284507 additions and 0 deletions

View file

@ -0,0 +1,2 @@
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
from . import test_supplier_calendar

View file

@ -0,0 +1,138 @@
# Copyright 2020 ForgeFlow S.L.
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
from datetime import datetime
from odoo import fields
from odoo.tests import tagged
from odoo.tests.common import TransactionCase
@tagged("post_install", "-at_install")
class TestStockWarehouseCalendar(TransactionCase):
def setUp(self):
super(TestStockWarehouseCalendar, self).setUp()
self.move_obj = self.env["stock.move"]
self.company = self.env.ref("base.main_company")
self.company_partner = self.env.ref("base.main_partner")
self.calendar = self.env.ref("resource.resource_calendar_std")
self.supplier_info = self.env["product.supplierinfo"]
self.PurchaseOrder = self.env["purchase.order"]
self.PurchaseOrderLine = self.env["purchase.order.line"]
self.stock_location = self.env.ref("stock.stock_location_stock")
self.customer_location = self.env.ref("stock.stock_location_customers")
self.picking_type_out = self.env.ref("stock.picking_type_out")
self.route_buy = self.env.ref("purchase_stock.route_warehouse0_buy").id
# Create product
self.product = self.env["product.product"].create(
{
"name": "test product",
"default_code": "PRD",
"type": "product",
"route_ids": [
(4, self.ref("stock.route_warehouse0_mto")),
(4, self.ref("purchase_stock.route_warehouse0_buy")),
],
}
)
# Partner and Supplierinfo
self.company_partner.write(
{
"delay_calendar_type": "supplier_calendar",
"factory_calendar_id": self.calendar.id,
}
)
self.seller_01 = self.supplier_info.create(
{
"partner_id": self.company_partner.id,
"product_id": self.product.id,
"product_tmpl_id": self.product.product_tmpl_id.id,
"delay": 3,
}
)
def test_01_purchase_order_with_supplier_calendar(self):
# Create a customer picking
customer_picking = self.env["stock.picking"].create(
{
"location_id": self.stock_location.id,
"location_dest_id": self.customer_location.id,
"partner_id": self.company_partner.id,
"picking_type_id": self.picking_type_out.id,
}
)
customer_move = self.env["stock.move"].create(
{
"name": "move out",
"location_id": self.stock_location.id,
"location_dest_id": self.customer_location.id,
"product_id": self.product.id,
"product_uom": self.product.uom_id.id,
"product_uom_qty": 80.0,
"procure_method": "make_to_order",
"picking_id": customer_picking.id,
"date": "2097-01-14 09:00:00", # Monday
}
)
customer_move._action_confirm()
purchase_order = self.env["purchase.order"].search(
[("partner_id", "=", self.company_partner.id)]
)
self.assertTrue(purchase_order, "No purchase order created.")
date_order = fields.Date.to_date(purchase_order.date_order)
wednesday = fields.Date.to_date("2097-01-09 09:00:00")
self.assertEqual(date_order, wednesday) # Wednesday
def test_02_purchase_order_supplier_calendar_global_leaves(self):
# Global leaves
self.calendar.write(
{
"global_leave_ids": [
(
0,
False,
{
"name": "Test",
"date_from": "2097-01-14", # Monday
"date_to": "2097-01-19", # Saturday
},
),
],
}
)
reference = "2097-01-14 09:00:00" # Monday
# With calendar
result = self.company_partner.supplier_plan_days(reference, 3).date()
next_wednesday = fields.Date.to_date("2097-01-23")
self.assertEqual(result, next_wednesday)
reference_2 = "2097-01-11 12:00:00" # friday
result = self.company_partner.supplier_plan_days(reference_2, 3).date()
self.assertEqual(result, next_wednesday)
# Without calendar
self.company_partner.write(
{"delay_calendar_type": "natural", "factory_calendar_id": False}
)
reference_3 = "2097-01-25 12:00:00" # friday
result = self.company_partner.supplier_plan_days(reference_3, 3).date()
monday = fields.Date.to_date("2097-01-28")
self.assertEqual(result, monday)
def test_03_get_seller_date_planned_from_purchase_line(self):
# We want to test the case when only the seller is provided and there is no other date.
test_date = self.company_partner.supplier_plan_days(
datetime.today(), self.seller_01.delay
)
date = self.env["purchase.order.line"]._get_date_planned(self.seller_01)
self.assertEqual(test_date, date)
def test_04_supplier_plan_days_without_delay(self):
date = fields.Date.to_date("2097-01-28")
aux_date = self.company_partner.supplier_plan_days(date, 0).date()
self.assertEqual(
date, aux_date, "The date should be the same if the delay is 0."
)