This commit is contained in:
Rushabh Mehta
2014-03-27 16:12:56 +05:30
parent 66d52b55c0
commit d2b34dc30c
214 changed files with 898 additions and 973 deletions

View File

@@ -11,10 +11,7 @@ from frappe.utils import today
from erpnext.utilities.transaction_base import TransactionBase
class DocType(TransactionBase):
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
class CustomerIssue(TransactionBase):
def validate(self):
if session['user'] != 'Guest' and not self.doc.customer:

View File

@@ -5,16 +5,12 @@ from __future__ import unicode_literals
import frappe
from frappe.utils import add_days, cstr, getdate, cint
from frappe.model.doc import addchild
from frappe.model.bean import getlist
from frappe import throw, _
from erpnext.utilities.transaction_base import TransactionBase, delete_events
from erpnext.stock.utils import get_valid_serial_nos
class DocType(TransactionBase):
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
class MaintenanceSchedule(TransactionBase):
def get_item_details(self, item_code):
item = frappe.db.sql("""select item_name, description from `tabItem`
@@ -26,17 +22,16 @@ class DocType(TransactionBase):
return ret
def generate_schedule(self):
self.doclist = self.doc.clear_table(self.doclist, 'maintenance_schedule_detail')
self.set('maintenance_schedule_detail', [])
frappe.db.sql("""delete from `tabMaintenance Schedule Detail`
where parent=%s""", (self.doc.name))
count = 1
for d in getlist(self.doclist, 'item_maintenance_detail'):
for d in self.get('item_maintenance_detail'):
self.validate_maintenance_detail()
s_list = []
s_list = self.create_schedule_list(d.start_date, d.end_date, d.no_of_visits, d.sales_person)
for i in range(d.no_of_visits):
child = addchild(self.doc, 'maintenance_schedule_detail',
'Maintenance Schedule Detail', self.doclist)
child = self.append('maintenance_schedule_detail')
child.item_code = d.item_code
child.item_name = d.item_name
child.scheduled_date = s_list[i].strftime('%Y-%m-%d')
@@ -50,13 +45,13 @@ class DocType(TransactionBase):
self.on_update()
def on_submit(self):
if not getlist(self.doclist, 'maintenance_schedule_detail'):
if not self.get('maintenance_schedule_detail'):
throw("Please click on 'Generate Schedule' to get schedule")
self.check_serial_no_added()
self.validate_schedule()
email_map = {}
for d in getlist(self.doclist, 'item_maintenance_detail'):
for d in self.get('item_maintenance_detail'):
if d.serial_no:
serial_nos = get_valid_serial_nos(d.serial_no)
self.validate_serial_no(serial_nos, d.start_date)
@@ -174,10 +169,10 @@ class DocType(TransactionBase):
return ret
def validate_maintenance_detail(self):
if not getlist(self.doclist, 'item_maintenance_detail'):
if not self.get('item_maintenance_detail'):
throw(_("Please enter Maintaince Details first"))
for d in getlist(self.doclist, 'item_maintenance_detail'):
for d in self.get('item_maintenance_detail'):
if not d.item_code:
throw(_("Please select item code"))
elif not d.start_date or not d.end_date:
@@ -191,7 +186,7 @@ class DocType(TransactionBase):
throw(_("Start date should be less than end date for item") + " " + d.item_code)
def validate_sales_order(self):
for d in getlist(self.doclist, 'item_maintenance_detail'):
for d in self.get('item_maintenance_detail'):
if d.prevdoc_docname:
chk = frappe.db.sql("""select ms.name from `tabMaintenance Schedule` ms,
`tabMaintenance Schedule Item` msi where msi.parent=ms.name and
@@ -233,11 +228,11 @@ class DocType(TransactionBase):
def validate_schedule(self):
item_lst1 =[]
item_lst2 =[]
for d in getlist(self.doclist, 'item_maintenance_detail'):
for d in self.get('item_maintenance_detail'):
if d.item_code not in item_lst1:
item_lst1.append(d.item_code)
for m in getlist(self.doclist, 'maintenance_schedule_detail'):
for m in self.get('maintenance_schedule_detail'):
if m.item_code not in item_lst2:
item_lst2.append(m.item_code)
@@ -252,17 +247,17 @@ class DocType(TransactionBase):
def check_serial_no_added(self):
serial_present =[]
for d in getlist(self.doclist, 'item_maintenance_detail'):
for d in self.get('item_maintenance_detail'):
if d.serial_no:
serial_present.append(d.item_code)
for m in getlist(self.doclist, 'maintenance_schedule_detail'):
for m in self.get('maintenance_schedule_detail'):
if serial_present:
if m.item_code in serial_present and not m.serial_no:
throw("Please click on 'Generate Schedule' to fetch serial no added for item "+m.item_code)
def on_cancel(self):
for d in getlist(self.doclist, 'item_maintenance_detail'):
for d in self.get('item_maintenance_detail'):
if d.serial_no:
serial_nos = get_valid_serial_nos(d.serial_no)
self.update_amc_date(serial_nos)

View File

@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
class DocType:
def __init__(self, d, dl):
self.doc, self.doclist = d, dl
from frappe.model.document import Document
class MaintenanceScheduleDetail(Document):
pass

View File

@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
class DocType:
def __init__(self, d, dl):
self.doc, self.doclist = d, dl
from frappe.model.document import Document
class MaintenanceScheduleItem(Document):
pass

View File

@@ -12,29 +12,26 @@ from frappe import msgprint
from erpnext.utilities.transaction_base import TransactionBase
class DocType(TransactionBase):
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
class MaintenanceVisit(TransactionBase):
def get_item_details(self, item_code):
return frappe.db.get_value("Item", item_code, ["item_name", "description"], as_dict=1)
def validate_serial_no(self):
for d in getlist(self.doclist, 'maintenance_visit_details'):
for d in self.get('maintenance_visit_details'):
if d.serial_no and not frappe.db.exists("Serial No", d.serial_no):
frappe.throw("Serial No: "+ d.serial_no + " not exists in the system")
def validate(self):
if not getlist(self.doclist, 'maintenance_visit_details'):
if not self.get('maintenance_visit_details'):
msgprint("Please enter maintenance details")
raise Exception
self.validate_serial_no()
def update_customer_issue(self, flag):
for d in getlist(self.doclist, 'maintenance_visit_details'):
for d in self.get('maintenance_visit_details'):
if d.prevdoc_docname and d.prevdoc_doctype == 'Customer Issue' :
if flag==1:
mntc_date = self.doc.mntc_date
@@ -64,7 +61,7 @@ class DocType(TransactionBase):
def check_if_last_visit(self):
"""check if last maintenance visit against same sales order/ customer issue"""
check_for_docname = check_for_doctype = None
for d in getlist(self.doclist, 'maintenance_visit_details'):
for d in self.get('maintenance_visit_details'):
if d.prevdoc_docname:
check_for_docname = d.prevdoc_docname
check_for_doctype = d.prevdoc_doctype

View File

@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
class DocType:
def __init__(self, d, dl):
self.doc, self.doclist = d, dl
from frappe.model.document import Document
class MaintenanceVisitPurpose(Document):
pass

View File

@@ -7,10 +7,9 @@ import frappe
import frappe.utils
from frappe.utils import cstr
from frappe import msgprint, throw, _
from frappe.model.document import Document
class DocType():
def __init__(self, d, dl):
self.doc, self.doclist = d, dl
class Newsletter(Document):
def onload(self):
if self.doc.email_sent:

View File

@@ -6,9 +6,9 @@
from __future__ import unicode_literals
import frappe
class DocType:
def __init__(self, d, dl):
self.doc, self.doclist = d, dl
from frappe.model.document import Document
class SupportEmailSettings(Document):
def validate(self):
"""

View File

@@ -7,10 +7,7 @@ import frappe
from erpnext.utilities.transaction_base import TransactionBase
from frappe.utils import now, extract_email_id
class DocType(TransactionBase):
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
class SupportTicket(TransactionBase):
def get_sender(self, comm):
return frappe.db.get_value('Support Email Settings',None,'support_email')