Merge pull request #35636 from s-aga-r/FIX-SBB-AttributeError

fix: miscellaneous
This commit is contained in:
rohitwaghchaure 2023-06-14 16:02:04 +05:30 committed by GitHub
commit 4820221a41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 155 additions and 8 deletions

View File

@ -65,6 +65,18 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
}; };
}); });
me.frm.set_query("serial_and_batch_bundle", "stock_items", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
me.frm.set_query("item_code", "stock_items", function() { me.frm.set_query("item_code", "stock_items", function() {
return erpnext.queries.item({"is_stock_item": 1}); return erpnext.queries.item({"is_stock_item": 1});
}); });

View File

@ -28,6 +28,18 @@ frappe.ui.form.on('Asset Repair', {
} }
}; };
}; };
frm.set_query("serial_and_batch_bundle", "stock_items", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
}, },
refresh: function(frm) { refresh: function(frm) {

View File

@ -12,6 +12,17 @@ frappe.ui.form.on('Job Card', {
}; };
}); });
frm.set_query("serial_and_batch_bundle", () => {
return {
filters: {
'item_code': frm.doc.production_item,
'voucher_type': frm.doc.doctype,
'voucher_no': ["in", [frm.doc.name, ""]],
'is_cancelled': 0,
}
}
});
frm.set_indicator_formatter('sub_operation', frm.set_indicator_formatter('sub_operation',
function(doc) { function(doc) {
if (doc.status == "Pending") { if (doc.status == "Pending") {

View File

@ -130,6 +130,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
'item_code': item_row.item_code, 'item_code': item_row.item_code,
'voucher_type': doc.doctype, 'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]], 'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
} }
} }
}); });

View File

