diff --git a/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt b/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt index f1f77101b3..78431f574f 100644 --- a/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt +++ b/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt @@ -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 diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.js b/accounts/doctype/receivable_voucher/receivable_voucher.js index a25d311110..e773a95fc8 100644 --- a/accounts/doctype/receivable_voucher/receivable_voucher.js +++ b/accounts/doctype/receivable_voucher/receivable_voucher.js @@ -18,10 +18,10 @@ cur_frm.cscript.onload = function(doc,dt,dn) { if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()}); if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()}); if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()}); - + //for previously created sales invoice, set required field related to pos if(doc.is_pos ==1) cur_frm.cscript.is_pos(doc, dt, dn); - + hide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); } } @@ -37,10 +37,10 @@ cur_frm.cscript.onload_post_render = function(doc, dt, dn) { } ); } - + if(!doc.customer && doc.__islocal) { // new -- load default taxes - cur_frm.cscript.load_taxes(doc, cdt, cdn); + cur_frm.cscript.load_taxes(doc, cdt, cdn); } } @@ -61,19 +61,19 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { // Show / Hide button cur_frm.clear_custom_buttons(); - - if(doc.docstatus==1) { + + if(doc.docstatus==1) { cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']); cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']); unhide_field('Repair Outstanding Amt'); - + if(doc.is_pos==1 && doc.update_stock!=1) cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']); - + if(doc.outstanding_amount!=0) cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']); } - else + else hide_field('Repair Outstanding Amt'); cur_frm.cscript.is_opening(doc, dt, dn); cur_frm.cscript.hide_fields(doc, cdt, cdn); @@ -117,13 +117,13 @@ cur_frm.cscript.customer = function(doc,dt,dn) { var doc = locals[cur_frm.doctype][cur_frm.docname]; get_server_fields('get_debit_to','','',doc, dt, dn, 0); cur_frm.refresh(); - } + } - if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); + if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); } -cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { +cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } @@ -152,15 +152,15 @@ cur_frm.cscript.debit_to = function(doc,dt,dn) { var callback2 = function(r,rt) { var doc = locals[cur_frm.doctype][cur_frm.docname]; cur_frm.refresh(); - } - + } + var callback = function(r,rt) { - var doc = locals[cur_frm.doctype][cur_frm.docname]; + var doc = locals[cur_frm.doctype][cur_frm.docname]; if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2); if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); cur_frm.refresh(); } - + if(doc.debit_to && doc.posting_date){ get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback); } @@ -187,13 +187,13 @@ cur_frm.cscript.project_name = function(doc,cdt,cdn){ //Set debit and credit to zero on adding new row //---------------------------------------------- cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){ - + cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); acc = ''; cc = ''; for(var i = 0; i"""+l_head+""" @@ -99,5 +111,5 @@ myheader = """ """ % {'acc':account, 'fdt':from_date, 'tdt':to_date} - + page_template = myheader+"
%(table)s
" diff --git a/home/doctype/company_control/company_control.py b/home/doctype/company_control/company_control.py index cab8e7c17e..246b07e736 100644 --- a/home/doctype/company_control/company_control.py +++ b/home/doctype/company_control/company_control.py @@ -53,6 +53,15 @@ class DocType: pr.role = r pr.parentfield = 'userroles' pr.save(1) + + # Update Membership Type at Gateway + if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')): + if 'System Manager' in role_list : membership_type = 'Administrator' + else : membership_type = 'Member' + + import server_tools.gateway_utils + server_tools.gateway_utils.update_membership_type(cstr(arg['usr']), membership_type) + sql("delete from __SessionCache where user=%s", cstr(arg['usr'])) # Save profile diff --git a/home/page/my_company/my_company.js b/home/page/my_company/my_company.js index 9da7e9bd2d..40bf155585 100644 --- a/home/page/my_company/my_company.js +++ b/home/page/my_company/my_company.js @@ -322,7 +322,7 @@ MemberProfile = function(parent, uid, member_item) { // show securty settings this.set_security = function() { - var d = new wn.widgets.Dialog({ + var sd = new wn.widgets.Dialog({ title: 'Set User Security', width: 500, fields: [ @@ -362,30 +362,72 @@ MemberProfile = function(parent, uid, member_item) { } ] }); - d.onshow = function() { - d.set_values({ + + me.sec_dialog = sd + + sd.onshow = function() { + me.sec_dialog.set_values({ restrict_ip: me.profile.restrict_ip || '', login_before: me.profile.login_before || '', login_after: me.profile.login_after || '', new_password: '' - }) - } - d.fields_dict.update.input.onclick = function() { + }); + }; + sd.fields_dict.update.input.onclick = function() { var btn = this; this.set_working(); - var args = d.get_values(); + var args = me.sec_dialog.get_values(); args.user = me.profile.name; - $c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) { - if(r.exc) { - msgprint(r.exc); + + if (args.new_password) { + var pass_d = new wn.widgets.Dialog({ + title: 'Your Password', + width: 300, + fields: [ + { + label: 'Please Enter Your Password', + description: "Your password is required to update the concerned user's password", + fieldtype: 'Password', + fieldname: 'sys_admin_pwd', + reqd: 1 + }, + + { + label: 'Continue', + fieldtype: 'Button', + fieldname: 'continue' + } + ] + }); + + pass_d.fields_dict.continue.input.onclick = function() { + btn.pwd_dialog.hide(); + args.sys_admin_pwd = btn.pwd_dialog.get_values().sys_admin_pwd; + btn.set_working(); + me.update_security(args); btn.done_working(); - return; } - $.extend(me.profile, d.get_values()); - d.hide(); - }); - } - d.show(); + + pass_d.show(); + btn.pwd_dialog = pass_d; + btn.done_working(); + } else { + btn.done_working(); + me.update_security(args); + } + }; + sd.show(); + } + + this.update_security = function(args) { + $c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) { + if(r.exc) { + msgprint(r.exc); + return; + } + me.sec_dialog.hide(); + $.extend(me.profile, me.sec_dialog.get_values()); + }); } // delete user diff --git a/home/page/my_company/my_company.py b/home/page/my_company/my_company.py index 5d5ed800a8..3ff1482e9f 100644 --- a/home/page/my_company/my_company.py +++ b/home/page/my_company/my_company.py @@ -140,8 +140,7 @@ def update_security(args=''): if 'new_password' in args: if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')): import server_tools.gateway_utils - webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'])['message']) + webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'], args['user'], args['sys_admin_pwd'])['message']) else: webnotes.conn.sql("update tabProfile set password=password(%s) where name=%s", (args['new_password'], args['user'])) - - webnotes.msgprint('Settings Updated') \ No newline at end of file + else: webnotes.msgprint('Settings Updated') \ No newline at end of file diff --git a/hr/doctype/salary_slip/salary_slip.py b/hr/doctype/salary_slip/salary_slip.py index 6a1705054e..3a42dca806 100644 --- a/hr/doctype/salary_slip/salary_slip.py +++ b/hr/doctype/salary_slip/salary_slip.py @@ -182,24 +182,24 @@ class DocType(TransactionBase): earn_table = '' ded_table = '' if earn_ret: - earn_table += "
"""+l_head+"""
" + earn_table += "
" for e in earn_ret: if not e[1]: - earn_table +=''%(cstr(e[0])) + earn_table +=''%(cstr(e[0])) else: - earn_table +=''%(cstr(e[0]),cstr(e[1])) + earn_table +=''%(cstr(e[0]),cstr(e[1])) earn_table += '
%s0.00
%s0.00
%s%s
%s%s
' if ded_ret: - ded_table += "" + ded_table += "
" for d in ded_ret: if not d[1]: - ded_table +=''%(cstr(d[0])) + ded_table +='%s'%(cstr(d[0])) else: - ded_table +=''%(cstr(d[0]),cstr(d[1])) + ded_table +=''%(cstr(d[0]),cstr(d[1])) ded_table += '
%s0.00
0.00
%s%s
%s%s
' letter_head = sql("select value from `tabSingles` where field = 'letter_head' and doctype = 'Control Panel'") @@ -210,57 +210,58 @@ class DocType(TransactionBase): msg = '''
%s
- + - - + + - - - -

