deleted unwanted control doctype and pages
This commit is contained in:
parent
351f790ae6
commit
df011dbfa5
@ -1 +0,0 @@
|
||||
from __future__ import unicode_literals
|
@ -1,100 +0,0 @@
|
||||
# ERPNext - web based ERP (http://erpnext.com)
|
||||
# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import webnotes
|
||||
|
||||
from webnotes.utils import cint, cstr
|
||||
from webnotes.model import db_exists
|
||||
from webnotes.model.doc import Document
|
||||
from webnotes.model.wrapper import copy_doclist
|
||||
from webnotes import session
|
||||
|
||||
sql = webnotes.conn.sql
|
||||
|
||||
|
||||
|
||||
class DocType:
|
||||
def __init__(self,d,dl):
|
||||
self.doc, self.doclist = d,dl
|
||||
|
||||
# All roles of Role Master
|
||||
def get_all_roles(self):
|
||||
r_list=sql("select name from `tabRole` where name not in ('All','Guest','Administrator','Customer','Supplier') and docstatus != 2")
|
||||
if r_list[0][0]:
|
||||
r_list = [x[0] for x in r_list]
|
||||
return r_list
|
||||
|
||||
# Get all permissions for given role
|
||||
def get_permission(self,role):
|
||||
perm = sql("select distinct t1.`parent`, t1.`read`, t1.`write`, t1.`create`, t1.`submit`,t1.`cancel`,t1.`amend` from `tabDocPerm` t1, `tabDocType` t2 where t1.`role` ='%s' and t1.docstatus !=2 and ifnull(t1.permlevel, 0) = 0 and t1.`read` = 1 and t2.module != 'Recycle Bin' and t1.parent=t2.name " % role)
|
||||
return perm or ''
|
||||
|
||||
# Get roles for given user
|
||||
def get_user_roles(self,usr):
|
||||
r_list=sql("select role from `tabUserRole` where parent=%s and role not in ('All','Guest')",usr)
|
||||
if r_list:
|
||||
return [r[0] for r in r_list]
|
||||
else:
|
||||
return ''
|
||||
|
||||
# Update roles of given user
|
||||
def update_roles(self,arg):
|
||||
arg = eval(arg)
|
||||
sql("delete from `tabUserRole` where parenttype='Profile' and parent ='%s'" % (cstr(arg['usr'])))
|
||||
role_list = arg['role_list'].split(',')
|
||||
for r in role_list:
|
||||
pr=Document('UserRole')
|
||||
pr.parent = arg['usr']
|
||||
pr.parenttype = 'Profile'
|
||||
pr.role = r
|
||||
pr.parentfield = 'userroles'
|
||||
pr.save(1)
|
||||
|
||||
# Update Membership Type at Gateway
|
||||
from webnotes.utils import cint
|
||||
|
||||
webnotes.clear_cache(cstr(arg['usr']))
|
||||
|
||||
# Save profile
|
||||
def save_profile(self,arg):
|
||||
arg = eval(arg)
|
||||
p = Document('Profile', session['user'])
|
||||
for k in arg:
|
||||
p.fields[k] = arg[k]
|
||||
p.save()
|
||||
|
||||
def get_login_url(self):
|
||||
return session['data']['login_from']
|
||||
|
||||
def get_user_info(self):
|
||||
|
||||
usr = sql("select count(name) from tabProfile where docstatus != 2 and name not in ('Guest','Administrator')")
|
||||
usr = usr and usr[0][0] or 0
|
||||
|
||||
ol = sql("select count(distinct t1.name) from tabProfile t1, tabSessions t2 where t1.name = t2.user and t1.name not in('Guest','Administrator') and TIMESTAMPDIFF(HOUR,t2.lastupdate,NOW()) <= 1 and t1.docstatus != 2 and t1.enabled=1")
|
||||
ol = ol and ol[0][0] or 0
|
||||
|
||||
ac = sql("select count(name) from tabProfile where enabled=1 and docstatus != 2 and name not in ('Guest', 'Administrator')")
|
||||
ac = ac and ac[0][0] or 0
|
||||
|
||||
inac = sql("select count(name) from tabProfile where (enabled=0 or enabled is null or enabled = '') and docstatus != 2 and name not in ('Guest','Administrator')")
|
||||
inac = inac and inac[0][0] or 0
|
||||
|
||||
return usr, ol, ac, inac
|
||||
|
||||
def get_sm_count(self) :
|
||||
return sql("select count(t1.parent) from tabUserRole t1, tabProfile t2 where t1.role='System Manager' and t1.parent = t2.name and t2.enabled=1")[0][0] or 0
|
@ -1,23 +0,0 @@
|
||||
[
|
||||
{
|
||||
"owner": "Administrator",
|
||||
"docstatus": 0,
|
||||
"creation": "2012-03-27 14:35:52",
|
||||
"modified_by": "Administrator",
|
||||
"modified": "2012-03-27 14:35:52"
|
||||
},
|
||||
{
|
||||
"section_style": "Simple",
|
||||
"name": "__common__",
|
||||
"colour": "White:FFF",
|
||||
"module": "Home",
|
||||
"doctype": "DocType",
|
||||
"version": 13,
|
||||
"server_code_error": " ",
|
||||
"issingle": 1
|
||||
},
|
||||
{
|
||||
"name": "Company Control",
|
||||
"doctype": "DocType"
|
||||
}
|
||||
]
|
@ -1 +0,0 @@
|
||||
from __future__ import unicode_literals
|
@ -1,365 +0,0 @@
|
||||
# ERPNext - web based ERP (http://erpnext.com)
|
||||
# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import webnotes
|
||||
|
||||
from webnotes.utils import add_days, cint, cstr, getdate, now, nowdate
|
||||
from webnotes.model.doc import Document
|
||||
from webnotes import session, msgprint
|
||||
|
||||
sql = webnotes.conn.sql
|
||||
|
||||
try: import json
|
||||
except: import simplejson as json
|
||||
|
||||
|
||||
|
||||
class DocType:
|
||||
def __init__(self,d,dl):
|
||||
self.doc, self.doclist = d,dl
|
||||
---------------
|
||||
# ------------------------------------- Home page module details -----------------------------------------
|
||||
|
||||
def delete_cache(self):
|
||||
com = sql("select abbr, name from tabCompany")
|
||||
for d in com:
|
||||
sql("update `tabCompany` set receivables_group = '%s' where (receivables_group = '%s' or receivables_group = '' or receivables_group is null) and name = '%s'" % ('Accounts Receivable - '+cstr(d[0]), 'Accounts Receivables - '+cstr(d[0]), d[1]))
|
||||
sql("update `tabCompany` set payables_group = '%s' where (payables_group = '%s' or payables_group = '' or payables_group is null) and name = '%s'" % ('Accounts Payable - '+cstr(d[0]), 'Accounts Payables - '+cstr(d[0]), d[1]))
|
||||
|
||||
def get_modules(self):
|
||||
rl = webnotes.user.get_roles()
|
||||
ml = sql("select distinct t1.name, t1.module_icon, t1.module_label, t1.module_desc, t1.module_page from `tabModule Def` t1, `tabModule Def Role` t2 where t2.role in ('%s') and t1.disabled !='Yes' and ifnull(t1.is_hidden, 'No') != 'Yes' and t1.name = t2.parent order by t1.module_seq asc" % "','".join(rl), as_dict=1)
|
||||
webnotes.response['login_url'] = session['data'].get('login_from', '')
|
||||
|
||||
return ml
|
||||
|
||||
def get_module_details(self,m):
|
||||
ret = {}
|
||||
ret['il'] = sql('select doc_type, doc_name, display_name, icon, description, fields, click_function, idx from `tabModule Def Item` where parent=%s and ifnull(`hide`,0)=0 order by idx asc', m, as_dict=1)
|
||||
ret['wl'] = sql('select widget_code from `tabModule Def` where name =%s', m)[0][0] or ''
|
||||
ret['custom_reports'] = sql('''
|
||||
SELECT DISTINCT t1.criteria_name AS `display_name`, t1.description, t1.doc_type AS `doc_name`, 'Custom Reports' AS `doc_type`
|
||||
FROM `tabSearch Criteria` t1, `tabDocPerm` t2
|
||||
WHERE t1.module = "%s"
|
||||
AND IFNULL(t1.disabled,0) = 0
|
||||
AND (t1.doc_type=t2.parent OR t1.parent_doc_type = t2.parent)
|
||||
AND t2.permlevel = 0
|
||||
AND t2.read=1
|
||||
AND t2.role IN ("%s")
|
||||
AND ifnull(standard,"No")="No"''' % (m, '", "'.join(webnotes.user.get_roles())), as_dict=1)
|
||||
|
||||
return ret
|
||||
|
||||
# ----------------------------------------------------------------------------------------------------------------
|
||||
# ----------------------------------------------- Home page updates ----------------------------------------------
|
||||
|
||||
def get_events_list(self):
|
||||
import webnotes, webnotes.utils
|
||||
from webnotes.widgets.event import get_cal_events
|
||||
|
||||
dl = get_cal_events(nowdate(), add_days(nowdate(), 7))
|
||||
el = []
|
||||
for d in dl:
|
||||
#el.append([d.name, d.event_date, d.event_hour, d.event_name, d.description or '', d.ref_type or '', d.ref_name or '', d.owner])
|
||||
dict = {
|
||||
'name': d.name,
|
||||
'event_date': d.event_date,
|
||||
'event_hour': d.event_hour,
|
||||
'event_name': d.event_name,
|
||||
'description': d.description,
|
||||
'notes': d.notes,
|
||||
'event_type': d.event_type,
|
||||
'ref_type': d.ref_type,
|
||||
'ref_name': d.ref_name,
|
||||
'owner' : d.owner
|
||||
}
|
||||
|
||||
el.append(dict)
|
||||
return el
|
||||
|
||||
|
||||
def get_activity_list(self):
|
||||
out = {}
|
||||
import webnotes
|
||||
rt = webnotes.user.can_read
|
||||
|
||||
dt_list = [d[0] for d in sql("select distinct t2.name from tabDocField t1, tabDocType t2 where t1.fieldname='status' and t1.docstatus=0 and (t2.istable is null or t2.istable = 0) and t1.parent = t2.name")]
|
||||
if not dt_list:
|
||||
return out
|
||||
|
||||
# get list of activity dt
|
||||
for dt in dt_list:
|
||||
if dt in rt:
|
||||
out[dt] = {}
|
||||
# get status list
|
||||
sl = sql("select distinct status from `tab%s`" % dt)
|
||||
|
||||
for s in sl:
|
||||
if s[0]:
|
||||
# get count
|
||||
cnt = sql("select count(*) from `tab%s` where status = '%s' and modified > '%s'" % (dt, s[0], add_days(nowdate(), -7)))[0][0]
|
||||
out[dt][s[0]] = cint(cnt)
|
||||
return out
|
||||
|
||||
def get_dt_help(self,dt):
|
||||
return sql("select description from tabDocType where name=%s",dt)[0][0] or ''
|
||||
|
||||
def get_wip_counts(self):
|
||||
#dtl = ['Lead', 'Enquiries', 'Sales Order', 'Invoices', 'Purchase Request', 'Purchase Order', 'Bills', 'Tasks', 'Delivery Note', 'Maintenance']
|
||||
can_read_dt = ['Lead', 'Opportunity', 'Sales Order', 'Sales Invoice', 'Purchase Request', 'Purchase Order', 'Purchase Invoice', 'Delivery Note', 'Task', 'Serial No']
|
||||
dt = {}
|
||||
for d in can_read_dt:
|
||||
args = {}
|
||||
|
||||
# if Lead
|
||||
if d=='Lead':
|
||||
args = {'To follow up':sql("select count(name) from tabLead where status!='Converted' and status!='Lead Lost' and status!='Not Interested'")}
|
||||
|
||||
# if Opportunity
|
||||
elif d=='Opportunity':
|
||||
args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabOpportunity`t2 where t1.enq_no!=t2.name and t2.docstatus=1")
|
||||
args['To follow up'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabOpportunity`t2 where t1.enq_no=t2.name and t2.docstatus=1 and t1.docstatus=1")
|
||||
|
||||
# if Sales Order
|
||||
elif d=='Sales Order':
|
||||
args['To be delivered'] = sql("select count(name) from `tabSales Order` where ifnull(per_delivered,0)<100 and delivery_date>now() and docstatus=1")
|
||||
args['To be billed'] = sql("select count(name) from `tabSales Order` where ifnull(per_billed,0)<100 and docstatus=1")
|
||||
args['Overdue'] = sql("select count(name) from `tabSales Order` where ifnull(per_delivered,0)<100 and delivery_date<now() and docstatus=1")
|
||||
args['To be submitted'] = sql("select count(name) from `tabSales Order` where docstatus=0 and status='Draft'") #Draft
|
||||
|
||||
# if Sales Invoice
|
||||
elif d=='Sales Invoice':
|
||||
args['To receive payment'] = sql("select count(name) from `tabSales Invoice` where docstatus=1 and due_date>now() and outstanding_amount!=0")
|
||||
args['Overdue'] = sql("select count(name) from `tabSales Invoice` where docstatus=1 and due_date<now() and outstanding_amount!=0")
|
||||
args['To be submitted'] = sql("select count(name) from `tabSales Invoice` where docstatus=0") #Draft
|
||||
|
||||
# if Purchase Request
|
||||
elif d=='Purchase Request':
|
||||
args['Purchase Order to be made'] = sql("select count(name) from `tabPurchase Request` where ifnull(per_ordered,0)<100 and docstatus=1")
|
||||
args['To be submitted'] = sql("select count(name) from `tabPurchase Request` where status='Draft'") #Draft
|
||||
|
||||
# if Purchase Order
|
||||
elif d=='Purchase Order':
|
||||
args['To receive items'] = sql("select count(name) from `tabPurchase Order` where ifnull(per_received,0)<100 and docstatus=1")
|
||||
args['To be billed'] = sql("select count(name) from `tabPurchase Order` where ifnull(per_billed,0)<100 and docstatus=1")
|
||||
args['To be submitted'] = sql("select count(name) from `tabPurchase Order` where status='Draft'") #Draft
|
||||
|
||||
# if Purchase Invoice
|
||||
elif d=='Purchase Invoice':
|
||||
args['To be paid'] = sql("select count(name) from `tabPurchase Invoice` where docstatus=1 and outstanding_amount!=0")
|
||||
args['To be submitted'] = sql("select count(name) from `tabPurchase Invoice` where docstatus=0") #Draft
|
||||
|
||||
# if Delivery Note
|
||||
elif d=='Delivery Note':
|
||||
args['To be submitted'] = sql("select count(name) from `tabDelivery Note` where status='Draft' and docstatus=0")
|
||||
args['To be billed'] = sql("select count(name) from `tabDelivery Note` where docstatus=1 and docstatus=1 and ifnull(per_billed,0)<100")
|
||||
|
||||
# if Tasks
|
||||
elif d=='Task':
|
||||
args = {'Open': sql("select count(name) from `tabTask` where status='Open'")}
|
||||
|
||||
# if Serial No
|
||||
elif d=='Serial No':
|
||||
args['AMC expiring this month'] = sql("select count(name) from `tabSerial No` where docstatus!=2 and maintenance_status = 'Under AMC' and status!='Scrapped' and status!='Not in Use' and month(now()) = month(amc_expiry_date) and year(now()) = year(amc_expiry_date)")
|
||||
args['Warranty expiring this month'] = sql("select count(name) from `tabSerial No` where docstatus!=2 and maintenance_status = 'Under Warranty' and status!='Scrapped' and status!='Not in Use' and month(now()) = month(ifnull(warranty_expiry_date,0)) and year(now())=year(ifnull(warranty_expiry_date,0))")
|
||||
|
||||
for a in args:
|
||||
args[a] = args[a] and args[a][0][0] or 0
|
||||
|
||||
dt[d] = args
|
||||
return dt
|
||||
|
||||
# -------------------------------------------------------------------------------------------------------
|
||||
|
||||
def get_todo_count(self):
|
||||
count = sql("select count(distinct name) from `tabToDo` where owner=%s", session['user'])
|
||||
count = count and count[0][0] or 0
|
||||
return count
|
||||
|
||||
def get_todo_list(self):
|
||||
res = sql("""select name, description, `date`,
|
||||
priority, checked, reference_type, reference_name from `tabToDo`
|
||||
where owner=%s order by field(priority,'High','Medium','Low') asc, date asc""", \
|
||||
session['user'], as_dict=1)
|
||||
return res
|
||||
|
||||
def add_todo_item(self,args):
|
||||
args = json.loads(args)
|
||||
|
||||
d = Document('ToDo', args.get('name') or None)
|
||||
d.description = args['description']
|
||||
d.date = args['date']
|
||||
d.priority = args['priority']
|
||||
d.checked = args.get('checked', 0)
|
||||
d.owner = session['user']
|
||||
d.save(not args.get('name') and 1 or 0)
|
||||
|
||||
if args.get('name') and d.checked:
|
||||
self.notify_assignment(d)
|
||||
|
||||
return d.name
|
||||
|
||||
def remove_todo_item(self,nm):
|
||||
d = Document('ToDo', nm or None)
|
||||
if d and d.name:
|
||||
self.notify_assignment(d)
|
||||
sql("delete from `tabToDo` where name = %s",nm)
|
||||
|
||||
def notify_assignment(self, d):
|
||||
doc_type = d.fields.get('reference_type')
|
||||
doc_name = d.fields.get('reference_name')
|
||||
assigned_by = d.fields.get('assigned_by')
|
||||
if doc_type and doc_name and assigned_by:
|
||||
from webnotes.widgets.form import assign_to
|
||||
assign_to.notify_assignment(assigned_by, d.owner, doc_type, doc_name)
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------------
|
||||
|
||||
def dismiss_message(self, arg=''):
|
||||
msg_id = webnotes.conn.get_global('system_message_id')
|
||||
webnotes.conn.set_global('system_message_id', msg_id, session['user'])
|
||||
|
||||
# -------------------------------------------------------------------------------------------------------
|
||||
|
||||
def get_todo_reminder(self):
|
||||
return webnotes.conn.convert_to_lists(sql("select name, description, date, priority,checked from `tabToDo` where owner=%s and date=%s and checked=1 order by priority, date", (session['user'], nowdate())))
|
||||
|
||||
# get user details
|
||||
def get_users(self):
|
||||
ret = {}
|
||||
ret['usr'] = webnotes.conn.convert_to_lists(sql("select distinct name, concat_ws(' ', first_name, last_name), ifnull(messanger_status,'Available') from tabProfile where name=%s", session['user']))
|
||||
ret['on'] = webnotes.conn.convert_to_lists(sql("select distinct t1.name, concat_ws(' ', t1.first_name, t1.last_name), ifnull(t1.messanger_status,'Available') from tabProfile t1, tabSessions t2 where t1.name = t2.user and t1.name not in('Guest',%s) and TIMESTAMPDIFF(HOUR,t2.lastupdate,NOW()) <= 1", session['user']))
|
||||
ret['off'] = webnotes.conn.convert_to_lists(sql("select distinct t1.name, concat_ws(' ', t1.first_name, t1.last_name), ifnull(t1.messanger_status,'Offline') from tabProfile t1, tabSessions t2 where t1.name != t2.user and t1.name not in('Guest',%s) and t1.name not in(select distinct t1.name from tabProfile t1, tabSessions t2 where t1.name = t2.user and t1.name not in('Guest',%s) and (t1.messanger_status !='Invisible' or t1.messanger_status is null) and TIMESTAMPDIFF(HOUR,t2.lastupdate,NOW()) <= 1)", (session['user'], session['user'])))
|
||||
|
||||
return ret
|
||||
|
||||
# Delete event
|
||||
def delete_event(self,id):
|
||||
sql("delete from tabEvent where name=%s", id)
|
||||
|
||||
# edit event
|
||||
def edit_event(self,arg):
|
||||
arg = json.loads(arg)
|
||||
d = Document('Event', arg.get('name') or None)
|
||||
for k in arg:
|
||||
d.fields[k] = str(arg[k])
|
||||
d.save(not arg.get('name') and 1 or 0)
|
||||
|
||||
# -------------------------------------------------------------------------------------------------------
|
||||
# module settings
|
||||
# -------------------------------------------------------------------------------------------------------
|
||||
def get_module_order(self):
|
||||
show_list = ['Home','Setup','Accounts','Selling','Buying','Support','Stock','HR','Projects','Analysis','Manufacturing']
|
||||
ml = filter(lambda x: x[0] in show_list, \
|
||||
sql("select name, module_label, module_seq, is_hidden from `tabModule Def` where docstatus<2 order by module_seq asc, module_label asc"))
|
||||
return webnotes.conn.convert_to_lists(ml)
|
||||
|
||||
def set_module_order(self,arg):
|
||||
arg = eval(arg)
|
||||
for k in arg:
|
||||
sql("update `tabModule Def` set module_seq = %s, is_hidden = %s where name = %s", (cint(arg[k]['module_seq']) + 1, arg[k]['is_hidden'], k))
|
||||
|
||||
# -------------------------------------------------------------------------------------------------------
|
||||
|
||||
def get_bd_list(self):
|
||||
bl = webnotes.conn.convert_to_lists(sql("select name,concat_ws(' ',first_name,last_name),birth_date from tabProfile where (birth_date is not null and birth_date != '') and (enabled is not null and enabled !='')"))
|
||||
|
||||
nd = nowdate().split('-')
|
||||
d = cint(nd[2])
|
||||
m = cint(nd[1])
|
||||
|
||||
tb = []
|
||||
for b in bl:
|
||||
if b[2] and b[2].find('-') != -1:
|
||||
if cint(b[2].split('-')[2]) == d and cint(b[2].split('-')[1]) == m:
|
||||
tb.append(b)
|
||||
|
||||
return tb
|
||||
|
||||
# obtain account id for webforms
|
||||
def get_acc_id(self):
|
||||
acc_id = sql("select value from `tabSingles` where field='account_id' and doctype='Control Panel'")
|
||||
acc_id = acc_id and acc_id[0][0] or ''
|
||||
if acc_id:
|
||||
return cstr(acc_id)
|
||||
else:
|
||||
msgprint("Account Id not specified")
|
||||
raise Exception
|
||||
|
||||
#update serial no status
|
||||
def update_serial_status(self, lst, status):
|
||||
lst11=[]
|
||||
for y1 in lst:
|
||||
sql("update `tabSerial No` set maintenance_status = %s where name=%s", (status,y1))
|
||||
lst11.append(y1)
|
||||
msgprint("Status updated as '"+status+"' for "+cstr(lst11))
|
||||
|
||||
# chk to set serial no status as 'Out of warranty'
|
||||
def set_for_out_of_warranty(self):
|
||||
chk_for_out_of_wrnty = sql("select name from `tabSerial No` where ifnull(warranty_expiry_date, '2200-12-12') < CURDATE() and ifnull(warranty_expiry_date, '0000-00-00') != '0000-00-00' and ifnull(amc_expiry_date, '0000-00-00') ='0000-00-00' and ifnull(maintenance_status, '') != 'Out of Warranty'")
|
||||
if chk_for_out_of_wrnty:
|
||||
lst1 = [x1[0] for x1 in chk_for_out_of_wrnty]
|
||||
self.update_serial_status(lst1, 'Out Of Warranty')
|
||||
|
||||
# chk to set serial no status as 'Out of amc'
|
||||
def set_for_out_of_amc(self):
|
||||
chk_for_out_of_amc = sql("select name from `tabSerial No` where ifnull(warranty_expiry_date, '0000-00-00')< CURDATE() and ifnull(amc_expiry_date, '2200-12-12') < CURDATE() and ifnull(amc_expiry_date, '0000-00-00') !='0000-00-00' and ifnull(maintenance_status, '') !='Out of AMC'")
|
||||
if chk_for_out_of_amc:
|
||||
lst2 = [x2[0] for x2 in chk_for_out_of_amc]
|
||||
self.update_serial_status(lst2, 'Out Of AMC')
|
||||
|
||||
# chk to set serial no status as 'under amc'
|
||||
def set_for_under_amc(self):
|
||||
chk_for_under_amc = sql("select name from `tabSerial No` where ifnull(warranty_expiry_date, '0000-00-00')< CURDATE() and ifnull(amc_expiry_date, '2200-12-12') >= CURDATE() and ifnull(amc_expiry_date, '0000-00-00') !='0000-00-00' and ifnull(maintenance_status, '') !='Under AMC'")
|
||||
if chk_for_under_amc:
|
||||
lst3 = [x3[0] for x3 in chk_for_under_amc]
|
||||
self.update_serial_status(lst3, 'Under AMC')
|
||||
|
||||
# chk to set serial no status as 'under warranty'
|
||||
def set_for_under_warranty(self):
|
||||
chk_for_under_wrnty = sql("select name from `tabSerial No` where ifnull(warranty_expiry_date, '2200-12-12') >= CURDATE() and ifnull(warranty_expiry_date, '0000-00-00') != '0000-00-00' and ifnull(amc_expiry_date, '0000-00-00') ='0000-00-00' and ifnull(maintenance_status, '') != 'Under Warranty'")
|
||||
if chk_for_under_wrnty:
|
||||
lst4 = [x4[0] for x4 in chk_for_under_wrnty]
|
||||
self.update_serial_status(lst4, 'Under Warranty')
|
||||
|
||||
# check maintenance status for all serial nos only for 1st login each day
|
||||
def set_serial_no_status(self):
|
||||
|
||||
chk_serial_no_update_date = webnotes.conn.get_global('maintenance_status_update_date')
|
||||
|
||||
# check status only for 1st login each day.... if maintenance date already updated means it is checked
|
||||
if getdate(chk_serial_no_update_date) != nowdate():
|
||||
# chk to set serial no status as 'Out of warranty'
|
||||
self.set_for_out_of_warranty()
|
||||
|
||||
# chk to set serial no status as 'Out of amc'
|
||||
self.set_for_out_of_amc()
|
||||
|
||||
# chk to set serial no status as 'under amc'
|
||||
self.set_for_under_amc()
|
||||
|
||||
# chk to set serial no status as 'under warranty'
|
||||
self.set_for_under_warranty()
|
||||
|
||||
#set maintenance_status_update_date
|
||||
webnotes.conn.set_global('maintenance_status_update_date', nowdate())
|
||||
|
||||
# get user fullname
|
||||
def get_user_fullname(self,usr):
|
||||
return sql("select concat_ws(' ',first_name, last_name) from tabProfile where name=%s", usr)[0][0] or ''
|
@ -1,43 +0,0 @@
|
||||
[
|
||||
{
|
||||
"owner": "Administrator",
|
||||
"docstatus": 0,
|
||||
"creation": "2012-03-27 14:35:53",
|
||||
"modified_by": "Administrator",
|
||||
"modified": "2012-03-27 14:35:53"
|
||||
},
|
||||
{
|
||||
"section_style": "Simple",
|
||||
"name": "__common__",
|
||||
"colour": "White:FFF",
|
||||
"module": "Home",
|
||||
"show_in_menu": 0,
|
||||
"version": 6,
|
||||
"server_code_error": " ",
|
||||
"doctype": "DocType",
|
||||
"issingle": 1
|
||||
},
|
||||
{
|
||||
"name": "__common__",
|
||||
"parent": "Home Control",
|
||||
"read": 1,
|
||||
"create": 1,
|
||||
"doctype": "DocPerm",
|
||||
"write": 1,
|
||||
"parenttype": "DocType",
|
||||
"permlevel": 0,
|
||||
"parentfield": "permissions"
|
||||
},
|
||||
{
|
||||
"name": "Home Control",
|
||||
"doctype": "DocType"
|
||||
},
|
||||
{
|
||||
"role": "System Manager",
|
||||
"doctype": "DocPerm"
|
||||
},
|
||||
{
|
||||
"role": "Guest",
|
||||
"doctype": "DocPerm"
|
||||
}
|
||||
]
|
@ -1 +0,0 @@
|
||||
from __future__ import unicode_literals
|
@ -1,13 +0,0 @@
|
||||
<div class="layout_wrapper">
|
||||
<div id="webform_div"></div>
|
||||
<p><strong>Note : </strong>Copy and paste code provided below in your website wherever you want to show the form to capture details</p>
|
||||
<p> </p>
|
||||
<p><span style="font-size: medium;"><strong>Lead</strong></span></p>
|
||||
<div id="lead_div"></div>
|
||||
<p><span style="font-size: medium;"><strong>Customer Issue</strong></span></p>
|
||||
<div id="cust_issue_div"></div>
|
||||
<p><span style="font-size: medium;"><strong>Job Application</strong></span></p>
|
||||
<div id="job_div"></div>
|
||||
<p><span style="font-size: medium;"><strong>Ticket</strong></span></p>
|
||||
<div id="ticket_div"></div>
|
||||
</div>
|
@ -1,42 +0,0 @@
|
||||
// ERPNext - web based ERP (http://erpnext.com)
|
||||
// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
pscript.onload_Webforms = function(){
|
||||
|
||||
$c_obj('Home Control','get_acc_id','', function(r,rt) {
|
||||
if(r.message) {
|
||||
var acc_id = r.message;
|
||||
var parent = $i('webform_div');
|
||||
new PageHeader(parent,'Web Forms','');
|
||||
|
||||
var lead_dv = $a('lead_div','div', '', {border:'1px solid #AAA', padding:'8px', width:'90%'});
|
||||
var cust_issue_dv = $a('cust_issue_div','div', '', {border:'1px solid #AAA', padding:'8px', width:'95%'});
|
||||
var job_dv = $a('job_div','div', '', {border:'1px solid #AAA', padding:'8px', width:'95%'});
|
||||
var ticket_dv = $a('ticket_div','div', '', {border:'1px solid #AAA', padding:'8px', width:'95%'});
|
||||
|
||||
// url
|
||||
if(window.location.href.indexOf('?')!=-1)
|
||||
var url = window.location.href.split('?')[0];
|
||||
else
|
||||
var url = window.location.href.split('#')[0];
|
||||
|
||||
lead_dv.innerHTML = '<iframe src ="'+url+'?ac_name='+acc_id+'&embed=Lead" width ="400" height="800" frameborder="0"></iframe>';
|
||||
cust_issue_dv.innerHTML = '<iframe src ="'+url+'?ac_name='+acc_id+'&embed=Customer Issue" width ="400" height="500" frameborder="0"></iframe>';
|
||||
job_dv.innerHTML = '<iframe src ="'+url+'?ac_name='+acc_id+'&embed=Job Application" width ="400" height="800" frameborder="0""></iframe>';
|
||||
ticket_dv.innerHTML = '<iframe src ="'+url+'?ac_name='+acc_id+'&embed=Support Ticket" width ="400" height="800" frameborder="0""></iframe>';
|
||||
}
|
||||
});
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
[
|
||||
{
|
||||
"owner": "ashwini@webnotestech.com",
|
||||
"docstatus": 0,
|
||||
"creation": "2010-10-14 11:15:59",
|
||||
"modified_by": "Administrator",
|
||||
"modified": "2011-01-04 13:19:54"
|
||||
},
|
||||
{
|
||||
"name": "__common__",
|
||||
"module": "Setup",
|
||||
"show_in_menu": 1,
|
||||
"page_name": "Webforms",
|
||||
"doctype": "Page",
|
||||
"standard": "Yes"
|
||||
},
|
||||
{
|
||||
"name": "__common__",
|
||||
"parent": "Webforms",
|
||||
"doctype": "Page Role",
|
||||
"parenttype": "Page",
|
||||
"parentfield": "roles"
|
||||
},
|
||||
{
|
||||
"name": "Webforms",
|
||||
"doctype": "Page"
|
||||
},
|
||||
{
|
||||
"role": "Administrator",
|
||||
"doctype": "Page Role"
|
||||
},
|
||||
{
|
||||
"role": "System Manager",
|
||||
"doctype": "Page Role"
|
||||
}
|
||||
]
|
@ -1 +0,0 @@
|
||||
webforms
|
@ -1 +0,0 @@
|
||||
from __future__ import unicode_literals
|
@ -1,2 +0,0 @@
|
||||
<div id="wip_head"></div>
|
||||
<div id="wip_body" style="margin:16px"></div>
|
@ -1,104 +0,0 @@
|
||||
// ERPNext - web based ERP (http://erpnext.com)
|
||||
// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
pscript['onload_WIP Monitor'] = function(){
|
||||
wip = new WIP_Monitor();
|
||||
|
||||
var h = new PageHeader('wip_head','Work in Progress Monitor','A quick glance at your work in progress and pipeline');
|
||||
h.add_button('Refresh', function(){ wip = new WIP_Monitor();}, 1, 'ui-icon-refresh');
|
||||
|
||||
}
|
||||
|
||||
// Work In Progress Monitor
|
||||
// =========================================================================================================================================================
|
||||
WIP_Monitor = function(){
|
||||
var me = this;
|
||||
this.row_index = 0;
|
||||
$c_obj('Home Control','get_wip_counts','',function(r,rt){
|
||||
me.make_wip_dashboard(r.message);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Make wip dashboard
|
||||
// ------------------
|
||||
WIP_Monitor.prototype.make_wip_dashboard = function(wip_dict)
|
||||
{
|
||||
var me = this;
|
||||
// list of doctypes which user can read
|
||||
var can_read_dt = ['Lead', 'Opportunity', 'Sales Order', 'Sales Invoice', 'Purchase Request', 'Purchase Order', 'Purchase Invoice', 'Delivery Note', 'Task', 'Serial No'];
|
||||
|
||||
$i('wip_body').innerHTML = '';
|
||||
this.tab = make_table('wip_body',1,0,'100%',[],{padding:'4px'});
|
||||
|
||||
for(var k=0; k<can_read_dt.length; k++){
|
||||
|
||||
// check if the user can read these doctypes
|
||||
if(in_list(profile.can_read, get_doctype_label(can_read_dt[k])))
|
||||
{
|
||||
var work = can_read_dt[k];
|
||||
if(this.tab.rows[this.row_index].cells.length==2){
|
||||
this.row_index = this.row_index + 1;
|
||||
this.tab.insertRow(this.tab.rows.length);
|
||||
}
|
||||
var parent = this.tab.rows[this.row_index].insertCell(this.tab.rows[this.row_index].cells.length);
|
||||
$y(parent, {paddingBottom:'16px', width:'50%', paddingLeft:'8px'})
|
||||
me.show_wip_dashboard(parent, work, wip_dict[work]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Show wip dashboard
|
||||
// ------------------
|
||||
WIP_Monitor.prototype.show_wip_dashboard = function(parent, head, report_dict)
|
||||
{
|
||||
var me = this;
|
||||
var report_dt
|
||||
|
||||
// dictionary for labels to be displayed
|
||||
var wip_lbl_map = {'Lead':'Lead', 'Opportunity':'Enquiries', 'Sales Order':'Sales Order', 'Sales Invoice':'Invoices', 'Purchase Request':'Purchase Request', 'Purchase Order':'Purchase Order', 'Purchase Invoice':'Bills', 'Delivery Note':'Delivery Note', 'Task':'Tasks', 'Serial No':'Maintenance'};
|
||||
|
||||
// header
|
||||
var h = $a(parent,'h3');
|
||||
|
||||
h.innerHTML = wip_lbl_map[head];
|
||||
report_dt = head;
|
||||
|
||||
for(report in report_dict){
|
||||
me.make_report_body(parent, report, report_dict[report], report_dt);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Make wip report body
|
||||
// --------------------
|
||||
WIP_Monitor.prototype.make_report_body = function(parent, lbl, records, rep_dt)
|
||||
{
|
||||
var me = this;
|
||||
|
||||
dt_color = lbl=='Overdue' ? 'red' : 'black';
|
||||
var tab2 = make_table(parent,1,2, '70%', ['10%', '90%'], {padding:'4px'});
|
||||
|
||||
// no of records
|
||||
var s1 = $a($td(tab2,0,0), 'span', '', {fontWeight:'bold', fontSize:'12px', color:dt_color});
|
||||
s1.innerHTML = records;
|
||||
|
||||
// link to report
|
||||
var s1 = $a($td(tab2,0,1), 'span', 'link_type', {cursor:'pointer', color:'#DFH'});
|
||||
s1.dt = rep_dt; s1.cn = rep_dt + '-' + lbl; s1.innerHTML = lbl;
|
||||
s1.onclick = function() { loadreport(this.dt, this.cn); }
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
[
|
||||
{
|
||||
"owner": "Administrator",
|
||||
"docstatus": 0,
|
||||
"creation": "2010-12-14 10:23:29",
|
||||
"modified_by": "Administrator",
|
||||
"modified": "2011-01-04 11:12:39"
|
||||
},
|
||||
{
|
||||
"name": "__common__",
|
||||
"module": "Utilities",
|
||||
"show_in_menu": 0,
|
||||
"page_name": "WIP Monitor",
|
||||
"doctype": "Page",
|
||||
"standard": "Yes"
|
||||
},
|
||||
{
|
||||
"name": "WIP Monitor",
|
||||
"doctype": "Page"
|
||||
}
|
||||
]
|
Loading…
x
Reference in New Issue
Block a user