mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-09 00:01:18 +00:00
* ci: add prettier to pre-commit
(cherry picked from commit 2c16036ef3)
* style: format js files
---------
Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com>
Co-authored-by: Ankush Menat <ankush@frappe.io>
This commit is contained in:
@@ -2,28 +2,28 @@
|
||||
// License: GNU General Public License v3. See license.txt
|
||||
|
||||
frappe.provide("erpnext.maintenance");
|
||||
frappe.ui.form.on('Maintenance Schedule', {
|
||||
frappe.ui.form.on("Maintenance Schedule", {
|
||||
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);
|
||||
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.set_query('serial_and_batch_bundle', 'items', (doc, cdt, cdn) => {
|
||||
frm.set_query("serial_and_batch_bundle", "items", (doc, cdt, cdn) => {
|
||||
let item = locals[cdt][cdn];
|
||||
|
||||
return {
|
||||
filters: {
|
||||
'item_code': item.item_code,
|
||||
'voucher_type': 'Maintenance Schedule',
|
||||
'type_of_transaction': 'Maintenance',
|
||||
'company': doc.company,
|
||||
}
|
||||
}
|
||||
item_code: item.item_code,
|
||||
voucher_type: "Maintenance Schedule",
|
||||
type_of_transaction: "Maintenance",
|
||||
company: doc.company,
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
onload: function (frm) {
|
||||
if (!frm.doc.status) {
|
||||
frm.set_value({ status: 'Draft' });
|
||||
frm.set_value({ status: "Draft" });
|
||||
}
|
||||
if (frm.doc.__islocal) {
|
||||
frm.set_value({ transaction_date: frappe.datetime.get_today() });
|
||||
@@ -31,128 +31,136 @@ frappe.ui.form.on('Maintenance Schedule', {
|
||||
},
|
||||
refresh: function (frm) {
|
||||
setTimeout(() => {
|
||||
frm.toggle_display('generate_schedule', !(frm.is_new() || frm.doc.docstatus));
|
||||
frm.toggle_display('schedule', !(frm.is_new()));
|
||||
frm.toggle_display("generate_schedule", !(frm.is_new() || frm.doc.docstatus));
|
||||
frm.toggle_display("schedule", !frm.is_new());
|
||||
}, 10);
|
||||
},
|
||||
customer: function (frm) {
|
||||
erpnext.utils.get_party_details(frm)
|
||||
erpnext.utils.get_party_details(frm);
|
||||
},
|
||||
customer_address: function (frm) {
|
||||
erpnext.utils.get_address_display(frm, 'customer_address', 'address_display');
|
||||
erpnext.utils.get_address_display(frm, "customer_address", "address_display");
|
||||
},
|
||||
contact_person: function (frm) {
|
||||
erpnext.utils.get_contact_details(frm);
|
||||
},
|
||||
generate_schedule: function (frm) {
|
||||
if (frm.is_new()) {
|
||||
frappe.msgprint(__('Please save first'));
|
||||
frappe.msgprint(__("Please save first"));
|
||||
} else {
|
||||
frm.call('generate_schedule');
|
||||
frm.call("generate_schedule");
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
||||
|
||||
// TODO commonify this code
|
||||
erpnext.maintenance.MaintenanceSchedule = class MaintenanceSchedule extends frappe.ui.form.Controller {
|
||||
refresh() {
|
||||
frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
|
||||
frappe.dynamic_link = { doc: this.frm.doc, fieldname: "customer", doctype: "Customer" };
|
||||
|
||||
var me = this;
|
||||
|
||||
if (this.frm.doc.docstatus === 0) {
|
||||
this.frm.add_custom_button(__('Sales Order'),
|
||||
this.frm.add_custom_button(
|
||||
__("Sales Order"),
|
||||
function () {
|
||||
erpnext.utils.map_current_doc({
|
||||
method: "erpnext.selling.doctype.sales_order.sales_order.make_maintenance_schedule",
|
||||
source_doctype: "Sales Order",
|
||||
target: me.frm,
|
||||
setters: {
|
||||
customer: me.frm.doc.customer || undefined
|
||||
customer: me.frm.doc.customer || undefined,
|
||||
},
|
||||
get_query_filters: {
|
||||
docstatus: 1,
|
||||
company: me.frm.doc.company
|
||||
}
|
||||
company: me.frm.doc.company,
|
||||
},
|
||||
});
|
||||
}, __("Get Items From"));
|
||||
},
|
||||
__("Get Items From")
|
||||
);
|
||||
} else if (this.frm.doc.docstatus === 1) {
|
||||
let schedules = me.frm.doc.schedules;
|
||||
let flag = schedules.some(schedule => schedule.completion_status === "Pending");
|
||||
let flag = schedules.some((schedule) => schedule.completion_status === "Pending");
|
||||
if (flag) {
|
||||
this.frm.add_custom_button(__('Maintenance Visit'), function () {
|
||||
let options = "";
|
||||
this.frm.add_custom_button(
|
||||
__("Maintenance Visit"),
|
||||
function () {
|
||||
let options = "";
|
||||
|
||||
me.frm.call('get_pending_data', {data_type: "items"}).then(r => {
|
||||
options = r.message;
|
||||
me.frm.call("get_pending_data", { data_type: "items" }).then((r) => {
|
||||
options = r.message;
|
||||
|
||||
let schedule_id = "";
|
||||
let d = new frappe.ui.Dialog({
|
||||
title: __("Enter Visit Details"),
|
||||
fields: [{
|
||||
fieldtype: "Select",
|
||||
fieldname: "item_name",
|
||||
label: __("Item Name"),
|
||||
options: options,
|
||||
reqd: 1,
|
||||
onchange: function () {
|
||||
let field = d.get_field("scheduled_date");
|
||||
me.frm.call('get_pending_data',
|
||||
{
|
||||
item_name: this.value,
|
||||
data_type: "date"
|
||||
}).then(r => {
|
||||
field.df.options = r.message;
|
||||
field.refresh();
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
label: __('Scheduled Date'),
|
||||
fieldname: 'scheduled_date',
|
||||
fieldtype: 'Select',
|
||||
options: "",
|
||||
reqd: 1,
|
||||
onchange: function () {
|
||||
let field = d.get_field('item_name');
|
||||
me.frm.call(
|
||||
'get_pending_data',
|
||||
{
|
||||
item_name: field.value,
|
||||
s_date: this.value,
|
||||
data_type: "id"
|
||||
}).then(r => {
|
||||
schedule_id = r.message;
|
||||
});
|
||||
}
|
||||
},
|
||||
],
|
||||
primary_action_label: 'Create Visit',
|
||||
primary_action(values) {
|
||||
frappe.call({
|
||||
method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
|
||||
args: {
|
||||
item_name: values.item_name,
|
||||
s_id: schedule_id,
|
||||
source_name: me.frm.doc.name,
|
||||
let schedule_id = "";
|
||||
let d = new frappe.ui.Dialog({
|
||||
title: __("Enter Visit Details"),
|
||||
fields: [
|
||||
{
|
||||
fieldtype: "Select",
|
||||
fieldname: "item_name",
|
||||
label: __("Item Name"),
|
||||
options: options,
|
||||
reqd: 1,
|
||||
onchange: function () {
|
||||
let field = d.get_field("scheduled_date");
|
||||
me.frm
|
||||
.call("get_pending_data", {
|
||||
item_name: this.value,
|
||||
data_type: "date",
|
||||
})
|
||||
.then((r) => {
|
||||
field.df.options = r.message;
|
||||
field.refresh();
|
||||
});
|
||||
},
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
frappe.model.sync(r.message);
|
||||
frappe.set_route("Form", r.message.doctype, r.message.name);
|
||||
}
|
||||
}
|
||||
});
|
||||
d.hide();
|
||||
}
|
||||
{
|
||||
label: __("Scheduled Date"),
|
||||
fieldname: "scheduled_date",
|
||||
fieldtype: "Select",
|
||||
options: "",
|
||||
reqd: 1,
|
||||
onchange: function () {
|
||||
let field = d.get_field("item_name");
|
||||
me.frm
|
||||
.call("get_pending_data", {
|
||||
item_name: field.value,
|
||||
s_date: this.value,
|
||||
data_type: "id",
|
||||
})
|
||||
.then((r) => {
|
||||
schedule_id = r.message;
|
||||
});
|
||||
},
|
||||
},
|
||||
],
|
||||
primary_action_label: "Create Visit",
|
||||
primary_action(values) {
|
||||
frappe.call({
|
||||
method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
|
||||
args: {
|
||||
item_name: values.item_name,
|
||||
s_id: schedule_id,
|
||||
source_name: me.frm.doc.name,
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
frappe.model.sync(r.message);
|
||||
frappe.set_route("Form", r.message.doctype, r.message.name);
|
||||
}
|
||||
},
|
||||
});
|
||||
d.hide();
|
||||
},
|
||||
});
|
||||
d.show();
|
||||
});
|
||||
d.show();
|
||||
});
|
||||
}, __('Create'));
|
||||
},
|
||||
__("Create")
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
extend_cscript(cur_frm.cscript, new erpnext.maintenance.MaintenanceSchedule({frm: cur_frm}));
|
||||
extend_cscript(cur_frm.cscript, new erpnext.maintenance.MaintenanceSchedule({ frm: cur_frm }));
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
// License: GNU General Public License v3. See license.txt
|
||||
|
||||
frappe.provide("erpnext.maintenance");
|
||||
frappe.ui.form.on('Maintenance Visit', {
|
||||
frappe.ui.form.on("Maintenance Visit", {
|
||||
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);
|
||||
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);
|
||||
},
|
||||
onload: function (frm) {
|
||||
// filters for serial no based on item code
|
||||
@@ -15,42 +15,44 @@ frappe.ui.form.on('Maintenance Visit', {
|
||||
if (!item_code) {
|
||||
return;
|
||||
}
|
||||
frappe.call({
|
||||
method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.get_serial_nos_from_schedule",
|
||||
args: {
|
||||
schedule: frm.doc.maintenance_schedule,
|
||||
item_code: item_code
|
||||
}
|
||||
}).then((r) => {
|
||||
let serial_nos = r.message;
|
||||
frm.set_query('serial_no', 'purposes', () => {
|
||||
if (serial_nos.length > 0) {
|
||||
frappe
|
||||
.call({
|
||||
method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.get_serial_nos_from_schedule",
|
||||
args: {
|
||||
schedule: frm.doc.maintenance_schedule,
|
||||
item_code: item_code,
|
||||
},
|
||||
})
|
||||
.then((r) => {
|
||||
let serial_nos = r.message;
|
||||
frm.set_query("serial_no", "purposes", () => {
|
||||
if (serial_nos.length > 0) {
|
||||
return {
|
||||
filters: {
|
||||
item_code: item_code,
|
||||
name: ["in", serial_nos],
|
||||
},
|
||||
};
|
||||
}
|
||||
return {
|
||||
filters: {
|
||||
'item_code': item_code,
|
||||
'name': ["in", serial_nos]
|
||||
}
|
||||
item_code: item_code,
|
||||
},
|
||||
};
|
||||
}
|
||||
return {
|
||||
filters: {
|
||||
'item_code': item_code
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
} else {
|
||||
frm.set_query('serial_no', 'purposes', (frm, cdt, cdn) => {
|
||||
frm.set_query("serial_no", "purposes", (frm, cdt, cdn) => {
|
||||
let row = locals[cdt][cdn];
|
||||
return {
|
||||
filters: {
|
||||
'item_code': row.item_code
|
||||
}
|
||||
item_code: row.item_code,
|
||||
},
|
||||
};
|
||||
});
|
||||
}
|
||||
if (!frm.doc.status) {
|
||||
frm.set_value({ status: 'Draft' });
|
||||
frm.set_value({ status: "Draft" });
|
||||
}
|
||||
if (frm.doc.__islocal) {
|
||||
frm.set_value({ mntc_date: frappe.datetime.get_today() });
|
||||
@@ -60,25 +62,26 @@ frappe.ui.form.on('Maintenance Visit', {
|
||||
erpnext.utils.get_party_details(frm);
|
||||
},
|
||||
customer_address: function (frm) {
|
||||
erpnext.utils.get_address_display(frm, 'customer_address', 'address_display');
|
||||
erpnext.utils.get_address_display(frm, "customer_address", "address_display");
|
||||
},
|
||||
contact_person: function (frm) {
|
||||
erpnext.utils.get_contact_details(frm);
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
||||
|
||||
// TODO commonify this code
|
||||
erpnext.maintenance.MaintenanceVisit = class MaintenanceVisit extends frappe.ui.form.Controller {
|
||||
refresh() {
|
||||
frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
|
||||
frappe.dynamic_link = { doc: this.frm.doc, fieldname: "customer", doctype: "Customer" };
|
||||
|
||||
var me = this;
|
||||
|
||||
if (this.frm.doc.docstatus === 0) {
|
||||
this.frm.add_custom_button(__('Maintenance Schedule'),
|
||||
this.frm.add_custom_button(
|
||||
__("Maintenance Schedule"),
|
||||
function () {
|
||||
if (!me.frm.doc.customer) {
|
||||
frappe.msgprint(__('Please select Customer first'));
|
||||
frappe.msgprint(__("Please select Customer first"));
|
||||
return;
|
||||
}
|
||||
erpnext.utils.map_current_doc({
|
||||
@@ -90,11 +93,14 @@ erpnext.maintenance.MaintenanceVisit = class MaintenanceVisit extends frappe.ui.
|
||||
},
|
||||
get_query_filters: {
|
||||
docstatus: 1,
|
||||
company: me.frm.doc.company
|
||||
}
|
||||
})
|
||||
}, __("Get Items From"));
|
||||
this.frm.add_custom_button(__('Warranty Claim'),
|
||||
company: me.frm.doc.company,
|
||||
},
|
||||
});
|
||||
},
|
||||
__("Get Items From")
|
||||
);
|
||||
this.frm.add_custom_button(
|
||||
__("Warranty Claim"),
|
||||
function () {
|
||||
erpnext.utils.map_current_doc({
|
||||
method: "erpnext.support.doctype.warranty_claim.warranty_claim.make_maintenance_visit",
|
||||
@@ -106,14 +112,17 @@ erpnext.maintenance.MaintenanceVisit = class MaintenanceVisit extends frappe.ui.
|
||||
},
|
||||
get_query_filters: {
|
||||
status: ["in", "Open, Work in Progress"],
|
||||
company: me.frm.doc.company
|
||||
}
|
||||
})
|
||||
}, __("Get Items From"));
|
||||
this.frm.add_custom_button(__('Sales Order'),
|
||||
company: me.frm.doc.company,
|
||||
},
|
||||
});
|
||||
},
|
||||
__("Get Items From")
|
||||
);
|
||||
this.frm.add_custom_button(
|
||||
__("Sales Order"),
|
||||
function () {
|
||||
if (!me.frm.doc.customer) {
|
||||
frappe.msgprint(__('Please select Customer first'));
|
||||
frappe.msgprint(__("Please select Customer first"));
|
||||
return;
|
||||
}
|
||||
erpnext.utils.map_current_doc({
|
||||
@@ -127,11 +136,13 @@ erpnext.maintenance.MaintenanceVisit = class MaintenanceVisit extends frappe.ui.
|
||||
docstatus: 1,
|
||||
company: me.frm.doc.company,
|
||||
order_type: me.frm.doc.order_type,
|
||||
}
|
||||
})
|
||||
}, __("Get Items From"));
|
||||
},
|
||||
});
|
||||
},
|
||||
__("Get Items From")
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
extend_cscript(cur_frm.cscript, new erpnext.maintenance.MaintenanceVisit({frm: cur_frm}));
|
||||
extend_cscript(cur_frm.cscript, new erpnext.maintenance.MaintenanceVisit({ frm: cur_frm }));
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
frappe.listview_settings['Maintenance Visit'] = {
|
||||
frappe.listview_settings["Maintenance Visit"] = {
|
||||
add_fields: ["customer", "customer_name", "completion_status", "maintenance_type"],
|
||||
get_indicator: function(doc) {
|
||||
get_indicator: function (doc) {
|
||||
var s = doc.completion_status || "Pending";
|
||||
return [__(s), {
|
||||
"Pending": "blue",
|
||||
"Partially Completed": "orange",
|
||||
"Fully Completed": "green"
|
||||
}[s], "completion_status,=," + doc.completion_status];
|
||||
}
|
||||
return [
|
||||
__(s),
|
||||
{
|
||||
Pending: "blue",
|
||||
"Partially Completed": "orange",
|
||||
"Fully Completed": "green",
|
||||
}[s],
|
||||
"completion_status,=," + doc.completion_status,
|
||||
];
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user