Salary Slip

Salary Slip

Employee Code : %sEmployee Name : %sEmployee Code : %sEmployee Name : %s
Month : %sFiscal Year : %s
- - - - - + + - - - + + + + + + + + + + - - + +
Department : %sBranch : %sDesignation : %sMonth : %sFiscal Year : %s
Grade : %sBank Account No. : %sBank Name : %sDepartment : %sBranch : %s
Designation : %sGrade : %s
Bank Account No. : %sBank Name : %s
Arrear Amount : %sPayment days : %sArrear Amount : %sPayment days : %s
- +
- - + + - - + +
EarningDeductionEarningsDeductions
%s%s%s%s
- +
- - + + - + Net Pay : + - + -
Gross Pay : %sTotal Deduction : %sGross Pay : %sTotal Deduction : %s
Net Pay : %s%s
Net Pay(in words) : %sNet Pay(in words) : %s
'''%(cstr(letter_head[0][0]),cstr(self.doc.employee), cstr(self.doc.employee_name), cstr(self.doc.month), cstr(self.doc.fiscal_year), cstr(self.doc.department), cstr(self.doc.branch), cstr(self.doc.designation), cstr(self.doc.grade), cstr(self.doc.bank_account_no), cstr(self.doc.bank_name), cstr(self.doc.arrear_amount), cstr(self.doc.payment_days), earn_table, ded_table, cstr(self.doc.gross_pay), cstr(self.doc.total_deduction), cstr(self.doc.net_pay), cstr(self.doc.total_in_words)) + '''%(cstr(letter_head[0][0]),cstr(self.doc.employee), cstr(self.doc.employee_name), cstr(self.doc.month), cstr(self.doc.fiscal_year), cstr(self.doc.department), cstr(self.doc.branch), cstr(self.doc.designation), cstr(self.doc.grade), cstr(self.doc.bank_account_no), cstr(self.doc.bank_name), cstr(self.doc.arrear_amount), cstr(self.doc.payment_days), earn_table, ded_table, cstr(flt(self.doc.gross_pay)), cstr(flt(self.doc.total_deduction)), cstr(flt(self.doc.net_pay)), cstr(self.doc.total_in_words)) sendmail([receiver], sender='automail@erpnext.com', subject=subj, parts=[['text/plain', msg]]) else: msgprint("Company Email ID not found.") diff --git a/patches/patch.py b/patches/patch.py index 3a297beb80..88f4b53551 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 356 +last_patch = 360 #------------------------------------------- @@ -269,7 +269,7 @@ def execute(patch_no): delete_doc('Custom Script', 'Profile-Client') delete_doc('Custom Script', 'Event-Client') delete_doc('Custom Script', 'File-Server') - + # reload profile with new fields for security delete_doc('DocType', 'Profile') reload_doc('core', 'doctype', 'profile') @@ -300,3 +300,20 @@ def execute(patch_no): sql("update `tabDocField` set print_hide =1 where fieldname in ('pack_no', 'pack_gross_wt', 'weight_uom', 'pack_nett_wt') and parent = 'Delivery Note Detail'") elif patch_no == 356: sql("update `tabDocField` set print_hide =1 where fieldname = 'print_packing_slip' and parent = 'Delivery Note'") + elif patch_no == 357: + reload_doc('hr', 'doctype', 'salary_manager') + elif patch_no == 358: + reload_doc('setup', 'doctype','features_setup') + reload_doc('stock','doctype','item') + sql("update tabDocField set label='Produced Qty',description='Updated after finished goods are transferred to FG Warehouse through Stock Entry' where parent='Production Order' and fieldname='produced_qty'") + rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null") + from webnotes.model.doc import Document + m = Document('Features Setup') + for d in rs: + m.fields[d[0]] = 1 + m.save() + elif patch_no == 359: + reload_doc('hr', 'doctype', 'salary_slip') + delete_doc('DocType', 'Salary Control Panel') + elif patch_no == 360: + 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'") diff --git a/production/doctype/bill_of_materials/bill_of_materials.py b/production/doctype/bill_of_materials/bill_of_materials.py index d287d2f9d5..9727a63fa8 100644 --- a/production/doctype/bill_of_materials/bill_of_materials.py +++ b/production/doctype/bill_of_materials/bill_of_materials.py @@ -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 diff --git a/production/doctype/production_order/production_order.py b/production/doctype/production_order/production_order.py index 570c802666..0cc64e54ac 100644 --- a/production/doctype/production_order/production_order.py +++ b/production/doctype/production_order/production_order.py @@ -13,7 +13,7 @@ sql = webnotes.conn.sql get_value = webnotes.conn.get_value in_transaction = webnotes.conn.in_transaction convert_to_lists = webnotes.conn.convert_to_lists - + # ----------------------------------------------------------------------------------------- @@ -21,7 +21,7 @@ class DocType: def __init__(self, doc, doclist=[]): self.doc = doc self.doclist = doclist - + # Autoname def autoname(self): p = self.doc.fiscal_year @@ -35,7 +35,7 @@ class DocType: 'default_bom' : item and item[0]['default_bom'] or '' } return ret - + def validate(self): if not self.doc.production_item : msgprint("Please enter Production Item") @@ -62,7 +62,7 @@ class DocType: if flt(bom_detail[0]['docstatus']) != 1: msgprint("BOM := '%s' is not Submitted BOM." % self.doc.bom_no) raise Exception - + def update_status(self, status): # Set Status if status == 'Stopped': @@ -78,7 +78,7 @@ class DocType: # Update Planned Qty of Production Item qty = (flt(self.doc.qty) - flt(self.doc.produced_qty)) * ((status == 'Stopped') and -1 or 1) get_obj('Warehouse', self.doc.fg_warehouse).update_bin(0, 0, 0, 0, flt(qty), self.doc.production_item, now()) - + # Acknowledge user msgprint(self.doc.doctype + ": " + self.doc.name + " has been %s and status has been updated as %s." % (cstr(status), cstr(self.doc.status))) @@ -99,6 +99,6 @@ class DocType: # Set Status AS "Submitted" set(self.doc,'status', 'Cancelled') - + # decrease Planned Qty of Prooduction Item by Qty get_obj('Warehouse', self.doc.fg_warehouse).update_bin(0, 0, 0, 0,-flt(self.doc.qty), self.doc.production_item, now()) diff --git a/production/doctype/production_order/production_order.txt b/production/doctype/production_order/production_order.txt index c927edfae1..9226fd0c90 100644 --- a/production/doctype/production_order/production_order.txt +++ b/production/doctype/production_order/production_order.txt @@ -5,13 +5,14 @@ { 'creation': '2010-08-08 17:09:14', 'docstatus': 0, - 'modified': '2010-12-23 11:08:12', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-08-31 10:03:21', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { + '_last_update': '1313485457', 'colour': 'White:FFF', 'doctype': 'DocType', 'in_create': 0, @@ -20,7 +21,7 @@ 'section_style': 'Tabbed', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 179 + 'version': 180 }, # These values are common for all DocField @@ -54,7 +55,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'System Manager', 'submit': 1, @@ -64,7 +64,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 1, 'role': 'All' }, @@ -75,7 +74,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Production Manager', 'submit': 1, @@ -88,7 +86,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Production User', 'submit': 1, @@ -99,7 +96,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Production Order', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -112,7 +108,6 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 2, 'label': 'Transaction Date', 'oldfieldname': 'transaction_date', 'oldfieldtype': 'Date', @@ -127,7 +122,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_date', 'fieldtype': 'Date', - 'idx': 3, 'label': 'Posting Date', 'oldfieldname': 'posting_date', 'oldfieldtype': 'Date', @@ -142,7 +136,6 @@ 'doctype': 'DocField', 'fieldname': 'production_item', 'fieldtype': 'Link', - 'idx': 4, 'in_filter': 1, 'label': 'Production Item', 'oldfieldname': 'production_item', @@ -158,7 +151,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Text', - 'idx': 5, 'label': 'Description', 'oldfieldname': 'description', 'oldfieldtype': 'Text', @@ -173,14 +165,12 @@ 'doctype': 'DocField', 'fieldname': 'bom_no', 'fieldtype': 'Link', - 'idx': 7, 'label': 'BOM No', 'oldfieldname': 'bom_no', 'oldfieldtype': 'Link', 'options': 'Bill Of Materials', 'permlevel': 1, 'reqd': 1, - 'search_index': 0, 'trigger': 'Client' }, @@ -189,7 +179,6 @@ 'doctype': 'DocField', 'fieldname': 'origin', 'fieldtype': 'Select', - 'idx': 8, 'in_filter': 1, 'label': 'Origin', 'no_copy': 1, @@ -207,7 +196,6 @@ 'doctype': 'DocField', 'fieldname': 'qty', 'fieldtype': 'Currency', - 'idx': 9, 'label': 'Qty', 'oldfieldname': 'qty', 'oldfieldtype': 'Currency', @@ -221,7 +209,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 9, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -236,7 +223,6 @@ 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 10, 'label': 'Amended From', 'oldfieldname': 'amended_from', 'oldfieldtype': 'Data', @@ -248,7 +234,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 11, 'label': 'Amendment Date', 'oldfieldname': 'amendment_date', 'oldfieldtype': 'Date', @@ -259,7 +244,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 12, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -269,7 +253,6 @@ 'doctype': 'DocField', 'fieldname': 'stock_uom', 'fieldtype': 'Data', - 'idx': 12, 'label': 'Stock UOM', 'oldfieldname': 'stock_uom', 'oldfieldtype': 'Data', @@ -281,7 +264,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 13, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -300,15 +282,13 @@ 'doctype': 'DocField', 'fieldname': 'fg_warehouse', 'fieldtype': 'Link', - 'idx': 14, 'in_filter': 1, 'label': 'FG Warehouse', 'oldfieldname': 'fg_warehouse', 'oldfieldtype': 'Link', 'options': 'Warehouse', 'permlevel': 0, - 'reqd': 1, - 'search_index': 0 + 'reqd': 1 }, # DocField @@ -318,15 +298,13 @@ 'doctype': 'DocField', 'fieldname': 'wip_warehouse', 'fieldtype': 'Link', - 'idx': 15, 'in_filter': 1, 'label': 'WIP Warehouse', 'oldfieldname': 'wip_warehouse', 'oldfieldtype': 'Link', 'options': 'Warehouse', 'permlevel': 0, - 'reqd': 1, - 'search_index': 0 + 'reqd': 1 }, # DocField @@ -336,7 +314,6 @@ 'doctype': 'DocField', 'fieldname': 'consider_sa_items', 'fieldtype': 'Select', - 'idx': 16, 'in_filter': 1, 'label': 'Consider SA Items', 'oldfieldname': 'consider_sa_items', @@ -349,11 +326,11 @@ # DocField { 'colour': 'White:FFF', + 'description': 'Updated after finished goods are transferred to FG Warehouse through Stock Entry', 'doctype': 'DocField', 'fieldname': 'produced_qty', 'fieldtype': 'Currency', - 'idx': 18, - 'label': 'Produced Qty (Updated after finished goods are transferred to FG Warehouse through Stock Entry)', + 'label': 'Produced Qty', 'oldfieldname': 'produced_qty', 'oldfieldtype': 'Currency', 'permlevel': 1 @@ -364,14 +341,12 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 19, 'label': 'Company', 'oldfieldname': 'company', 'oldfieldtype': 'Link', 'options': 'Company', 'permlevel': 0, - 'reqd': 1, - 'search_index': 0 + 'reqd': 1 }, # DocField @@ -379,7 +354,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 20, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -393,7 +367,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 21, 'label': 'Next Steps', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -405,7 +378,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 22, 'label': 'Material Transfer', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -416,7 +388,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 23, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -427,7 +398,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 24, 'label': 'Backflush', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -438,7 +408,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 25, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -449,7 +418,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 26, 'label': 'Stop Production Order', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -462,7 +430,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 27, 'label': 'Unstop Production Order', 'oldfieldtype': 'Button', 'permlevel': 0, diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js index 587933ca94..e684bed1bf 100644 --- a/selling/doctype/sales_order/sales_order.js +++ b/selling/doctype/sales_order/sales_order.js @@ -28,7 +28,7 @@ cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) { if(doc.quotation) cur_frm.cscript['Pull Quotation Details'](doc,cdt,cdn); } else { cur_frm.cscript.load_taxes(doc, cdt, cdn); - } + } } // Refresh @@ -70,7 +70,6 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { } else { hide_field(['Repair Sales Order', 'Send SMS', 'message', 'customer_mobile_no']) } - } //customer diff --git a/setup/doctype/features_setup/__init__.py b/setup/doctype/features_setup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/setup/doctype/features_setup/features_setup.py b/setup/doctype/features_setup/features_setup.py new file mode 100644 index 0000000000..3a549d9e32 --- /dev/null +++ b/setup/doctype/features_setup/features_setup.py @@ -0,0 +1,13 @@ +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl + + def validate(self): + """ + update settings in defaults + """ + from webnotes.model import default_fields + from webnotes.utils import set_default + for key in self.doc.fields: + if key not in default_fields: + set_default(key, self.doc.fields[key]) diff --git a/setup/doctype/features_setup/features_setup.txt b/setup/doctype/features_setup/features_setup.txt new file mode 100644 index 0000000000..224d175a0b --- /dev/null +++ b/setup/doctype/features_setup/features_setup.txt @@ -0,0 +1,288 @@ +# DocType, Features Setup +[ + + # These values are common in all dictionaries + { + 'creation': '2011-08-25 16:53:56', + 'docstatus': 0, + 'modified': '2011-08-31 15:05:53', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + '_last_update': '1314783102', + 'colour': 'White:FFF', + 'doctype': 'DocType', + 'issingle': 1, + 'module': 'Setup', + 'name': '__common__', + 'name_case': 'Title Case', + 'section_style': 'Simple', + 'show_in_menu': 1, + 'version': 16 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'Features Setup', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0 + }, + + # These values are common for all DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'name': '__common__', + 'parent': 'Features Setup', + 'parentfield': 'permissions', + 'parenttype': 'DocType', + 'permlevel': 0, + 'read': 1, + 'write': 1 + }, + + # DocType, Features Setup + { + 'doctype': 'DocType', + 'name': 'Features Setup' + }, + + # DocPerm + { + 'doctype': 'DocPerm', + 'role': 'System Manager' + }, + + # DocPerm + { + 'doctype': 'DocPerm', + 'role': 'Administrator' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'label': 'Materials' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.', + 'doctype': 'DocField', + 'fieldname': 'item_searial_nos', + 'fieldtype': 'Check', + 'label': 'Item Serial Nos' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'To track items in sales and purchase documents with batch nos
Preferred Industry: Chemicals etc', + 'doctype': 'DocField', + 'fieldname': 'item_batch_nos', + 'fieldtype': 'Check', + 'label': 'Item Batch Nos' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'To track brand name in the following documents
\nDelivery Note, Enuiry, Indent, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Receivable Voucher, Sales BOM, Sales Order, Serial No', + 'doctype': 'DocField', + 'fieldname': 'brands', + 'fieldtype': 'Check', + 'label': 'Brands' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': '1. To maintain the customer wise item code and to make them searchable based on their code use this option', + 'doctype': 'DocField', + 'fieldname': 'item_advanced', + 'fieldtype': 'Check', + 'label': 'Item Advanced' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'If Sale BOM is defined, the actual BOM of the Pack is displayed as table.\nAvailable in Delivery Note and Sales Order', + 'doctype': 'DocField', + 'fieldname': 'packing_details', + 'fieldtype': 'Check', + 'label': 'Packing Detials' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'To get Item Group in details table', + 'doctype': 'DocField', + 'fieldname': 'item_group_in_details', + 'fieldtype': 'Check', + 'label': 'Item Groups in Details' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'label': 'Sales and Purchase' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'All export related fields like currency, conversion rate, export total, export grand total etc are available in
\nDelivery Note, POS, Quotation, Sales Invoice, Sales Order etc.', + 'doctype': 'DocField', + 'fieldname': 'exports', + 'fieldtype': 'Check', + 'label': 'Exports' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'All import related fields like currency, conversion rate, import total, import grand total etc are available in
\nPurchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.', + 'doctype': 'DocField', + 'fieldname': 'imports', + 'fieldtype': 'Check', + 'label': 'Imports' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Field available in Delivery Note, Quotation, Receivable Voucher, Sales Order', + 'doctype': 'DocField', + 'fieldname': 'discounts', + 'fieldtype': 'Check', + 'label': 'Discounts' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'To track any installation or commissioning related work after sales', + 'doctype': 'DocField', + 'fieldname': 'after_sales_installations', + 'fieldtype': 'Check', + 'label': 'After Sale Installations' + }, + + # DocField + { + 'description': 'Available in \nBill Of Materials, Delivery Note, Payable Voucher, Production Order, Purchase Order, Purchase Receipt, Receivable Voucher, Sales Order, Stock Entry, Timesheet', + 'doctype': 'DocField', + 'fieldname': 'projects', + 'fieldtype': 'Check', + 'label': 'Projects' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity', + 'doctype': 'DocField', + 'fieldname': 'sales_extras', + 'fieldtype': 'Check', + 'label': 'Sales Extras' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'label': 'Production' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'If you involve in manufacturing activity
\nEnables item Is Manufactured', + 'doctype': 'DocField', + 'fieldname': 'manufacturing', + 'fieldtype': 'Check', + 'label': 'Manufacturing' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'If you follow Quality Inspection
\nEnables item QA Required and QA No in Purchase Receipt', + 'doctype': 'DocField', + 'fieldname': 'quality', + 'fieldtype': 'Check', + 'label': 'Quality' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'To enable Point of Sale features', + 'doctype': 'DocField', + 'fieldname': 'pos', + 'fieldtype': 'Check', + 'label': 'Point of Sale' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'label': 'Miscelleneous' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page', + 'doctype': 'DocField', + 'fieldname': 'page_break', + 'fieldtype': 'Check', + 'label': 'Page Break' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Enables More Info. in all documents', + 'doctype': 'DocField', + 'fieldname': 'more_info', + 'fieldtype': 'Check', + 'label': 'More Info' + } +] \ No newline at end of file diff --git a/setup/page/setup/setup.js b/setup/page/setup/setup.js index b29e7ad9e0..7c1245ad29 100644 --- a/setup/page/setup/setup.js +++ b/setup/page/setup/setup.js @@ -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'] ]}; diff --git a/startup/startup.js b/startup/startup.js index ce4aac3b3c..942f4effc5 100644 --- a/startup/startup.js +++ b/startup/startup.js @@ -12,8 +12,8 @@ if(inList(user_roles,'System Manager')) is_system_manager = 1; function startup_setup() { pscript.is_erpnext_saas = cint(locals['Control Panel']['Control Panel'].sync_with_gateway) - - + + if(get_url_arg('embed')) { // hide header, footer $dh(page_body.banner_area); @@ -34,7 +34,7 @@ function startup_setup() { $td(page_body.wntoolbar.body_tab,0,0).innerHTML = 'erpnext'; $y($td(page_body.wntoolbar.body_tab,0,0), {width:'140px', color:'#FFF', paddingLeft:'8px', paddingRight:'8px', fontSize:'14px'}) $dh(page_body.banner_area); - + // sidebar // ------- pscript.startup_make_sidebar(); @@ -65,10 +65,10 @@ pscript.startup_make_sidebar = function() { var callback = function(r,rt) { // menu var ml = r.message; - + // clear page_body.left_sidebar.innerHTML = ''; - + for(var m=0; mNote: These changes will apply to all users!', ml, update_order, 1); } $c_obj('Home Control', 'get_module_order', '', callback) - + } // ==================================================================== @@ -437,7 +437,7 @@ pscript.startup_setup_toolbar = function() { // Profile // --------- $td(menu_tab,0,0).innerHTML = ''+user_fullname+''; - + if(pscript.is_erpnext_saas){ // Help // -------------- @@ -474,7 +474,7 @@ show_chart_browser = function(nm, chart_type){ var call_back = function(){ if(nm == 'Sales Browser'){ var sb_obj = new SalesBrowser(); - sb_obj.set_val(chart_type); + sb_obj.set_val(chart_type); } else if(nm == 'Accounts Browser') pscript.make_chart(chart_type); @@ -501,7 +501,7 @@ ModulePage = function(parent, module_name, module_label, help_page, callback) { var btn = this.page_head.add_button('Help', function() { loadpage(this.help_page) }, 1, 'ui-icon-help') btn.help_page = help_page; } - + if(callback) this.callback = function(){ callback(); } } @@ -517,12 +517,12 @@ get_plural = function(str){ // set user fullname // ==================================================================== pscript.set_user_fullname = function(ele,username,get_latest){ - + var set_it = function(){ if(ele) ele.innerHTML = user_full_nm[username]; } - + if(get_latest){ $c_obj('Home Control','get_user_fullname',username, function(r,rt){ user_full_nm[username] = r.message; set_it(); }); } @@ -530,7 +530,7 @@ pscript.set_user_fullname = function(ele,username,get_latest){ if(user_full_nm[username]){ set_it(); } - + else $c_obj('Home Control','get_user_fullname',username, function(r,rt){ user_full_nm[username] = r.message; set_it(); }); } @@ -539,4 +539,182 @@ pscript.set_user_fullname = function(ele,username,get_latest){ // ==================================================================== startup_setup(); -$(document).bind('form_refresh', function() { }) +/* features setup "Dictionary", "Script" +Dictionary Format + 'projects': { + 'Sales Order': { + 'fields':['project_name'], + 'sales_order_details':['projected_qty'] + }, + 'Purchase Order': { + 'fields':['project_name'] + } + } +// ====================================================================*/ +pscript.feature_dict = { + 'projects': { + 'Bill Of Materials': {'fields':['project_name']}, + 'Delivery Note': {'fields':['project_name']}, + 'Payable Voucher': {'fields':['project_name']}, + 'Production Order': {'fields':['project_name']}, + 'Purchase Order': {'fields':['project_name']}, + 'Purchase Receipt': {'fields':['project_name']}, + 'Receivable Voucher': {'fields':['project_name']}, + 'Sales Order': {'fields':['project_name']}, + 'Stock Entry': {'fields':['project_name']}, + 'Timesheet': {'timesheet_details':['project_name']} + }, + 'packing_details': { + 'Delivery Note': {'fields':['packing_details','print_packing_slip'],'delivery_note_details':['no_of_packs','pack_gross_wt','pack_nett_wt','pack_no','pack_unit']}, + 'Sales Order': {'fields':['packing_details']} + }, + 'discounts': { + 'Delivery Note': {'delivery_note_details':['adj_rate']}, + 'Quotation': {'quotation_details':['adj_rate']}, + 'Receivable Voucher': {'entries':['adj_rate']}, + 'Sales Order': {'sales_order_details':['adj_rate','ref_rate']} + }, + 'brands': { + 'Delivery Note': {'delivery_note_details':['brand']}, + 'Indent': {'indent_details':['brand']}, + 'Item': {'fields':['brand']}, + 'Purchase Order': {'po_details':['brand']}, + 'Payable Voucher': {'entries':['brand']}, + 'Quotation': {'quotation_details':['brand']}, + 'Receivable Voucher': {'entries':['brand']}, + 'Sales BOM': {'fields':['new_item_brand']}, + 'Sales Order': {'sales_order_details':['brand']}, + 'Serial No': {'fields':['brand']} + }, + 'after_sales_installations': { + 'Delivery Note': {'fields':['installation_status','per_installed'],'delivery_note_details':['installed_qty']} + }, + 'item_batch_nos': { + 'Delivery Note': {'delivery_note_details':['batch_no']}, + 'Item': {'fields':['has_batch_no']}, + 'Purchase Receipt': {'purchase_receipt_details':['batch_no']}, + 'QA Inspection Report': {'fields':['batch_no']}, + 'Sales and Pruchase Return Wizard': {'return_details':['batch_no']}, + 'Receivable Voucher': {'entries':['batch_no']}, + 'Stock Entry': {'mtn_details':['batch_no']}, + 'Stock Ledger Entry': {'fields':['batch_no']} + }, + 'item_serial_nos': { + 'Customer Issue': {'fields':['serial_no']}, + 'Delivery Note': {'delivery_note_details':['serial_no'],'packing_details':['serial_no']}, + 'Installation Note': {'installed_item_details':['serial_no']}, + 'Item': {'fields':['has_serial_no']}, + 'Maintenance Schedule': {'item_maintenance_details':['serial_no'],'maintenance_schedule_details':['serial_no']}, + 'Maintenance Visit': {'maintenance_visit_details':['serial_no']}, + 'Purchase Receipt': {'purchase_receipt_details':['serial_no']}, + 'QA Inspection Report': {'fields':['item_serial_no']}, + 'Sales and Pruchase Return Wizard': {'return_details':['serial_no']}, + 'Receivable Voucher': {'entries':['serial_no']}, + 'Stock Entry': {'mtn_details':['serial_no']}, + 'Stock Ledger Entry': {'fields':['serial_no']} + }, + 'item_group_in_details': { + 'Delivery Note': {'delivery_note_details':['item_group']}, + 'Enquiry': {'enquiry_details':['item_group']}, + 'Indent': {'indent_details':['item_group']}, + 'Item': {'fields':['item_group']}, + 'Manage Account': {'fields':['default_item_group']}, + 'Purchase Order': {'po_details':['item_group']}, + 'Purchase Receipt': {'purchase_receipt_details':['item_group']}, + 'Purchase Voucher': {'entries':['item_group']}, + 'Quotation': {'quotation_details':['item_group']}, + 'Receivable Voucher': {'entries':['item_group']}, + 'Sales BOM': {'fields':['serial_no']}, + 'Sales Order': {'sales_order_details':['item_group']}, + 'Serial No': {'fields':['item_group']}, + 'Sales Partner': {'partner_target_details':['item_group']}, + 'Sales Person': {'target_details':['item_group']}, + 'Territory': {'target_details':['item_group']} + }, + 'page_break': { + 'Delivery Note': {'delivery_note_details':['page_break'],'packing_details':['page_break']}, + 'Indent': {'indent_details':['page_break']}, + 'Purchase Order': {'po_details':['page_break']}, + 'Purchase Receipt': {'purchase_receipt_details':['page_break']}, + 'Purchase Voucher': {'entries':['page_break']}, + 'Quotation': {'quotation_details':['page_break']}, + 'Receivable Voucher': {'entries':['page_break']}, + 'Sales Order': {'sales_order_details':['page_break']} + }, + 'exports': { + 'Delivery Note': {'fields':['Note','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','export_amount','export_rate']}, + 'POS Setting': {'fields':['conversion_rate','currency']}, + 'Quotation': {'fields':['Note HTML','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'quotation_details':['base_ref_rate','export_amount','export_rate']}, + 'Receivable Voucher': {'fields':['conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'entries':['base_ref_rate','export_amount','export_rate']}, + 'Item': {'ref_rate_details':['ref_currency']}, + 'Sales BOM': {'fields':['currency']}, + 'Sales Order': {'fields':['Note1','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'sales_order_details':['base_ref_rate','export_amount','export_rate']} + }, + 'imports': { + 'Payable Voucher': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'entries':['import_amount','import_rate']}, + 'Purchase Order': {'fields':['Note HTML','conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'po_details':['import_amount','import_rate']}, + 'Purchase Receipt': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'purchase_receipt_details':['import_amount','import_rate']}, + 'Supplier Quotation': {'fields':['conversion_rate','currency']} + }, + 'item_advanced': { + 'Item': {'fields':['item_customer_details']} + }, + 'sales_extras': { + 'Address': {'fields':['sales_partner']}, + 'Contact': {'fields':['sales_partner']}, + 'Customer': {'fields':['sales_team']}, + 'Delivery Note': {'fields':['sales_team','Packing List']}, + 'Item': {'fields':['item_customer_details']}, + 'Receivable Voucher': {'fields':['sales_team']}, + 'Sales Order': {'fields':['sales_team','Packing List']} + }, + 'more_info': { + 'Customer': {'fields':['More Info']}, + 'Delivery Note': {'fields':['More Info']}, + 'Enquiry': {'fields':['More Info']}, + 'Indent': {'fields':['More Info']}, + 'Lead': {'fields':['More Info']}, + 'Payable Voucher': {'fields':['More Info']}, + 'Purchase Order': {'fields':['More Info']}, + 'Purchase Receipt': {'fields':['More Info']}, + 'Quotation': {'fields':['More Info']}, + 'Receivable Voucher': {'fields':['More Info']}, + 'Sales Order': {'fields':['More Info']}, + 'Serial No': {'fields':['More Info']}, + 'Supplier': {'fields':['More Info']} + }, + 'quality': { + 'Item': {'fields':['Item Inspection Criteria','inspection_required']}, + 'Purchase Receipt': {'purchase_receipt_details':['qa_no']} + }, + 'manufacturing': { + 'Item': {'fields':['Manufacturing']} + }, + 'pos': { + 'Receivable Voucher': {'fields':['is_pos']} + } +} + +$(document).bind('form_refresh', function() { + for(sys_feat in sys_defaults) + { + if(sys_defaults[sys_feat]=='0' && (sys_feat in pscript.feature_dict)) //"Features to hide" exists + { + if(cur_frm.doc.doctype in pscript.feature_dict[sys_feat]) + { + for(fort in pscript.feature_dict[sys_feat][cur_frm.doc.doctype]) + { + if(fort=='fields') + hide_field(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]); + else if(cur_frm.fields_dict[fort]) + { + for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]) + cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false); + } + else + msgprint('Grid "'+fort+'" does not exists'); + } + } + } + } +}) diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js index 6dd7377ed7..691e25963c 100644 --- a/stock/doctype/item/item.js +++ b/stock/doctype/item/item.js @@ -110,3 +110,9 @@ cur_frm.cscript.weight_to_validate = function(doc,cdt,cdn){ cur_frm.cscript.validate = function(doc,cdt,cdn){ cur_frm.cscript.weight_to_validate(doc,cdt,cdn); } + +//===========Fill Default Currency in "Ref Rate Details==================== +cur_frm.fields_dict['ref_rate_details'].grid.onrowadd = function(doc, cdt, cdn){ + locals[cdt][cdn].ref_currency = sys_defaults.currency; + refresh_field('ref_currency',cdn,'ref_rate_details'); +} \ No newline at end of file diff --git a/stock/doctype/ref_rate_detail/ref_rate_detail.txt b/stock/doctype/ref_rate_detail/ref_rate_detail.txt index 1774b08d3a..3f9b5a7cb8 100644 --- a/stock/doctype/ref_rate_detail/ref_rate_detail.txt +++ b/stock/doctype/ref_rate_detail/ref_rate_detail.txt @@ -5,8 +5,8 @@ { 'creation': '2010-08-08 17:09:19', 'docstatus': 0, - 'modified': '2010-09-20 14:06:57', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-08-31 11:36:41', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -23,7 +23,7 @@ 'section_style': 'Tray', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 2 + 'version': 3 }, # These values are common for all DocField @@ -34,7 +34,8 @@ 'parent': 'Ref Rate Detail', 'parentfield': 'fields', 'parenttype': 'DocType', - 'permlevel': 0 + 'permlevel': 0, + 'search_index': 1 }, # DocType, Ref Rate Detail @@ -48,13 +49,12 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 1, 'label': 'Price List Name', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', 'options': 'link:Price List', 'reqd': 1, - 'search_index': 1 + 'trigger': 'Client' }, # DocField @@ -62,12 +62,10 @@ 'doctype': 'DocField', 'fieldname': 'ref_rate', 'fieldtype': 'Currency', - 'idx': 2, 'label': 'Ref Rate', 'oldfieldname': 'ref_rate', 'oldfieldtype': 'Currency', - 'reqd': 0, - 'search_index': 0 + 'reqd': 0 }, # DocField @@ -75,12 +73,10 @@ 'doctype': 'DocField', 'fieldname': 'ref_currency', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Currency', 'oldfieldname': 'ref_currency', 'oldfieldtype': 'Select', 'options': 'link:Currency', - 'reqd': 1, - 'search_index': 1 + 'reqd': 1 } ] \ No newline at end of file