Merge branch 'master' of github.com:webnotes/erpnext
This commit is contained in:
commit
8cf45175a7
@ -5,7 +5,7 @@
|
||||
{
|
||||
'creation': '2010-08-08 17:09:36',
|
||||
'docstatus': 0,
|
||||
'modified': '2011-08-08 16:56:40',
|
||||
'modified': '2011-08-31 16:53:11',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
},
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
# These values are common for all DocType Mapper
|
||||
{
|
||||
'doctype': 'DocType Mapper',
|
||||
'doctype': u'DocType Mapper',
|
||||
'from_doctype': 'Sales Order',
|
||||
'module': 'Accounts',
|
||||
'name': '__common__',
|
||||
@ -41,7 +41,7 @@
|
||||
|
||||
# DocType Mapper, Sales Order-Receivable Voucher
|
||||
{
|
||||
'doctype': 'DocType Mapper',
|
||||
'doctype': u'DocType Mapper',
|
||||
'name': 'Sales Order-Receivable Voucher'
|
||||
},
|
||||
|
||||
@ -128,7 +128,7 @@
|
||||
'match_id': 1,
|
||||
'to_field': 'entries',
|
||||
'to_table': 'RV Detail',
|
||||
'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1'
|
||||
'validation_logic': 'docstatus = 1'
|
||||
},
|
||||
|
||||
# Table Mapper Detail
|
||||
|
@ -1,7 +1,7 @@
|
||||
# REMEMBER to update this
|
||||
# ========================
|
||||
|
||||
last_patch = 355
|
||||
last_patch = 358
|
||||
|
||||
#-------------------------------------------
|
||||
|
||||
@ -251,6 +251,8 @@ def execute(patch_no):
|
||||
reload_doc('stock','doctype','item_customer_detail')
|
||||
elif patch_no == 344:
|
||||
sql("delete from `tabDocFormat` where ifnull(format, '') = '' and parent = 'Delivery Note'")
|
||||
reload_doc('stock', 'doctype', 'delivery_note_detail')
|
||||
reload_doc('stock', 'doctype', 'item_customer_detail')
|
||||
elif patch_no == 345:
|
||||
# rerun 343 (merge confict)
|
||||
reload_doc('stock','doctype','item_customer_detail')
|
||||
@ -303,4 +305,11 @@ def execute(patch_no):
|
||||
elif patch_no == 355:
|
||||
reload_doc('hr', 'doctype', 'salary_slip')
|
||||
delete_doc('DocType', 'Salary Control Panel')
|
||||
|
||||
elif patch_no == 356:
|
||||
reload_doc('core', 'doctype', 'doctype')
|
||||
sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'")
|
||||
elif patch_no == 357:
|
||||
sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'")
|
||||
elif patch_no == 358:
|
||||
reload_doc('stock', 'doctype', 'delivery_note')
|
||||
reload_doc('stock', 'doctype', 'delivery_note_detail')
|
||||
|
@ -499,19 +499,19 @@ class DocType:
|
||||
def get_child_flat_bom_items(self, item, d):
|
||||
|
||||
child_flat_bom_items=[]
|
||||
if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'):
|
||||
# if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'):
|
||||
|
||||
child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no)))
|
||||
self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes'])
|
||||
child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no)))
|
||||
self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes'])
|
||||
return child_flat_bom_items
|
||||
|
||||
else:
|
||||
child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no)))
|
||||
# else:
|
||||
# child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no)))
|
||||
|
||||
if not child_flat_bom_items:
|
||||
msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no))
|
||||
raise Exception
|
||||
else:
|
||||
return child_flat_bom_items
|
||||
# if not child_flat_bom_items:
|
||||
# msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no))
|
||||
# raise Exception
|
||||
# else:"""
|
||||
|
||||
|
||||
# Get Current Flat BOM Items
|
||||
|
@ -18,179 +18,177 @@ convert_to_lists = webnotes.conn.convert_to_lists
|
||||
from utilities.transaction_base import TransactionBase
|
||||
|
||||
class DocType(TransactionBase):
|
||||
def __init__(self, d, dl):
|
||||
self.doc, self.doclist = d, dl
|
||||
def __init__(self, d, dl):
|
||||
self.doc, self.doclist = d, dl
|
||||
|
||||
|
||||
# Get Names of all Approving Users and Roles
|
||||
# -------------------------------------------
|
||||
def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company):
|
||||
amt_list, appr_users, appr_roles = [], [], []
|
||||
users, roles = '',''
|
||||
if det:
|
||||
for x in det:
|
||||
amt_list.append(flt(x[0]))
|
||||
max_amount = max(amt_list)
|
||||
|
||||
app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and company = '%s' %s" % (doctype_name, flt(max_amount), total, based_on, company, condition))
|
||||
if not app_dtl:
|
||||
app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and ifnull(company,'') = '' %s" % (doctype_name, flt(max_amount), total, based_on, condition))
|
||||
for d in app_dtl:
|
||||
if(d[0]): appr_users.append(d[0])
|
||||
if(d[1]): appr_roles.append(d[1])
|
||||
|
||||
if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']):
|
||||
msg, add_msg = '',''
|
||||
if max_amount:
|
||||
dcc = TransactionBase().get_company_currency(self.doc.company)
|
||||
if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount))
|
||||
elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item)
|
||||
elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%')
|
||||
|
||||
if appr_users: add_msg = "Users : "+cstr(appr_users)
|
||||
if appr_roles: add_msg = "Roles : "+cstr(appr_roles)
|
||||
if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles)
|
||||
msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg))
|
||||
raise Exception
|
||||
# Get Names of all Approving Users and Roles
|
||||
# -------------------------------------------
|
||||
def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company):
|
||||
amt_list, appr_users, appr_roles = [], [], []
|
||||
users, roles = '',''
|
||||
if det:
|
||||
for x in det:
|
||||
amt_list.append(flt(x[0]))
|
||||
max_amount = max(amt_list)
|
||||
|
||||
app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company))
|
||||
if not app_dtl:
|
||||
app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on))
|
||||
for d in app_dtl:
|
||||
if(d[0]): appr_users.append(d[0])
|
||||
if(d[1]): appr_roles.append(d[1])
|
||||
|
||||
if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']):
|
||||
msg, add_msg = '',''
|
||||
if max_amount:
|
||||
dcc = TransactionBase().get_company_currency(self.doc.company)
|
||||
if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount))
|
||||
elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item)
|
||||
elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%')
|
||||
|
||||
if appr_users: add_msg = "Users : "+cstr(appr_users)
|
||||
if appr_roles: add_msg = "Roles : "+cstr(appr_roles)
|
||||
if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles)
|
||||
msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg))
|
||||
raise Exception
|
||||
|
||||
|
||||
# Check if authorization rule is set specific to user
|
||||
# ----------------------------------------------------
|
||||
def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''):
|
||||
chk = 1
|
||||
add_cond1,add_cond2 = '',''
|
||||
if based_on == 'Itemwise Discount':
|
||||
add_cond1 += " and master_name = '"+cstr(item)+"'"
|
||||
itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond1))
|
||||
if not itemwise_exists:
|
||||
itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond1))
|
||||
if itemwise_exists:
|
||||
self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company)
|
||||
chk = 0
|
||||
if chk == 1:
|
||||
if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''"
|
||||
appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond2))
|
||||
if not appr:
|
||||
appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond2))
|
||||
self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company)
|
||||
|
||||
|
||||
# Bifurcate Authorization based on type
|
||||
# --------------------------------------
|
||||
def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company):
|
||||
add_cond = ''
|
||||
auth_value = av_dis
|
||||
if val == 1: add_cond += " and system_user = '"+session['user']+"'"
|
||||
elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')")
|
||||
else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''"
|
||||
if based_on == 'Grand Total': auth_value = total
|
||||
elif based_on == 'Customerwise Discount':
|
||||
if doc_obj:
|
||||
if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer
|
||||
else: customer = doc_obj.doc.customer_name
|
||||
add_cond = " and master_name = '"+cstr(customer)+"'"
|
||||
if based_on == 'Itemwise Discount':
|
||||
if doc_obj:
|
||||
for t in getlist(doc_obj.doclist, doc_obj.fname):
|
||||
self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code )
|
||||
else:
|
||||
self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company)
|
||||
# Check if authorization rule is set specific to user
|
||||
# ----------------------------------------------------
|
||||
def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''):
|
||||
chk = 1
|
||||
add_cond1,add_cond2 = '',''
|
||||
if based_on == 'Itemwise Discount':
|
||||
add_cond1 += " and master_name = '"+cstr(item)+"'"
|
||||
itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company))
|
||||
if not itemwise_exists:
|
||||
itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on))
|
||||
if itemwise_exists:
|
||||
self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company)
|
||||
chk = 0
|
||||
if chk == 1:
|
||||
if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''"
|
||||
appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company))
|
||||
if not appr:
|
||||
appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on))
|
||||
self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company)
|
||||
|
||||
|
||||
# Bifurcate Authorization based on type
|
||||
# --------------------------------------
|
||||
def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company):
|
||||
add_cond = ''
|
||||
auth_value = av_dis
|
||||
if val == 1: add_cond += " and system_user = '"+session['user']+"'"
|
||||
elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')")
|
||||
else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''"
|
||||
if based_on == 'Grand Total': auth_value = total
|
||||
elif based_on == 'Customerwise Discount':
|
||||
if doc_obj:
|
||||
if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer
|
||||
else: customer = doc_obj.doc.customer_name
|
||||
add_cond = " and master_name = '"+cstr(customer)+"'"
|
||||
if based_on == 'Itemwise Discount':
|
||||
if doc_obj:
|
||||
for t in getlist(doc_obj.doclist, doc_obj.fname):
|
||||
self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code )
|
||||
else:
|
||||
self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company)
|
||||
|
||||
|
||||
# Check Approving Authority for transactions other than expense voucher and Appraisal
|
||||
# -------------------------
|
||||
def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''):
|
||||
if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice'
|
||||
elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice'
|
||||
av_dis = 0
|
||||
if doc_obj:
|
||||
ref_rate, basic_rate = 0, 0
|
||||
for d in getlist(doc_obj.doclist, doc_obj.fname):
|
||||
if d.base_ref_rate and d.basic_rate:
|
||||
ref_rate += flt(d.base_ref_rate)
|
||||
basic_rate += flt(d.basic_rate)
|
||||
if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate)
|
||||
# Check Approving Authority for transactions other than expense voucher and Appraisal
|
||||
# -------------------------
|
||||
def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''):
|
||||
if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice'
|
||||
elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice'
|
||||
av_dis = 0
|
||||
if doc_obj:
|
||||
ref_rate, basic_rate = 0, 0
|
||||
for d in getlist(doc_obj.doclist, doc_obj.fname):
|
||||
if d.base_ref_rate and d.basic_rate:
|
||||
ref_rate += flt(d.base_ref_rate)
|
||||
basic_rate += flt(d.basic_rate)
|
||||
if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate)
|
||||
|
||||
final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount']
|
||||
# Individual User
|
||||
# ================
|
||||
# Check for authorization set for individual user
|
||||
|
||||
based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = '%s' and system_user = '%s' and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, session['user'], company))]
|
||||
|
||||
for d in based_on:
|
||||
self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company)
|
||||
|
||||
# Remove user specific rules from global authorization rules
|
||||
for r in based_on:
|
||||
if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
|
||||
|
||||
# Specific Role
|
||||
# ===============
|
||||
# Check for authorization set on particular roles
|
||||
#based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and docstatus != 2" %(doctype_name, "('"+"','".join(session['data']['profile']['roles'])+"')", "('"+"','".join(final_based_on)+"')"))]
|
||||
based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, "('"+"','".join(webnotes.user.get_roles())+"')", "('"+"','".join(final_based_on)+"')",company))]
|
||||
for d in based_on:
|
||||
self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company)
|
||||
|
||||
# Remove role specific rules from global authorization rules
|
||||
for r in based_on:
|
||||
if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
|
||||
|
||||
# Global Rule
|
||||
# =============
|
||||
# Check for global authorization
|
||||
for g in final_based_on:
|
||||
self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company)
|
||||
|
||||
#========================================================================================================================
|
||||
# payroll related check
|
||||
def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company):
|
||||
val_lst =[]
|
||||
val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company))
|
||||
if not val:
|
||||
val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount))
|
||||
final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount']
|
||||
# Individual User
|
||||
# ================
|
||||
# Check for authorization set for individual user
|
||||
|
||||
based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = %s and system_user = %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, session['user'], company))]
|
||||
|
||||
for d in based_on:
|
||||
self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company)
|
||||
|
||||
# Remove user specific rules from global authorization rules
|
||||
for r in based_on:
|
||||
if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
|
||||
|
||||
# Specific Role
|
||||
# ===============
|
||||
# Check for authorization set on particular roles
|
||||
based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = %s and system_role IN (%s) and based_on IN (%s) and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'",company))]
|
||||
for d in based_on:
|
||||
self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company)
|
||||
|
||||
# Remove role specific rules from global authorization rules
|
||||
for r in based_on:
|
||||
if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
|
||||
|
||||
# Global Rule
|
||||
# =============
|
||||
# Check for global authorization
|
||||
for g in final_based_on:
|
||||
self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company)
|
||||
|
||||
#========================================================================================================================
|
||||
# payroll related check
|
||||
def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company):
|
||||
val_lst =[]
|
||||
val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company))
|
||||
if not val:
|
||||
val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount))
|
||||
|
||||
|
||||
if val:
|
||||
val_lst = [y[0] for y in val]
|
||||
else:
|
||||
val_lst.append(0)
|
||||
|
||||
max_val = max(val_lst)
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1)
|
||||
if not rule:
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1)
|
||||
if val:
|
||||
val_lst = [y[0] for y in val]
|
||||
else:
|
||||
val_lst.append(0)
|
||||
|
||||
max_val = max(val_lst)
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1)
|
||||
if not rule:
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1)
|
||||
|
||||
return rule
|
||||
|
||||
#---------------------------------------------------------------------------------------------------------------------
|
||||
# related to payroll module only
|
||||
def get_approver_name(self, doctype_name, total, doc_obj=''):
|
||||
app_user=[]
|
||||
app_specific_user =[]
|
||||
rule ={}
|
||||
|
||||
if doc_obj:
|
||||
if doctype_name == 'Expense Voucher':
|
||||
rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company)
|
||||
elif doctype_name == 'Appraisal':
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1)
|
||||
if not rule:
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1)
|
||||
|
||||
if rule:
|
||||
for m in rule:
|
||||
if m['to_emp'] or m['to_designation']:
|
||||
if m['approving_user']:
|
||||
app_specific_user.append(m['approving_user'])
|
||||
elif m['approving_role']:
|
||||
user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])]
|
||||
for x in user_lst:
|
||||
if not x in app_user:
|
||||
app_user.append(x)
|
||||
|
||||
if len(app_specific_user) >0:
|
||||
return app_specific_user
|
||||
else:
|
||||
return app_user
|
||||
return rule
|
||||
|
||||
#---------------------------------------------------------------------------------------------------------------------
|
||||
# related to payroll module only
|
||||
def get_approver_name(self, doctype_name, total, doc_obj=''):
|
||||
app_user=[]
|
||||
app_specific_user =[]
|
||||
rule ={}
|
||||
|
||||
if doc_obj:
|
||||
if doctype_name == 'Expense Voucher':
|
||||
rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company)
|
||||
elif doctype_name == 'Appraisal':
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1)
|
||||
if not rule:
|
||||
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1)
|
||||
|
||||
if rule:
|
||||
for m in rule:
|
||||
if m['to_emp'] or m['to_designation']:
|
||||
if m['approving_user']:
|
||||
app_specific_user.append(m['approving_user'])
|
||||
elif m['approving_role']:
|
||||
user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])]
|
||||
for x in user_lst:
|
||||
if not x in app_user:
|
||||
app_user.append(x)
|
||||
|
||||
if len(app_specific_user) >0:
|
||||
return app_specific_user
|
||||
else:
|
||||
return app_user
|
||||
|
@ -248,4 +248,7 @@ class DocType:
|
||||
# on rename
|
||||
# ---------
|
||||
def on_rename(self,newdn,olddn):
|
||||
sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))
|
||||
sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))
|
||||
sql("update `tabSingles` set value = %s where doctype='Manage Account' and field = 'default_company' and value = %s", (newdn, olddn))
|
||||
if get_defaults('company') == olddn:
|
||||
set_default('company', newdn)
|
||||
|
@ -172,7 +172,8 @@ SetupData = function(cnty){
|
||||
['Property Setter',1,'Property Setter','', 'Customize properties of a Form (DocType) or Field'],
|
||||
['Letter Head',1,'Letter Head','','Manage different letter heads for Prints'],
|
||||
['SMS Settings',3,'SMS Settings','','Integrate your personalized SMS gateway which support http web service'],
|
||||
['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners']
|
||||
['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners'],
|
||||
['Features Setup',3,'Features Setup','','Displays fields based on features selected']
|
||||
]};
|
||||
|
||||
|
||||
|
@ -443,8 +443,8 @@ class DocType(TransactionBase):
|
||||
# ==========================================
|
||||
def update_pack_nett_weight(self):
|
||||
for d in getlist(self.doclist, 'delivery_note_details'):
|
||||
if d.item_name:
|
||||
item_wt = sql("select nett_weight from `tabItem` where item_name = '%s'" % (d.item_name))
|
||||
if d.item_code:
|
||||
item_wt = sql("select nett_weight from `tabItem` where name = %s", (d.item_code))
|
||||
d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0
|
||||
|
||||
# ==========================================
|
||||
|
@ -5,7 +5,7 @@
|
||||
{
|
||||
'creation': '2011-04-18 15:58:20',
|
||||
'docstatus': 0,
|
||||
'modified': '2011-08-23 15:26:57',
|
||||
'modified': '2011-09-07 17:36:34',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
},
|
||||
@ -21,8 +21,9 @@
|
||||
|
||||
# These values are common for all DocType
|
||||
{
|
||||
'_last_update': '1313665263',
|
||||
'_last_update': '1314093417',
|
||||
'colour': 'White:FFF',
|
||||
'default_print_format': 'Standard',
|
||||
'doctype': 'DocType',
|
||||
'document_type': 'Transaction',
|
||||
'in_create': 0,
|
||||
@ -36,7 +37,7 @@
|
||||
'show_in_menu': 0,
|
||||
'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed',
|
||||
'tag_fields': 'billing_status',
|
||||
'version': 449
|
||||
'version': 450
|
||||
},
|
||||
|
||||
# These values are common for all DocFormat
|
||||
@ -71,7 +72,6 @@
|
||||
'cancel': 1,
|
||||
'create': 1,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 1,
|
||||
'permlevel': 0,
|
||||
'role': 'Material User',
|
||||
'submit': 1,
|
||||
@ -84,7 +84,6 @@
|
||||
'cancel': 1,
|
||||
'create': 1,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 2,
|
||||
'permlevel': 0,
|
||||
'role': 'Sales User',
|
||||
'submit': 1,
|
||||
@ -97,7 +96,6 @@
|
||||
'cancel': 1,
|
||||
'create': 1,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 3,
|
||||
'permlevel': 0,
|
||||
'role': 'Material Master Manager',
|
||||
'submit': 1,
|
||||
@ -110,7 +108,6 @@
|
||||
'cancel': 1,
|
||||
'create': 1,
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 4,
|
||||
'permlevel': 0,
|
||||
'role': 'Material Manager',
|
||||
'submit': 1,
|
||||
@ -120,7 +117,6 @@
|
||||
# DocPerm
|
||||
{
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 5,
|
||||
'permlevel': 1,
|
||||
'role': 'All'
|
||||
},
|
||||
@ -128,21 +124,18 @@
|
||||
# DocPerm
|
||||
{
|
||||
'doctype': 'DocPerm',
|
||||
'idx': 6,
|
||||
'permlevel': 2,
|
||||
'role': 'All'
|
||||
},
|
||||
|
||||
# DocFormat
|
||||
{
|
||||
'doctype': 'DocFormat',
|
||||
'idx': 1
|
||||
'doctype': 'DocFormat'
|
||||
},
|
||||
|
||||
# DocFormat
|
||||
{
|
||||
'doctype': 'DocFormat',
|
||||
'idx': 2
|
||||
'doctype': 'DocFormat'
|
||||
},
|
||||
|
||||
# DocField
|
||||
@ -150,7 +143,6 @@
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 1,
|
||||
'label': 'Basic Info',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0
|
||||
@ -160,7 +152,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 2,
|
||||
'oldfieldtype': 'Column Break',
|
||||
'permlevel': 0,
|
||||
'trigger': 'Client',
|
||||
@ -174,7 +165,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'naming_series',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 3,
|
||||
'label': 'Series',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'naming_series',
|
||||
@ -190,7 +180,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'customer',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 4,
|
||||
'in_filter': 1,
|
||||
'label': 'Customer',
|
||||
'oldfieldname': 'customer',
|
||||
@ -208,7 +197,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'customer_address',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 5,
|
||||
'in_filter': 1,
|
||||
'label': 'Shipping Address',
|
||||
'options': 'Address',
|
||||
@ -221,7 +209,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'contact_person',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 6,
|
||||
'in_filter': 1,
|
||||
'label': 'Contact Person',
|
||||
'options': 'Contact',
|
||||
@ -234,7 +221,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'customer_name',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 7,
|
||||
'label': 'Customer Name',
|
||||
'permlevel': 1
|
||||
},
|
||||
@ -244,7 +230,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'address_display',
|
||||
'fieldtype': 'Small Text',
|
||||
'idx': 8,
|
||||
'label': 'Shipping Address',
|
||||
'permlevel': 1
|
||||
},
|
||||
@ -254,7 +239,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'contact_display',
|
||||
'fieldtype': 'Small Text',
|
||||
'idx': 9,
|
||||
'label': 'Contact',
|
||||
'permlevel': 1
|
||||
},
|
||||
@ -264,7 +248,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'contact_mobile',
|
||||
'fieldtype': 'Text',
|
||||
'idx': 10,
|
||||
'label': 'Mobile No',
|
||||
'permlevel': 1
|
||||
},
|
||||
@ -274,7 +257,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'contact_email',
|
||||
'fieldtype': 'Text',
|
||||
'idx': 11,
|
||||
'label': 'Contact Email',
|
||||
'permlevel': 1,
|
||||
'print_hide': 1
|
||||
@ -284,7 +266,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 12,
|
||||
'oldfieldtype': 'Column Break',
|
||||
'permlevel': 0
|
||||
},
|
||||
@ -297,7 +278,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'transaction_date',
|
||||
'fieldtype': 'Date',
|
||||
'idx': 13,
|
||||
'in_filter': 1,
|
||||
'label': 'Voucher Date',
|
||||
'no_copy': 1,
|
||||
@ -316,7 +296,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'status',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 14,
|
||||
'in_filter': 1,
|
||||
'label': 'Status',
|
||||
'no_copy': 1,
|
||||
@ -338,7 +317,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'per_billed',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 15,
|
||||
'in_filter': 1,
|
||||
'label': '% Amount Billed',
|
||||
'no_copy': 1,
|
||||
@ -357,7 +335,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'per_installed',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 16,
|
||||
'in_filter': 1,
|
||||
'label': '% Installed',
|
||||
'no_copy': 1,
|
||||
@ -368,13 +345,42 @@
|
||||
'search_index': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'po_no',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'label': 'P.O. No',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'po_no',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 1,
|
||||
'print_hide': 1,
|
||||
'width': '100px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'po_date',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'label': 'P.O. Date',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'po_date',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 1,
|
||||
'print_hide': 1,
|
||||
'width': '100px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'allow_on_submit': 0,
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'amended_from',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 17,
|
||||
'label': 'Amended From',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'amended_from',
|
||||
@ -390,7 +396,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'amendment_date',
|
||||
'fieldtype': 'Date',
|
||||
'idx': 18,
|
||||
'label': 'Amendment Date',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'amendment_date',
|
||||
@ -406,7 +411,6 @@
|
||||
'fieldname': 'territory',
|
||||
'fieldtype': 'Link',
|
||||
'hidden': 0,
|
||||
'idx': 19,
|
||||
'in_filter': 1,
|
||||
'label': 'Territory',
|
||||
'options': 'Territory',
|
||||
@ -421,7 +425,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'customer_group',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 20,
|
||||
'in_filter': 1,
|
||||
'label': 'Customer Group',
|
||||
'options': 'Customer Group',
|
||||
@ -434,7 +437,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 21,
|
||||
'label': 'Transporter Info',
|
||||
'permlevel': 0
|
||||
},
|
||||
@ -445,7 +447,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'transporter_name',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 22,
|
||||
'label': 'Transporter Name',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'transporter_name',
|
||||
@ -464,7 +465,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'lr_no',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 23,
|
||||
'label': 'LR No',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'lr_no',
|
||||
@ -483,7 +483,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'lr_date',
|
||||
'fieldtype': 'Date',
|
||||
'idx': 24,
|
||||
'label': 'LR Date',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'lr_date',
|
||||
@ -497,7 +496,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 25,
|
||||
'permlevel': 0,
|
||||
'width': '50%'
|
||||
},
|
||||
@ -507,7 +505,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'challan_no',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 26,
|
||||
'label': 'Challan No',
|
||||
'oldfieldname': 'challan_no',
|
||||
'oldfieldtype': 'Data',
|
||||
@ -519,7 +516,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'challan_date',
|
||||
'fieldtype': 'Date',
|
||||
'idx': 27,
|
||||
'label': 'Challan Date',
|
||||
'oldfieldname': 'challan_date',
|
||||
'oldfieldtype': 'Date',
|
||||
@ -531,7 +527,6 @@
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 28,
|
||||
'label': 'Items',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0
|
||||
@ -544,7 +539,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'sales_order_no',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 29,
|
||||
'label': 'Sales Order No',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'sales_order_no',
|
||||
@ -559,7 +553,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Button',
|
||||
'hidden': 0,
|
||||
'idx': 30,
|
||||
'label': 'Get Items',
|
||||
'oldfieldtype': 'Button',
|
||||
'options': 'pull_sales_order_details',
|
||||
@ -574,7 +567,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'price_list_name',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 31,
|
||||
'label': 'Price List',
|
||||
'oldfieldname': 'price_list_name',
|
||||
'oldfieldtype': 'Select',
|
||||
@ -589,7 +581,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 32,
|
||||
'permlevel': 0,
|
||||
'width': '50%'
|
||||
},
|
||||
@ -601,7 +592,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'currency',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 33,
|
||||
'label': 'Currency',
|
||||
'oldfieldname': 'currency',
|
||||
'oldfieldtype': 'Select',
|
||||
@ -619,7 +609,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'conversion_rate',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 34,
|
||||
'label': 'Conversion Rate',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'conversion_rate',
|
||||
@ -633,7 +622,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 35,
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
@ -642,7 +630,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'delivery_note_details',
|
||||
'fieldtype': 'Table',
|
||||
'idx': 36,
|
||||
'label': 'Delivery Note Details',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'delivery_note_details',
|
||||
@ -657,7 +644,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'net_total',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 37,
|
||||
'label': 'Net Total*',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'net_total',
|
||||
@ -672,7 +658,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Button',
|
||||
'idx': 38,
|
||||
'label': 'Re-Calculate Values',
|
||||
'oldfieldtype': 'Button',
|
||||
'permlevel': 0,
|
||||
@ -683,7 +668,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'HTML',
|
||||
'idx': 39,
|
||||
'label': 'Note',
|
||||
'oldfieldtype': 'HTML',
|
||||
'options': '<b>NOTE :</b>* In Base Currency',
|
||||
@ -696,7 +680,6 @@
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 40,
|
||||
'label': 'Taxes',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0
|
||||
@ -709,7 +692,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'charge',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 41,
|
||||
'label': 'Charge',
|
||||
'oldfieldname': 'charge',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -722,7 +704,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Button',
|
||||
'idx': 42,
|
||||
'label': 'Get Charges',
|
||||
'oldfieldtype': 'Button',
|
||||
'permlevel': 0,
|
||||
@ -735,7 +716,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'other_charges',
|
||||
'fieldtype': 'Table',
|
||||
'idx': 43,
|
||||
'label': 'Other Charges',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'other_charges',
|
||||
@ -749,7 +729,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'other_charges_total',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 44,
|
||||
'label': 'Charges Total',
|
||||
'oldfieldname': 'other_charges_total',
|
||||
'oldfieldtype': 'Currency',
|
||||
@ -762,7 +741,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Button',
|
||||
'idx': 45,
|
||||
'label': 'Calculate Charges',
|
||||
'oldfieldtype': 'Button',
|
||||
'permlevel': 0,
|
||||
@ -774,7 +752,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'HTML',
|
||||
'idx': 46,
|
||||
'label': 'Other Charges Calculation',
|
||||
'oldfieldtype': 'HTML',
|
||||
'permlevel': 0
|
||||
@ -785,7 +762,6 @@
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 47,
|
||||
'label': 'Totals',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0,
|
||||
@ -797,7 +773,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'grand_total',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 48,
|
||||
'label': 'Grand Total',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'grand_total',
|
||||
@ -813,7 +788,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'rounded_total',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 49,
|
||||
'label': 'Rounded Total',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'rounded_total',
|
||||
@ -830,7 +804,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'in_words',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 50,
|
||||
'label': 'In Words',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'in_words',
|
||||
@ -844,7 +817,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 51,
|
||||
'oldfieldtype': 'Column Break',
|
||||
'permlevel': 0
|
||||
},
|
||||
@ -854,7 +826,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'grand_total_export',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 52,
|
||||
'label': 'Grand Total (Export)',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'grand_total_export',
|
||||
@ -870,7 +841,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'rounded_total_export',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 53,
|
||||
'label': 'Rounded Total (Export)',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'rounded_total_export',
|
||||
@ -887,7 +857,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'in_words_export',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 54,
|
||||
'label': 'In Words (Export)',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'in_words_export',
|
||||
@ -901,7 +870,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 55,
|
||||
'label': 'Terms',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0
|
||||
@ -912,7 +880,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'tc_name',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 56,
|
||||
'label': 'Select Terms',
|
||||
'oldfieldname': 'tc_name',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -926,7 +893,6 @@
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Button',
|
||||
'idx': 57,
|
||||
'label': 'Get Terms',
|
||||
'oldfieldtype': 'Button',
|
||||
'options': 'get_tc_details',
|
||||
@ -939,7 +905,6 @@
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'HTML',
|
||||
'idx': 58,
|
||||
'label': 'Terms HTML',
|
||||
'oldfieldtype': 'HTML',
|
||||
'options': 'You can add Terms and Notes that will be printed in the Transaction',
|
||||
@ -953,7 +918,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'terms',
|
||||
'fieldtype': 'Text Editor',
|
||||
'idx': 59,
|
||||
'label': 'Term Details',
|
||||
'oldfieldname': 'terms',
|
||||
'oldfieldtype': 'Text Editor',
|
||||
@ -966,7 +930,6 @@
|
||||
'description': 'Filling in Additional Information about the Delivery Note will help you analyze your data better.',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 60,
|
||||
'label': 'More Info',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0
|
||||
@ -979,7 +942,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'company',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 61,
|
||||
'in_filter': 1,
|
||||
'label': 'Company',
|
||||
'oldfieldname': 'company',
|
||||
@ -997,7 +959,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'fiscal_year',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 62,
|
||||
'in_filter': 1,
|
||||
'label': 'Fiscal Year',
|
||||
'oldfieldname': 'fiscal_year',
|
||||
@ -1018,7 +979,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'posting_date',
|
||||
'fieldtype': 'Date',
|
||||
'idx': 63,
|
||||
'in_filter': 1,
|
||||
'label': 'Posting Date',
|
||||
'no_copy': 1,
|
||||
@ -1038,7 +998,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'posting_time',
|
||||
'fieldtype': 'Time',
|
||||
'idx': 64,
|
||||
'in_filter': 0,
|
||||
'label': 'Posting Time',
|
||||
'oldfieldname': 'posting_time',
|
||||
@ -1057,7 +1016,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'project_name',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 65,
|
||||
'in_filter': 1,
|
||||
'label': 'Project Name',
|
||||
'oldfieldname': 'project_name',
|
||||
@ -1076,7 +1034,6 @@
|
||||
'fieldname': 'to_warehouse',
|
||||
'fieldtype': 'Link',
|
||||
'hidden': 0,
|
||||
'idx': 66,
|
||||
'label': 'To Warehouse',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'to_warehouse',
|
||||
@ -1090,7 +1047,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 67,
|
||||
'oldfieldtype': 'Column Break',
|
||||
'permlevel': 0,
|
||||
'width': '50%'
|
||||
@ -1102,7 +1058,6 @@
|
||||
'fieldname': 'billing_status',
|
||||
'fieldtype': 'Select',
|
||||
'hidden': 1,
|
||||
'idx': 68,
|
||||
'label': 'Billing Status',
|
||||
'no_copy': 1,
|
||||
'options': '\nNot Billed\nPartly Billed\nFully Billed',
|
||||
@ -1116,51 +1071,17 @@
|
||||
'fieldname': 'installation_status',
|
||||
'fieldtype': 'Select',
|
||||
'hidden': 1,
|
||||
'idx': 69,
|
||||
'label': 'Installation Status',
|
||||
'permlevel': 0,
|
||||
'print_hide': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'po_no',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'idx': 70,
|
||||
'label': 'P.O. No',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'po_no',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 1,
|
||||
'print_hide': 1,
|
||||
'width': '100px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'po_date',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'idx': 71,
|
||||
'label': 'P.O. Date',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'po_date',
|
||||
'oldfieldtype': 'Data',
|
||||
'permlevel': 1,
|
||||
'print_hide': 1,
|
||||
'width': '100px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'allow_on_submit': 1,
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'letter_head',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 72,
|
||||
'label': 'Letter Head',
|
||||
'oldfieldname': 'letter_head',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -1174,7 +1095,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'source',
|
||||
'fieldtype': 'Select',
|
||||
'idx': 73,
|
||||
'label': 'Source',
|
||||
'oldfieldname': 'source',
|
||||
'oldfieldtype': 'Select',
|
||||
@ -1190,7 +1110,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'campaign',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 74,
|
||||
'label': 'Campaign',
|
||||
'oldfieldname': 'campaign',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -1206,7 +1125,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'select_print_heading',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 75,
|
||||
'label': 'Select Print Heading',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'select_print_heading',
|
||||
@ -1224,7 +1142,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'print_without_amount',
|
||||
'fieldtype': 'Check',
|
||||
'idx': 76,
|
||||
'label': 'Print Without Amount',
|
||||
'oldfieldname': 'print_without_amount',
|
||||
'oldfieldtype': 'Check',
|
||||
@ -1238,7 +1155,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'instructions',
|
||||
'fieldtype': 'Text',
|
||||
'idx': 77,
|
||||
'label': 'Instructions',
|
||||
'oldfieldname': 'instructions',
|
||||
'oldfieldtype': 'Text',
|
||||
@ -1253,7 +1169,6 @@
|
||||
'fieldname': 'cancel_reason',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 0,
|
||||
'idx': 78,
|
||||
'label': 'Cancel Reason',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'cancel_reason',
|
||||
@ -1269,7 +1184,6 @@
|
||||
'fieldname': 'excise_page',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'idx': 79,
|
||||
'label': 'Excise Page Number',
|
||||
'oldfieldname': 'excise_page',
|
||||
'oldfieldtype': 'Data',
|
||||
@ -1282,7 +1196,6 @@
|
||||
'colour': 'White:FFF',
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 80,
|
||||
'label': 'Sales Team',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0,
|
||||
@ -1293,7 +1206,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 81,
|
||||
'permlevel': 0,
|
||||
'width': '50%'
|
||||
},
|
||||
@ -1303,7 +1215,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'sales_partner',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 82,
|
||||
'label': 'Sales Partner',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'sales_partner',
|
||||
@ -1320,7 +1231,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'commission_rate',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 83,
|
||||
'label': 'Commission Rate (%)',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'commission_rate',
|
||||
@ -1337,7 +1247,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'total_commission',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 84,
|
||||
'label': 'Total Commission',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'total_commission',
|
||||
@ -1351,7 +1260,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Column Break',
|
||||
'idx': 85,
|
||||
'permlevel': 0,
|
||||
'width': '50%'
|
||||
},
|
||||
@ -1361,7 +1269,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'sales_team',
|
||||
'fieldtype': 'Table',
|
||||
'idx': 86,
|
||||
'label': 'Sales Team1',
|
||||
'oldfieldname': 'sales_team',
|
||||
'oldfieldtype': 'Table',
|
||||
@ -1375,7 +1282,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'hidden': 1,
|
||||
'idx': 87,
|
||||
'label': 'Supplier Details',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'options': 'Simple',
|
||||
@ -1388,7 +1294,6 @@
|
||||
'fieldname': 'supplier',
|
||||
'fieldtype': 'Link',
|
||||
'hidden': 1,
|
||||
'idx': 88,
|
||||
'label': 'Supplier',
|
||||
'oldfieldname': 'supplier',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -1403,7 +1308,6 @@
|
||||
'fieldname': 'supplier_address',
|
||||
'fieldtype': 'Text',
|
||||
'hidden': 1,
|
||||
'idx': 89,
|
||||
'label': 'Supplier Address',
|
||||
'oldfieldname': 'supplier_address',
|
||||
'oldfieldtype': 'Text',
|
||||
@ -1418,7 +1322,6 @@
|
||||
'fieldname': 'purchase_receipt_no',
|
||||
'fieldtype': 'Link',
|
||||
'hidden': 1,
|
||||
'idx': 90,
|
||||
'label': 'Purchase Receipt No',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'purchase_receipt_no',
|
||||
@ -1435,7 +1338,6 @@
|
||||
'fieldname': 'purchase_order_no',
|
||||
'fieldtype': 'Link',
|
||||
'hidden': 1,
|
||||
'idx': 91,
|
||||
'label': 'Purchase Order',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'purchase_order_no',
|
||||
@ -1449,7 +1351,6 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Section Break',
|
||||
'idx': 92,
|
||||
'label': 'Packing List',
|
||||
'oldfieldtype': 'Section Break',
|
||||
'permlevel': 0
|
||||
@ -1460,7 +1361,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'packing_details',
|
||||
'fieldtype': 'Table',
|
||||
'idx': 93,
|
||||
'label': 'Packing Details',
|
||||
'oldfieldname': 'packing_details',
|
||||
'oldfieldtype': 'Table',
|
||||
@ -1474,7 +1374,6 @@
|
||||
'allow_on_submit': 1,
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Button',
|
||||
'idx': 94,
|
||||
'label': 'Repair Delivery Note',
|
||||
'oldfieldtype': 'Button',
|
||||
'options': 'repair_delivery_note',
|
||||
@ -1488,7 +1387,6 @@
|
||||
'fieldname': 'print_packing_slip',
|
||||
'fieldtype': 'Text',
|
||||
'hidden': 1,
|
||||
'idx': 95,
|
||||
'in_filter': 0,
|
||||
'label': 'Print Packing Slip',
|
||||
'permlevel': 0,
|
||||
|
@ -5,7 +5,7 @@
|
||||
{
|
||||
'creation': '2010-08-08 17:08:58',
|
||||
'docstatus': 0,
|
||||
'modified': '2011-08-22 12:11:51',
|
||||
'modified': '2011-09-07 17:34:13',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
},
|
||||
@ -21,7 +21,7 @@
|
||||
'section_style': 'Tray',
|
||||
'server_code_error': ' ',
|
||||
'show_in_menu': 0,
|
||||
'version': 38
|
||||
'version': 40
|
||||
},
|
||||
|
||||
# These values are common for all DocField
|
||||
@ -44,7 +44,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'item_code',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 1,
|
||||
'in_filter': 1,
|
||||
'label': 'Item Code',
|
||||
'oldfieldname': 'item_code',
|
||||
@ -63,7 +62,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'item_name',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 2,
|
||||
'label': 'Item Name',
|
||||
'oldfieldname': 'item_name',
|
||||
'oldfieldtype': 'Data',
|
||||
@ -78,7 +76,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'description',
|
||||
'fieldtype': 'Small Text',
|
||||
'idx': 3,
|
||||
'label': 'Description',
|
||||
'oldfieldname': 'description',
|
||||
'oldfieldtype': 'Small Text',
|
||||
@ -87,12 +84,26 @@
|
||||
'width': '300px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'default': '0.00',
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'qty',
|
||||
'fieldtype': 'Currency',
|
||||
'label': 'Quantity',
|
||||
'oldfieldname': 'qty',
|
||||
'oldfieldtype': 'Currency',
|
||||
'permlevel': 0,
|
||||
'reqd': 1,
|
||||
'trigger': 'Client',
|
||||
'width': '100px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'stock_uom',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 4,
|
||||
'label': 'UOM',
|
||||
'oldfieldname': 'stock_uom',
|
||||
'oldfieldtype': 'Data',
|
||||
@ -102,29 +113,12 @@
|
||||
'width': '50px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'default': '0.00',
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'qty',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 5,
|
||||
'label': 'Quantity',
|
||||
'oldfieldname': 'qty',
|
||||
'oldfieldtype': 'Currency',
|
||||
'permlevel': 0,
|
||||
'reqd': 1,
|
||||
'trigger': 'Client',
|
||||
'width': '100px'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'default': '0.00',
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'ref_rate',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 6,
|
||||
'label': 'Ref Rate',
|
||||
'no_copy': 0,
|
||||
'oldfieldname': 'ref_rate',
|
||||
@ -142,7 +136,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'adj_rate',
|
||||
'fieldtype': 'Float',
|
||||
'idx': 7,
|
||||
'label': 'Discount (%)',
|
||||
'oldfieldname': 'adj_rate',
|
||||
'oldfieldtype': 'Float',
|
||||
@ -157,7 +150,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'export_rate',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 8,
|
||||
'label': 'Rate',
|
||||
'oldfieldname': 'export_rate',
|
||||
'oldfieldtype': 'Currency',
|
||||
@ -173,7 +165,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'export_amount',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 9,
|
||||
'label': 'Amount',
|
||||
'oldfieldname': 'export_amount',
|
||||
'oldfieldtype': 'Currency',
|
||||
@ -188,7 +179,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'base_ref_rate',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 10,
|
||||
'label': 'Ref Rate*',
|
||||
'oldfieldname': 'base_ref_rate',
|
||||
'oldfieldtype': 'Currency',
|
||||
@ -203,7 +193,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'basic_rate',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 11,
|
||||
'label': 'Rate*',
|
||||
'oldfieldname': 'basic_rate',
|
||||
'oldfieldtype': 'Currency',
|
||||
@ -219,7 +208,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'amount',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 12,
|
||||
'label': 'Amount*',
|
||||
'oldfieldname': 'amount',
|
||||
'oldfieldtype': 'Currency',
|
||||
@ -234,7 +222,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'warehouse',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 13,
|
||||
'label': 'Warehouse',
|
||||
'oldfieldname': 'warehouse',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -250,7 +237,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'serial_no',
|
||||
'fieldtype': 'Text',
|
||||
'idx': 14,
|
||||
'in_filter': 1,
|
||||
'label': 'Serial No',
|
||||
'no_copy': 1,
|
||||
@ -266,7 +252,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'batch_no',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 15,
|
||||
'label': 'Batch No',
|
||||
'oldfieldname': 'batch_no',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -280,7 +265,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'item_group',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 16,
|
||||
'label': 'Item Group',
|
||||
'oldfieldname': 'item_group',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -294,7 +278,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'brand',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 17,
|
||||
'label': 'Brand Name',
|
||||
'oldfieldname': 'brand',
|
||||
'oldfieldtype': 'Link',
|
||||
@ -309,9 +292,9 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'pack_no',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 18,
|
||||
'label': 'Pack No',
|
||||
'permlevel': 0
|
||||
'permlevel': 0,
|
||||
'print_hide': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
@ -319,9 +302,9 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'pack_gross_wt',
|
||||
'fieldtype': 'Float',
|
||||
'idx': 19,
|
||||
'label': 'Pack Gross Wt',
|
||||
'permlevel': 0
|
||||
'permlevel': 0,
|
||||
'print_hide': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
@ -329,10 +312,10 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'weight_uom',
|
||||
'fieldtype': 'Link',
|
||||
'idx': 20,
|
||||
'label': 'Weight UOM',
|
||||
'options': 'UOM',
|
||||
'permlevel': 0
|
||||
'permlevel': 0,
|
||||
'print_hide': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
@ -340,9 +323,9 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'pack_nett_wt',
|
||||
'fieldtype': 'Float',
|
||||
'idx': 21,
|
||||
'label': 'Pack Nett Wt',
|
||||
'permlevel': 0
|
||||
'permlevel': 0,
|
||||
'print_hide': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
@ -350,7 +333,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'no_of_packs',
|
||||
'fieldtype': 'Int',
|
||||
'idx': 22,
|
||||
'label': 'No of Packs',
|
||||
'oldfieldname': 'no_of_packs',
|
||||
'oldfieldtype': 'Int',
|
||||
@ -364,7 +346,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'pack_unit',
|
||||
'fieldtype': 'Data',
|
||||
'idx': 23,
|
||||
'label': 'Pack Unit',
|
||||
'oldfieldname': 'pack_unit',
|
||||
'oldfieldtype': 'Data',
|
||||
@ -378,7 +359,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'installed_qty',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 24,
|
||||
'label': 'Installed Qty',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'installed_qty',
|
||||
@ -393,7 +373,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'actual_qty',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 25,
|
||||
'label': 'Available Qty at Warehouse',
|
||||
'no_copy': 1,
|
||||
'oldfieldname': 'actual_qty',
|
||||
@ -408,7 +387,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'billed_amt',
|
||||
'fieldtype': 'Currency',
|
||||
'idx': 26,
|
||||
'label': 'Billed Amt',
|
||||
'no_copy': 1,
|
||||
'permlevel': 1,
|
||||
@ -423,7 +401,6 @@
|
||||
'fieldname': 'prevdoc_docname',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 0,
|
||||
'idx': 27,
|
||||
'in_filter': 1,
|
||||
'label': 'Against Document No',
|
||||
'no_copy': 1,
|
||||
@ -441,7 +418,6 @@
|
||||
'fieldname': 'prevdoc_doctype',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'idx': 28,
|
||||
'in_filter': 1,
|
||||
'label': 'Document Type',
|
||||
'oldfieldname': 'prevdoc_doctype',
|
||||
@ -458,7 +434,6 @@
|
||||
'fieldname': 'prevdoc_date',
|
||||
'fieldtype': 'Date',
|
||||
'hidden': 1,
|
||||
'idx': 29,
|
||||
'in_filter': 1,
|
||||
'label': 'Against Document Date',
|
||||
'oldfieldname': 'prevdoc_date',
|
||||
@ -473,7 +448,6 @@
|
||||
'fieldname': 'prevdoc_detail_docname',
|
||||
'fieldtype': 'Data',
|
||||
'hidden': 1,
|
||||
'idx': 30,
|
||||
'in_filter': 1,
|
||||
'label': 'Against Document Detail No',
|
||||
'oldfieldname': 'prevdoc_detail_docname',
|
||||
@ -490,7 +464,6 @@
|
||||
'fieldname': 'item_tax_rate',
|
||||
'fieldtype': 'Small Text',
|
||||
'hidden': 1,
|
||||
'idx': 31,
|
||||
'label': 'Item Tax Rate',
|
||||
'oldfieldname': 'item_tax_rate',
|
||||
'oldfieldtype': 'Small Text',
|
||||
@ -504,7 +477,6 @@
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'page_break',
|
||||
'fieldtype': 'Check',
|
||||
'idx': 32,
|
||||
'label': 'Page Break',
|
||||
'oldfieldname': 'page_break',
|
||||
'oldfieldtype': 'Check',
|
||||
|
Loading…
x
Reference in New Issue
Block a user