mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 17:04:47 +00:00
Merge pull request #50399 from aerele/support-52332
This commit is contained in:
@@ -83,6 +83,21 @@ class MaterialRequest(BuyingController):
|
|||||||
work_order: DF.Link | None
|
work_order: DF.Link | None
|
||||||
# end: auto-generated types
|
# end: auto-generated types
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.status_updater = [
|
||||||
|
{
|
||||||
|
"source_dt": "Material Request Item",
|
||||||
|
"target_dt": "Sales Order Item",
|
||||||
|
"target_field": "ordered_qty",
|
||||||
|
"target_parent_dt": "Sales Order",
|
||||||
|
"target_parent_field": "",
|
||||||
|
"join_field": "sales_order_item",
|
||||||
|
"target_ref_field": "stock_qty",
|
||||||
|
"source_field": "stock_qty",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
def check_if_already_pulled(self):
|
def check_if_already_pulled(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -206,10 +221,10 @@ class MaterialRequest(BuyingController):
|
|||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
self.update_requested_qty_in_production_plan()
|
self.update_requested_qty_in_production_plan()
|
||||||
self.update_requested_qty()
|
self.update_requested_qty()
|
||||||
if self.material_request_type == "Purchase" and frappe.db.exists(
|
if self.material_request_type == "Purchase":
|
||||||
"Budget", {"applicable_on_material_request": 1, "docstatus": 1}
|
self.update_prevdoc_status()
|
||||||
):
|
if frappe.db.exists("Budget", {"applicable_on_material_request": 1, "docstatus": 1}):
|
||||||
self.validate_budget()
|
self.validate_budget()
|
||||||
|
|
||||||
def before_save(self):
|
def before_save(self):
|
||||||
self.set_status(update=True)
|
self.set_status(update=True)
|
||||||
|
|||||||
@@ -933,6 +933,18 @@ class TestMaterialRequest(IntegrationTestCase):
|
|||||||
self.assertEqual(mr.per_ordered, 100)
|
self.assertEqual(mr.per_ordered, 100)
|
||||||
self.assertEqual(mr.status, "Ordered")
|
self.assertEqual(mr.status, "Ordered")
|
||||||
|
|
||||||
|
def test_material_request_qty_over_sales_order_limit(self):
|
||||||
|
from erpnext.controllers.status_updater import OverAllowanceError
|
||||||
|
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
|
||||||
|
|
||||||
|
so = make_sales_order()
|
||||||
|
mr = make_material_request(qty=100, do_not_submit=True)
|
||||||
|
mr.items[0].sales_order = so.name
|
||||||
|
mr.items[0].sales_order_item = so.items[0].name
|
||||||
|
mr.save()
|
||||||
|
|
||||||
|
self.assertRaises(OverAllowanceError, mr.submit)
|
||||||
|
|
||||||
|
|
||||||
def get_in_transit_warehouse(company):
|
def get_in_transit_warehouse(company):
|
||||||
if not frappe.db.exists("Warehouse Type", "Transit"):
|
if not frappe.db.exists("Warehouse Type", "Transit"):
|
||||||
|
|||||||
Reference in New Issue
Block a user