@ -7,6 +7,17 @@ frappe.ui.form.on('Installation Note', {
frm.set_query('customer_address', erpnext.queries.address_query); frm.set_query('customer_address', erpnext.queries.address_query);
frm.set_query('contact_person', erpnext.queries.contact_query); frm.set_query('contact_person', erpnext.queries.contact_query);
frm.set_query('customer', erpnext.queries.customer); frm.set_query('customer', erpnext.queries.customer);
frm.set_query("serial_and_batch_bundle", "items", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
}, },
onload: function(frm) { onload: function(frm) {
if(!frm.doc.status) { if(!frm.doc.status) {

View File

@ -34,6 +34,18 @@ frappe.ui.form.on('Quotation', {
} }
}; };
}); });
frm.set_query("serial_and_batch_bundle", "packed_items", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
}, },
refresh: function(frm) { refresh: function(frm) {

View File

@ -12,6 +12,7 @@ frappe.ui.form.on('Pick List', {
'Delivery Note': 'Delivery Note', 'Delivery Note': 'Delivery Note',
'Stock Entry': 'Stock Entry', 'Stock Entry': 'Stock Entry',
}; };
frm.set_query('parent_warehouse', () => { frm.set_query('parent_warehouse', () => {
return { return {
filters: { filters: {
@ -20,6 +21,7 @@ frappe.ui.form.on('Pick List', {
} }
}; };
}); });
frm.set_query('work_order', () => { frm.set_query('work_order', () => {
return { return {
query: 'erpnext.stock.doctype.pick_list.pick_list.get_pending_work_orders', query: 'erpnext.stock.doctype.pick_list.pick_list.get_pending_work_orders',
@ -28,6 +30,7 @@ frappe.ui.form.on('Pick List', {
} }
}; };
}); });
frm.set_query('material_request', () => { frm.set_query('material_request', () => {
return { return {
filters: { filters: {
@ -35,9 +38,11 @@ frappe.ui.form.on('Pick List', {
} }
}; };
}); });
frm.set_query('item_code', 'locations', () => { frm.set_query('item_code', 'locations', () => {
return erpnext.queries.item({ "is_stock_item": 1 }); return erpnext.queries.item({ "is_stock_item": 1 });
}); });
frm.set_query('batch_no', 'locations', (frm, cdt, cdn) => { frm.set_query('batch_no', 'locations', (frm, cdt, cdn) => {
const row = locals[cdt][cdn]; const row = locals[cdt][cdn];
return { return {
@ -48,6 +53,18 @@ frappe.ui.form.on('Pick List', {
}, },
}; };
}); });
frm.set_query("serial_and_batch_bundle", "locations", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
}, },
set_item_locations:(frm, save) => { set_item_locations:(frm, save) => {
if (!(frm.doc.locations && frm.doc.locations.length)) { if (!(frm.doc.locations && frm.doc.locations.length)) {

View File

@ -161,6 +161,23 @@ frappe.ui.form.on('Serial and Batch Bundle', {
'istable': 0, 'istable': 0,
'issingle': 0, 'issingle': 0,
'is_submittable': 1, 'is_submittable': 1,
'name': ['in', [
"Asset Capitalization",
"Asset Repair",
"Delivery Note",
"Installation Note",
"Job Card",
"Maintenance Schedule",
"POS Invoice",
"Pick List",
"Purchase Invoice",
"Purchase Receipt",
"Quotation",
"Sales Invoice",
"Stock Entry",
"Stock Reconciliation",
"Subcontracting Receipt",
]],
} }
}; };
}); });
@ -194,6 +211,7 @@ frappe.ui.form.on('Serial and Batch Bundle', {
return { return {
filters: { filters: {
item: frm.doc.item_code, item: frm.doc.item_code,
disabled: 0,
} }
}; };
}); });

View File

@ -122,7 +122,12 @@ class SerialandBatchBundle(Document):
frappe.throw(_(message), exception, title=_("Error")) frappe.throw(_(message), exception, title=_("Error"))
def set_incoming_rate(self, row=None, save=False): def set_incoming_rate(self, row=None, save=False):
if self.type_of_transaction not in ["Inward", "Outward"]: if self.type_of_transaction not in ["Inward", "Outward"] or self.voucher_type in [
"Installation Note",
"Job Card",
"Maintenance Schedule",
"Pick List",
]:
return return
if self.type_of_transaction == "Outward": if self.type_of_transaction == "Outward":
@ -220,7 +225,7 @@ class SerialandBatchBundle(Document):
def set_incoming_rate_for_inward_transaction(self, row=None, save=False): def set_incoming_rate_for_inward_transaction(self, row=None, save=False):
valuation_field = "valuation_rate" valuation_field = "valuation_rate"
if self.voucher_type in ["Sales Invoice", "Delivery Note"]: if self.voucher_type in ["Sales Invoice", "Delivery Note", "Quotation"]:
valuation_field = "incoming_rate" valuation_field = "incoming_rate"
if self.voucher_type == "POS Invoice": if self.voucher_type == "POS Invoice":
@ -229,8 +234,10 @@ class SerialandBatchBundle(Document):
rate = row.get(valuation_field) if row else 0.0 rate = row.get(valuation_field) if row else 0.0
child_table = self.child_table child_table = self.child_table
if self.voucher_type == "Subcontracting Receipt" and self.voucher_detail_no: if self.voucher_type == "Subcontracting Receipt":
if frappe.db.exists("Subcontracting Receipt Supplied Item", self.voucher_detail_no): if not self.voucher_detail_no:
return
elif frappe.db.exists("Subcontracting Receipt Supplied Item", self.voucher_detail_no):
valuation_field = "rate" valuation_field = "rate"
child_table = "Subcontracting Receipt Supplied Item" child_table = "Subcontracting Receipt Supplied Item"
else: else:
@ -563,11 +570,21 @@ class SerialandBatchBundle(Document):
@property @property
def child_table(self): def child_table(self):
table = f"{self.voucher_type} Item" if self.voucher_type == "Job Card":
if self.voucher_type == "Stock Entry": return
table = f"{self.voucher_type} Detail"
return table parent_child_map = {
"Asset Capitalization": "Asset Capitalization Stock Item",
"Asset Repair": "Asset Repair Consumed Item",
"Quotation": "Packed Item",
"Stock Entry": "Stock Entry Detail",
}
return (
parent_child_map[self.voucher_type]
if self.voucher_type in parent_child_map
else f"{self.voucher_type} Item"
)
def delink_refernce_from_voucher(self): def delink_refernce_from_voucher(self):
or_filters = {"serial_and_batch_bundle": self.name} or_filters = {"serial_and_batch_bundle": self.name}

View File

@ -103,6 +103,18 @@ frappe.ui.form.on('Stock Entry', {
} }
}); });
frm.set_query("serial_and_batch_bundle", "items", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
frm.add_fetch("bom_no", "inspection_required", "inspection_required"); frm.add_fetch("bom_no", "inspection_required", "inspection_required");
erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype); erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype);

View File

@ -30,6 +30,18 @@ frappe.ui.form.on("Stock Reconciliation", {
}; };
}); });
frm.set_query("serial_and_batch_bundle", "items", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
if (frm.doc.company) { if (frm.doc.company) {
erpnext.queries.setup_queries(frm, "Warehouse", function() { erpnext.queries.setup_queries(frm, "Warehouse", function() {
return erpnext.queries.warehouse(frm.doc); return erpnext.queries.warehouse(frm.doc);

View File

@ -77,6 +77,18 @@ frappe.ui.form.on('Subcontracting Receipt', {
} }
}); });
frm.set_query("serial_and_batch_bundle", "supplied_items", (doc, cdt, cdn) => {
let row = locals[cdt][cdn];
return {
filters: {
'item_code': row.rm_item_code,
'voucher_type': doc.doctype,
'voucher_no': ["in", [doc.name, ""]],
'is_cancelled': 0,
}
}
});
let batch_no_field = frm.get_docfield('items', 'batch_no'); let batch_no_field = frm.get_docfield('items', 'batch_no');
if (batch_no_field) { if (batch_no_field) {
batch_no_field.get_route_options_for_new_doc = function(row) { batch_no_field.get_route_options_for_new_doc = function(row) {