mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-15 21:05:10 +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
|
||||
# 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):
|
||||
pass
|
||||
|
||||
@@ -206,10 +221,10 @@ class MaterialRequest(BuyingController):
|
||||
def on_submit(self):
|
||||
self.update_requested_qty_in_production_plan()
|
||||
self.update_requested_qty()
|
||||
if self.material_request_type == "Purchase" and frappe.db.exists(
|
||||
"Budget", {"applicable_on_material_request": 1, "docstatus": 1}
|
||||
):
|
||||
self.validate_budget()
|
||||
if self.material_request_type == "Purchase":
|
||||
self.update_prevdoc_status()
|
||||
if frappe.db.exists("Budget", {"applicable_on_material_request": 1, "docstatus": 1}):
|
||||
self.validate_budget()
|
||||
|
||||
def before_save(self):
|
||||
self.set_status(update=True)
|
||||
|
||||
@@ -933,6 +933,18 @@ class TestMaterialRequest(IntegrationTestCase):
|
||||
self.assertEqual(mr.per_ordered, 100)
|
||||
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):
|
||||
if not frappe.db.exists("Warehouse Type", "Transit"):
|
||||
|
||||
Reference in New Issue
Block a user