Skip to content

Commit

Permalink
fix: OperationalError while selecting Serial No in Warranty Claim
Browse files Browse the repository at this point in the history
… (backport #38394) (#38414)

* refactor: use arrow function

(cherry picked from commit 1763824)

* refactor: use DocType `Fetch From` instead of `frm.add_fetch`

(cherry picked from commit 01044ca)

* refactor: use `frm.set_query` to add filters

(cherry picked from commit 640dfab)

* refactor: don't use `cur_frm`

(cherry picked from commit 9fadf5f)

---------

Co-authored-by: s-aga-r <[email protected]>
  • Loading branch information
mergify[bot] and s-aga-r authored Nov 29, 2023
1 parent 4a243ce commit 80afeca
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 83 deletions.
134 changes: 54 additions & 80 deletions erpnext/support/doctype/warranty_claim/warranty_claim.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,93 +4,67 @@
frappe.provide("erpnext.support");

frappe.ui.form.on("Warranty Claim", {
setup: function(frm) {
frm.set_query('contact_person', erpnext.queries.contact_query);
frm.set_query('customer_address', erpnext.queries.address_query);
frm.set_query('customer', erpnext.queries.customer);
setup: (frm) => {
frm.set_query("contact_person", erpnext.queries.contact_query);
frm.set_query("customer_address", erpnext.queries.address_query);
frm.set_query("customer", erpnext.queries.customer);

frm.add_fetch('serial_no', 'item_code', 'item_code');
frm.add_fetch('serial_no', 'item_name', 'item_name');
frm.add_fetch('serial_no', 'description', 'description');
frm.add_fetch('serial_no', 'maintenance_status', 'warranty_amc_status');
frm.add_fetch('serial_no', 'warranty_expiry_date', 'warranty_expiry_date');
frm.add_fetch('serial_no', 'amc_expiry_date', 'amc_expiry_date');
frm.add_fetch('serial_no', 'customer', 'customer');
frm.add_fetch('serial_no', 'customer_name', 'customer_name');
frm.add_fetch('item_code', 'item_name', 'item_name');
frm.add_fetch('item_code', 'description', 'description');
frm.set_query("serial_no", () => {
let filters = {
company: frm.doc.company,
};

if (frm.doc.item_code) {
filters["item_code"] = frm.doc.item_code;
}

return { filters: filters };
});

frm.set_query("item_code", () => {
return {
filters: {
disabled: 0,
},
};
});
},
onload: function(frm) {
if(!frm.doc.status) {
frm.set_value('status', 'Open');

onload: (frm) => {
if (!frm.doc.status) {
frm.set_value("status", "Open");
}
},
customer: function(frm) {
erpnext.utils.get_party_details(frm);
},
customer_address: function(frm) {
erpnext.utils.get_address_display(frm);
},
contact_person: function(frm) {
erpnext.utils.get_contact_details(frm);
}
});

erpnext.support.WarrantyClaim = class WarrantyClaim extends frappe.ui.form.Controller {
refresh() {
frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
refresh: (frm) => {
frappe.dynamic_link = {
doc: frm.doc,
fieldname: "customer",
doctype: "Customer",
};

if(!cur_frm.doc.__islocal &&
(cur_frm.doc.status=='Open' || cur_frm.doc.status == 'Work In Progress')) {
cur_frm.add_custom_button(__('Maintenance Visit'),
this.make_maintenance_visit);
if (
!frm.doc.__islocal &&
["Open", "Work In Progress"].includes(frm.doc.status)
) {
frm.add_custom_button(__("Maintenance Visit"), () => {
frappe.model.open_mapped_doc({
method: "erpnext.support.doctype.warranty_claim.warranty_claim.make_maintenance_visit",
frm: frm,
});
});
}
}

make_maintenance_visit() {
frappe.model.open_mapped_doc({
method: "erpnext.support.doctype.warranty_claim.warranty_claim.make_maintenance_visit",
frm: cur_frm
})
}
};
},

extend_cscript(cur_frm.cscript, new erpnext.support.WarrantyClaim({frm: cur_frm}));
customer: (frm) => {
erpnext.utils.get_party_details(frm);
},

cur_frm.fields_dict['serial_no'].get_query = function(doc, cdt, cdn) {
var cond = [];
var filter = [
['Serial No', 'docstatus', '!=', 2]
];
if(doc.item_code) {
cond = ['Serial No', 'item_code', '=', doc.item_code];
filter.push(cond);
}
if(doc.customer) {
cond = ['Serial No', 'customer', '=', doc.customer];
filter.push(cond);
}
return{
filters:filter
}
}
customer_address: (frm) => {
erpnext.utils.get_address_display(frm);
},

cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
if(doc.serial_no) {
return{
doctype: "Serial No",
fields: "item_code",
filters:{
name: doc.serial_no
}
}
}
else{
return{
filters:[
['Item', 'docstatus', '!=', 2],
['Item', 'disabled', '=', 0]
]
}
}
};
contact_person: (frm) => {
erpnext.utils.get_contact_details(frm);
},
});
19 changes: 16 additions & 3 deletions erpnext/support/doctype/warranty_claim/warranty_claim.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,8 @@
"fieldname": "serial_no",
"fieldtype": "Link",
"label": "Serial No",
"options": "Serial No"
"options": "Serial No",
"search_index": 1
},
{
"fieldname": "customer",
Expand Down Expand Up @@ -128,6 +129,8 @@
"options": "fa fa-ticket"
},
{
"fetch_from": "serial_no.item_code",
"fetch_if_empty": 1,
"fieldname": "item_code",
"fieldtype": "Link",
"in_list_view": 1,
Expand All @@ -140,6 +143,7 @@
},
{
"depends_on": "eval:doc.item_code",
"fetch_from": "item_code.item_name",
"fieldname": "item_name",
"fieldtype": "Data",
"label": "Item Name",
Expand All @@ -149,6 +153,7 @@
},
{
"depends_on": "eval:doc.item_code",
"fetch_from": "item_code.description",
"fieldname": "description",
"fieldtype": "Small Text",
"label": "Description",
Expand All @@ -164,17 +169,24 @@
"width": "50%"
},
{
"fetch_from": "serial_no.maintenance_status",
"fetch_if_empty": 1,
"fieldname": "warranty_amc_status",
"fieldtype": "Select",
"label": "Warranty / AMC Status",
"options": "\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC"
"options": "\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC",
"search_index": 1
},
{
"fetch_from": "serial_no.warranty_expiry_date",
"fetch_if_empty": 1,
"fieldname": "warranty_expiry_date",
"fieldtype": "Date",
"label": "Warranty Expiry Date"
},
{
"fetch_from": "serial_no.amc_expiry_date",
"fetch_if_empty": 1,
"fieldname": "amc_expiry_date",
"fieldtype": "Date",
"label": "AMC Expiry Date"
Expand Down Expand Up @@ -225,6 +237,7 @@
{
"bold": 1,
"depends_on": "customer",
"fetch_from": "customer.customer_name",
"fieldname": "customer_name",
"fieldtype": "Data",
"in_global_search": 1,
Expand Down Expand Up @@ -366,7 +379,7 @@
"icon": "fa fa-bug",
"idx": 1,
"links": [],
"modified": "2023-06-03 16:17:07.694449",
"modified": "2023-11-28 17:30:35.676410",
"modified_by": "Administrator",
"module": "Support",
"name": "Warranty Claim",
Expand Down

0 comments on commit 80afeca

Please sign in to comment.