mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-22 03:35:43 +00:00
Merge pull request #50090 from mihir-kandoi/restore_customer_field
fix: restore customer field
This commit is contained in:
@@ -1297,10 +1297,10 @@ def get_pending_subcontracted_quantity(doctype, name):
|
||||
)
|
||||
query = (
|
||||
frappe.qb.from_(table)
|
||||
.select(table.name, table.qty, table.subcontracted_qty)
|
||||
.select(table.name, table.stock_qty, table.subcontracted_qty)
|
||||
.where(table.parent == name)
|
||||
)
|
||||
return {item.name: item.qty - item.subcontracted_qty for item in query.run(as_dict=True)}
|
||||
return {item.name: item.stock_qty - item.subcontracted_qty for item in query.run(as_dict=True)}
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
"lead_time_days",
|
||||
"last_purchase_rate",
|
||||
"is_customer_provided_item",
|
||||
"customer",
|
||||
"supplier_details",
|
||||
"delivered_by_supplier",
|
||||
"column_break2",
|
||||
@@ -205,11 +206,9 @@
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"depends_on": "eval:!doc.is_customer_provided_item",
|
||||
"fieldname": "allow_alternative_item",
|
||||
"fieldtype": "Check",
|
||||
"label": "Allow Alternative Item",
|
||||
"read_only_depends_on": "eval:doc.is_customer_provided_item"
|
||||
"label": "Allow Alternative Item"
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
@@ -586,6 +585,13 @@
|
||||
"fieldtype": "Check",
|
||||
"label": "Is Customer Provided Item"
|
||||
},
|
||||
{
|
||||
"depends_on": "eval:doc.is_customer_provided_item",
|
||||
"fieldname": "customer",
|
||||
"fieldtype": "Link",
|
||||
"label": "Customer",
|
||||
"options": "Customer"
|
||||
},
|
||||
{
|
||||
"collapsible": 1,
|
||||
"depends_on": "eval:!doc.is_fixed_asset",
|
||||
@@ -947,7 +953,7 @@
|
||||
"image_field": "image",
|
||||
"links": [],
|
||||
"make_attachments_public": 1,
|
||||
"modified": "2025-10-12 16:58:40.946604",
|
||||
"modified": "2025-10-13 16:58:40.946604",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Stock",
|
||||
"name": "Item",
|
||||
|
||||
@@ -82,6 +82,7 @@ class Item(Document):
|
||||
country_of_origin: DF.Link | None
|
||||
create_new_batch: DF.Check
|
||||
cumulative_time: DF.Int
|
||||
customer: DF.Link | None
|
||||
customer_code: DF.SmallText | None
|
||||
customer_items: DF.Table[ItemCustomerDetail]
|
||||
customs_tariff_number: DF.Link | None
|
||||
@@ -966,7 +967,6 @@ class Item(Document):
|
||||
|
||||
restricted_fields = (
|
||||
"has_serial_no",
|
||||
"is_customer_provided_item",
|
||||
"is_stock_item",
|
||||
"valuation_method",
|
||||
"has_batch_no",
|
||||
|
||||
@@ -84,6 +84,10 @@ frappe.ui.form.on("Warehouse", {
|
||||
}
|
||||
|
||||
frm.toggle_enable(["is_group", "company"], false);
|
||||
|
||||
if (frm.doc.customer) {
|
||||
frm.set_df_property("customer", "read_only", frm.doc.__onload.stock_exists);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -59,13 +59,13 @@ class Warehouse(NestedSet):
|
||||
self.name = self.warehouse_name
|
||||
|
||||
def onload(self):
|
||||
"""load account name for General Ledger Report"""
|
||||
if self.company and cint(frappe.db.get_value("Company", self.company, "enable_perpetual_inventory")):
|
||||
account = self.account or get_warehouse_account(self)
|
||||
|
||||
if account:
|
||||
self.set_onload("account", account)
|
||||
load_address_and_contact(self)
|
||||
self.set_onload("stock_exists", self.check_if_sle_exists(non_cancelled_only=True))
|
||||
|
||||
def validate(self):
|
||||
self.warn_about_multiple_warehouse_account()
|
||||
@@ -151,8 +151,11 @@ class Warehouse(NestedSet):
|
||||
indicator="orange",
|
||||
)
|
||||
|
||||
def check_if_sle_exists(self):
|
||||
return frappe.db.exists("Stock Ledger Entry", {"warehouse": self.name})
|
||||
def check_if_sle_exists(self, non_cancelled_only=False):
|
||||
filters = {"warehouse": self.name}
|
||||
if non_cancelled_only:
|
||||
filters["is_cancelled"] = 0
|
||||
return frappe.db.exists("Stock Ledger Entry", filters)
|
||||
|
||||
def check_if_child_exists(self):
|
||||
return frappe.db.exists("Warehouse", {"parent_warehouse": self.name})
|
||||
|
||||
@@ -55,6 +55,7 @@ frappe.ui.form.on("Subcontracting Inward Order", {
|
||||
is_rejected_warehouse: 0,
|
||||
company: frm.doc.company,
|
||||
disabled: 0,
|
||||
customer: ["is", "not set"],
|
||||
},
|
||||
};
|
||||
});
|
||||
@@ -66,6 +67,7 @@ frappe.ui.form.on("Subcontracting Inward Order", {
|
||||
is_rejected_warehouse: 0,
|
||||
company: frm.doc.company,
|
||||
disabled: 0,
|
||||
customer: ["is", "not set"],
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
@@ -165,13 +165,13 @@ class SubcontractingInwardOrder(SubcontractingController):
|
||||
item = frappe.get_doc("Item", si.fg_item)
|
||||
|
||||
so_item = frappe.get_doc("Sales Order Item", si.sales_order_item)
|
||||
available_qty = so_item.qty - so_item.subcontracted_qty
|
||||
available_qty = so_item.stock_qty - so_item.subcontracted_qty
|
||||
|
||||
if available_qty == 0:
|
||||
continue
|
||||
|
||||
si.qty = available_qty
|
||||
conversion_factor = so_item.qty / so_item.fg_item_qty
|
||||
si.required_qty = available_qty
|
||||
conversion_factor = so_item.stock_qty / so_item.fg_item_qty
|
||||
si.fg_item_qty = flt(
|
||||
available_qty / conversion_factor, frappe.get_precision("Sales Order Item", "qty")
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user