refactor: suggested changes
This commit is contained in:
parent
c0352010d3
commit
08598238d7
@ -64,22 +64,17 @@ erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({
|
|||||||
});
|
});
|
||||||
}, __("Get Items From"));
|
}, __("Get Items From"));
|
||||||
} else if (this.frm.doc.docstatus === 1) {
|
} else if (this.frm.doc.docstatus === 1) {
|
||||||
var s = me.frm.doc.schedules;
|
let schedules = me.frm.doc.schedules;
|
||||||
let flag = 0;
|
let flag = schedules.some(schedule => schedule.completion_status === "Pending");
|
||||||
for (let i in s) {
|
|
||||||
if (s[i].completion_status == "Pending") {
|
|
||||||
flag = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
this.frm.add_custom_button(__('Create Maintenance Visit'), function () {
|
this.frm.add_custom_button(__('Create Maintenance Visit'), function () {
|
||||||
let options = "";
|
let options = "";
|
||||||
|
|
||||||
me.frm.call('get_pending_data',{data_type:"items"}).then(r =>{
|
me.frm.call('get_pending_data', {data_type: "items"}).then(r =>{
|
||||||
options = r.message
|
options = r.message
|
||||||
|
|
||||||
var schedule_id = "";
|
let schedule_id = "";
|
||||||
var d = new frappe.ui.Dialog({
|
let d = new frappe.ui.Dialog({
|
||||||
title: __("Enter Visit Details"),
|
title: __("Enter Visit Details"),
|
||||||
fields: [{
|
fields: [{
|
||||||
fieldtype: "Select",
|
fieldtype: "Select",
|
||||||
@ -103,7 +98,13 @@ erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({
|
|||||||
reqd: 1,
|
reqd: 1,
|
||||||
onchange: function () {
|
onchange: function () {
|
||||||
let field = d.get_field('item_name');
|
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 =>{
|
me.frm.call(
|
||||||
|
'get_pending_data',
|
||||||
|
{
|
||||||
|
item_name: field.value,
|
||||||
|
s_date: this.value,
|
||||||
|
data_type: "id"
|
||||||
|
}).then(r =>{
|
||||||
schedule_id = r.message;
|
schedule_id = r.message;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -117,7 +118,6 @@ erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({
|
|||||||
item_name: values.item_name,
|
item_name: values.item_name,
|
||||||
s_id: schedule_id,
|
s_id: schedule_id,
|
||||||
source_name: me.frm.doc.name,
|
source_name: me.frm.doc.name,
|
||||||
|
|
||||||
},
|
},
|
||||||
callback: function (r) {
|
callback: function (r) {
|
||||||
if (!r.exc) {
|
if (!r.exc) {
|
||||||
@ -125,8 +125,6 @@ erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({
|
|||||||
frappe.set_route("Form", r.message.doctype, r.message.name);
|
frappe.set_route("Form", r.message.doctype, r.message.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
d.hide();
|
d.hide();
|
||||||
}
|
}
|
||||||
|
@ -45,28 +45,27 @@ class MaintenanceSchedule(TransactionBase):
|
|||||||
"Half Yearly": 182,
|
"Half Yearly": 182,
|
||||||
"Yearly": 365
|
"Yearly": 365
|
||||||
}
|
}
|
||||||
for i in self.items:
|
for item in self.items:
|
||||||
|
if item.periodicity and item.start_date:
|
||||||
if i.periodicity and i.start_date:
|
if not item.end_date:
|
||||||
if not i.end_date:
|
if item.no_of_visits:
|
||||||
if i.no_of_visits:
|
item.end_date = add_days(item.start_date, item.no_of_visits * days_in_period[item.periodicity])
|
||||||
i.end_date = add_days(i.start_date, i.no_of_visits * days_in_period[i.periodicity])
|
|
||||||
else:
|
else:
|
||||||
i.end_date = add_days(i.start_date, days_in_period[i.periodicity])
|
item.end_date = add_days(item.start_date, days_in_period[item.periodicity])
|
||||||
|
|
||||||
diff = date_diff(i.end_date, i.start_date) + 1
|
diff = date_diff(item.end_date, item.start_date) + 1
|
||||||
no_of_visits = cint(diff / days_in_period[i.periodicity])
|
no_of_visits = cint(diff / days_in_period[item.periodicity])
|
||||||
|
|
||||||
if not i.no_of_visits or i.no_of_visits == 0:
|
if not item.no_of_visits or item.no_of_visits == 0:
|
||||||
i.end_date = add_days(i.start_date, days_in_period[i.periodicity])
|
item.end_date = add_days(item.start_date, days_in_period[item.periodicity])
|
||||||
diff = date_diff(i.end_date, i.start_date ) + 1
|
diff = date_diff(item.end_date, item.start_date ) + 1
|
||||||
i.no_of_visits = cint(diff / days_in_period[i.periodicity])
|
item.no_of_visits = cint(diff / days_in_period[item.periodicity])
|
||||||
|
|
||||||
elif i.no_of_visits > no_of_visits:
|
elif item.no_of_visits > no_of_visits:
|
||||||
i.end_date = add_days(i.start_date, i.no_of_visits * days_in_period[i.periodicity])
|
item.end_date = add_days(item.start_date, item.no_of_visits * days_in_period[item.periodicity])
|
||||||
|
|
||||||
elif i.no_of_visits < no_of_visits:
|
elif item.no_of_visits < no_of_visits:
|
||||||
i.end_date = add_days(i.start_date, i.no_of_visits * days_in_period[i.periodicity])
|
item.end_date = add_days(item.start_date, item.no_of_visits * days_in_period[item.periodicity])
|
||||||
|
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
@ -92,9 +91,10 @@ class MaintenanceSchedule(TransactionBase):
|
|||||||
|
|
||||||
if no_email_sp:
|
if no_email_sp:
|
||||||
frappe.msgprint(
|
frappe.msgprint(
|
||||||
frappe._("Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}").format(
|
_("Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}").format(
|
||||||
self.owner, "<br>" + "<br>".join(no_email_sp)
|
self.owner, "<br>" + "<br>".join(no_email_sp)
|
||||||
))
|
)
|
||||||
|
)
|
||||||
|
|
||||||
scheduled_date = frappe.db.sql("""select scheduled_date from
|
scheduled_date = frappe.db.sql("""select scheduled_date from
|
||||||
`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
|
`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
|
||||||
@ -103,12 +103,12 @@ class MaintenanceSchedule(TransactionBase):
|
|||||||
for key in scheduled_date:
|
for key in scheduled_date:
|
||||||
description =frappe._("Reference: {0}, Item Code: {1} and Customer: {2}").format(self.name, d.item_code, self.customer)
|
description =frappe._("Reference: {0}, Item Code: {1} and Customer: {2}").format(self.name, d.item_code, self.customer)
|
||||||
event = frappe.get_doc({
|
event = frappe.get_doc({
|
||||||
"doctype": "Event",
|
"doctype": "Event",
|
||||||
"owner": email_map.get(d.sales_person, self.owner),
|
"owner": email_map.get(d.sales_person, self.owner),
|
||||||
"subject": description,
|
"subject": description,
|
||||||
"description": description,
|
"description": description,
|
||||||
"starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
|
"starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
|
||||||
"event_type": "Private",
|
"event_type": "Private",
|
||||||
})
|
})
|
||||||
event.add_participant(self.doctype, self.name)
|
event.add_participant(self.doctype, self.name)
|
||||||
event.insert(ignore_permissions=1)
|
event.insert(ignore_permissions=1)
|
||||||
@ -126,7 +126,7 @@ class MaintenanceSchedule(TransactionBase):
|
|||||||
start_date_copy = add_days(start_date_copy, add_by)
|
start_date_copy = add_days(start_date_copy, add_by)
|
||||||
if len(schedule_list) < no_of_visit:
|
if len(schedule_list) < no_of_visit:
|
||||||
schedule_date = self.validate_schedule_date_for_holiday_list(getdate(start_date_copy),
|
schedule_date = self.validate_schedule_date_for_holiday_list(getdate(start_date_copy),
|
||||||
sales_person)
|
sales_person)
|
||||||
if schedule_date > getdate(end_date):
|
if schedule_date > getdate(end_date):
|
||||||
schedule_date = getdate(end_date)
|
schedule_date = getdate(end_date)
|
||||||
schedule_list.append(schedule_date)
|
schedule_list.append(schedule_date)
|
||||||
@ -280,30 +280,27 @@ class MaintenanceSchedule(TransactionBase):
|
|||||||
def on_trash(self):
|
def on_trash(self):
|
||||||
delete_events(self.doctype, self.name)
|
delete_events(self.doctype, self.name)
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_pending_data(self,data_type,s_date = None, item_name = None):
|
def get_pending_data(self,data_type,s_date = None, item_name = None):
|
||||||
if data_type == "date":
|
if data_type == "date":
|
||||||
dates = ""
|
dates = ""
|
||||||
for i in self.schedules:
|
for schedule in self.schedules:
|
||||||
if i.item_name == item_name and i.completion_status == "Pending":
|
if schedule.item_name == item_name and schedule.completion_status == "Pending":
|
||||||
dates = dates + "\n" + formatdate(i.scheduled_date, "dd-MM-yyyy")
|
dates = dates + "\n" + formatdate(schedule.scheduled_date, "dd-MM-yyyy")
|
||||||
return dates
|
return dates
|
||||||
elif data_type == "items":
|
elif data_type == "items":
|
||||||
items = ""
|
items = ""
|
||||||
for i in self.items:
|
for item in self.items:
|
||||||
for s in self.schedules:
|
for schedule in self.schedules:
|
||||||
if i.item_name == s.item_name and s.completion_status == "Pending":
|
if item.item_name == schedule.item_name and schedule.completion_status == "Pending":
|
||||||
items = items + "\n" + i.item_name
|
items = items + "\n" + item.item_name
|
||||||
break
|
break
|
||||||
return items
|
return items
|
||||||
elif data_type == "id":
|
elif data_type == "id":
|
||||||
for s in self.schedules:
|
for schedule in self.schedules:
|
||||||
if s.item_name == item_name and s_date == formatdate(s.scheduled_date,"dd-mm-yyyy"):
|
if schedule.item_name == item_name and s_date == formatdate(schedule.scheduled_date,"dd-mm-yyyy"):
|
||||||
return s.name
|
return schedule.name
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def update_serial_nos(s_id):
|
def update_serial_nos(s_id):
|
||||||
serial_nos = frappe.db.get_value('Maintenance Schedule Detail', s_id, 'serial_no')
|
serial_nos = frappe.db.get_value('Maintenance Schedule Detail', s_id, 'serial_no')
|
||||||
@ -314,7 +311,7 @@ def update_serial_nos(s_id):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_maintenance_visit(source_name, target_doc=None,item_name=None,s_id=None):
|
def make_maintenance_visit(source_name, target_doc=None, item_name=None, s_id=None):
|
||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
|
|
||||||
def update_status(source, target, parent):
|
def update_status(source, target, parent):
|
||||||
|
@ -15,16 +15,13 @@ frappe.ui.form.on('Maintenance Visit', {
|
|||||||
'name': ["in", serial_nos]
|
'name': ["in", serial_nos]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
filters: {
|
filters: {
|
||||||
'item_code': item.item_code
|
'item_code': item.item_code
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
setup: function (frm) {
|
setup: function (frm) {
|
||||||
@ -35,18 +32,16 @@ frappe.ui.form.on('Maintenance Visit', {
|
|||||||
onload: function (frm, cdt, cdn) {
|
onload: function (frm, cdt, cdn) {
|
||||||
let item = locals[cdt][cdn];
|
let item = locals[cdt][cdn];
|
||||||
if (frm.maintenance_type == 'Scheduled') {
|
if (frm.maintenance_type == 'Scheduled') {
|
||||||
|
let schedule_id = item.purposes[0].prevdoc_detail_docname;
|
||||||
let s_id = item.purposes[0].prevdoc_detail_docname;
|
|
||||||
frappe.call({
|
frappe.call({
|
||||||
method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.update_serial_nos",
|
method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.update_serial_nos",
|
||||||
args: {
|
args: {
|
||||||
s_id: s_id
|
s_id: schedule_id
|
||||||
},
|
},
|
||||||
callback: function (r) {
|
callback: function (r) {
|
||||||
serial_nos = r.message;
|
serial_nos = r.message;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!frm.doc.status) {
|
if (!frm.doc.status) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user