From 29d5549bde40a79581bcf4bd5b97cd5ac4d17521 Mon Sep 17 00:00:00 2001 From: Brahma K Date: Thu, 25 Aug 2011 16:20:16 +0530 Subject: [PATCH 01/13] Features Setting 1. Features Setting DocType 2. Startup.js will be added with a function which binds with refresh of doc 3. Startup.js contains the Features dictionary --- accounts/doctype/loan/__init__.py | 0 accounts/doctype/loan/loan.js | 54 ------ accounts/doctype/loan/loan.py | 48 ----- accounts/doctype/loan/loan.txt | 172 ------------------ accounts/doctype/loan/test_loan.py | 17 -- accounts/doctype/loan_installment/__init__.py | 0 .../loan_installment/loan_installment.txt | 111 ----------- .../receivable_voucher/receivable_voucher.js | 50 ++--- .../production_order/production_order.py | 12 +- selling/doctype/sales_order/sales_order.js | 4 +- 10 files changed, 33 insertions(+), 435 deletions(-) delete mode 100644 accounts/doctype/loan/__init__.py delete mode 100644 accounts/doctype/loan/loan.js delete mode 100644 accounts/doctype/loan/loan.py delete mode 100644 accounts/doctype/loan/loan.txt delete mode 100644 accounts/doctype/loan/test_loan.py delete mode 100644 accounts/doctype/loan_installment/__init__.py delete mode 100644 accounts/doctype/loan_installment/loan_installment.txt diff --git a/accounts/doctype/loan/__init__.py b/accounts/doctype/loan/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/accounts/doctype/loan/loan.js b/accounts/doctype/loan/loan.js deleted file mode 100644 index 5a453627ec..0000000000 --- a/accounts/doctype/loan/loan.js +++ /dev/null @@ -1,54 +0,0 @@ -$.extend(cur_frm.cscript, { - Generate: function(doc, dt, dn) { - cur_frm.cscript.clear_installments(doc); - for(var i=0; i< doc.no_of_installments; i++) { - d = LocalDB.add_child(doc, 'Loan Installment', 'installments'); - d.amount = doc.loan_amount / doc.no_of_installments; - d.due_date = dateutil.add_months(doc.start_date, i+1); - } - cur_frm.refresh(); - }, -/* submit:function(doc){ - data=doc.get_values(); - - data['']= - $c_obj(make_doclist(dt,dn),'loan_post',data,function(){}); - },*/ - refresh: function(doc) { - cur_frm.cscript.hide_show_buttons(doc); - }, - hide_show_buttons: function(doc) { - if(doc.docstatus==0) { - hide_field('Installment Reciept'); unhide_field('Generate'); - } else if (doc.docstatus==1) { - unhide_field('Installment Reciept');hide_field('Generate'); - } - }, - clear_installments: function(doc) { - $.each(getchildren('Loan Installment', doc.name, 'installments', 'Loan'), - function(i, d) { - LocalDB.delete_doc('Loan Installment', d.name); - } - ) - }, - 'Installment Reciept': function(doc, dt, dn) { - var d = new wn.widgets.Dialog({ - width: 500, - title: 'Add a new payment installment', - fields: [ - {fieldtype:'Data', label:'Cheque Number', fieldname:'cheque_number', reqd:1}, - {fieldtype:'Date', label:'Cheque Date', fieldname:'cheque_date', reqd:1}, - {fieldtype:'Link', label:'Bank Account', fieldname:'bank_account', reqd:1, options:'Account'}, - {fieldtype:'Button', label:'Update',fieldname:'update'} - ] - }) - d.show(); - d.fields_dict.update.input.onclick = function() { - var data = d.get_values(); - - if(data) { - $c_obj(make_doclist(dt,dn),'loan_installment_post',data,function(){cur_frm.refresh(); d.hide();}); - } - } - } -}) diff --git a/accounts/doctype/loan/loan.py b/accounts/doctype/loan/loan.py deleted file mode 100644 index 9f0bcb53a0..0000000000 --- a/accounts/doctype/loan/loan.py +++ /dev/null @@ -1,48 +0,0 @@ -import webnotes -from webnotes.model.doc import make_autoname, Document, addchild -from webnotes import msgprint -from webnotes.utils import get_defaults -import json -from accounts.utils import post_jv -sql = webnotes.conn.sql - -class DocType: - def __init__(self, doc, doclist): - self.doc, self.doclist = doc, doclist - - def autoname(self): - """ - Create Loan Id using naming_series pattern - """ - self.doc.name = make_autoname(self.doc.naming_series+ '.#####') - - def loan_post(self): - data['voucher_type']='Loan Issue' - data['naming_series']='JV' - data['fiscal_year'] = get_defaults()['fiscal_year'] # To be modified to take care - data['company'] = get_defaults()['company'] - data['debit_account'] = self.doc['receivable_account'] - data['credit_account'] = self.doc['account'] - data['amount'] = self.doc.loan_amount - jv_name=post_jv(data) - - def loan_installment_post(self, args): - """ - Posts the loan receipt into Journal Voucher - """ - next_inst = sql("select amount,name from `tabLoan Installment` where parent=%s and ifnull(cheque_number,'')='' order by due_date limit 1",self.doc.name) - - data = json.loads(args) - data['voucher_type']='Loan Receipt' - data['naming_series']='JV' - data['amount']=next_inst[0][0] - data['debit_account']=data.get('bank_account') - data['credit_account']=self.doc.account - data['fiscal_year']=get_defaults()['fiscal_year'] - data['company']=get_defaults()['company'] - jv_name=post_jv(data) - - sql("update `tabLoan Installment` set cheque_number=%s, cheque_date=%s, jv_number=%s where name=%s",(data.get('cheque_number'),data.get('cheque_date'),jv_name,next_inst[0][1])) - - self.doclist = [Document(d.doctype, d.name) for d in self.doclist] - diff --git a/accounts/doctype/loan/loan.txt b/accounts/doctype/loan/loan.txt deleted file mode 100644 index 001e1d3845..0000000000 --- a/accounts/doctype/loan/loan.txt +++ /dev/null @@ -1,172 +0,0 @@ -# DocType, Loan -[ - - # These values are common in all dictionaries - { - 'creation': '2011-07-15 10:35:26', - 'docstatus': 0, - 'modified': '2011-07-18 12:12:19', - 'modified_by': 'Administrator', - 'owner': 'Administrator' - }, - - # These values are common for all DocType - { - '_last_update': '1310963215', - 'colour': 'White:FFF', - 'doctype': 'DocType', - 'module': 'Accounts', - 'name': '__common__', - 'section_style': 'Simple', - 'show_in_menu': 0, - 'version': 15 - }, - - # These values are common for all DocField - { - 'doctype': 'DocField', - 'name': '__common__', - 'parent': 'Loan', - 'parentfield': 'fields', - 'parenttype': 'DocType', - 'permlevel': 0 - }, - - # These values are common for all DocPerm - { - 'doctype': 'DocPerm', - 'name': '__common__', - 'parent': 'Loan', - 'parentfield': 'permissions', - 'parenttype': 'DocType', - 'read': 1, - 'role': 'Accounts User' - }, - - # DocType, Loan - { - 'doctype': 'DocType', - 'name': 'Loan' - }, - - # DocPerm - { - 'cancel': 1, - 'create': 1, - 'doctype': 'DocPerm', - 'idx': 1, - 'permlevel': 0, - 'submit': 1, - 'write': 1 - }, - - # DocPerm - { - 'doctype': 'DocPerm', - 'idx': 2, - 'permlevel': 1 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'naming_series', - 'fieldtype': 'Select', - 'idx': 1, - 'label': 'Naming Series', - 'options': '\nLOAN', - 'reqd': 1 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'account', - 'fieldtype': 'Link', - 'idx': 2, - 'label': 'Account', - 'options': 'Account', - 'reqd': 1 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'receivable_account', - 'fieldtype': 'Link', - 'idx': 3, - 'label': 'Receivable Account', - 'options': 'Account' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'invoice', - 'fieldtype': 'Link', - 'idx': 4, - 'label': 'Invoice', - 'options': 'Receivable Voucher', - 'reqd': 1 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'loan_amount', - 'fieldtype': 'Currency', - 'idx': 5, - 'label': 'Loan Amount', - 'reqd': 1 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'start_date', - 'fieldtype': 'Date', - 'idx': 6, - 'label': 'Start Date', - 'reqd': 1 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'no_of_installments', - 'fieldtype': 'Int', - 'idx': 7, - 'label': 'No of Installments', - 'reqd': 1 - }, - - # DocField - { - 'colour': 'White:FFF', - 'doctype': 'DocField', - 'fieldtype': 'Button', - 'idx': 8, - 'label': 'Generate', - 'trigger': 'Client' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'installments', - 'fieldtype': 'Table', - 'idx': 9, - 'label': 'Installments', - 'options': 'Loan Installment' - }, - - # DocField - { - 'allow_on_submit': 1, - 'colour': 'White:FFF', - 'doctype': 'DocField', - 'fieldtype': 'Button', - 'idx': 10, - 'label': 'Installment Reciept' - } -] \ No newline at end of file diff --git a/accounts/doctype/loan/test_loan.py b/accounts/doctype/loan/test_loan.py deleted file mode 100644 index 4e72559d6e..0000000000 --- a/accounts/doctype/loan/test_loan.py +++ /dev/null @@ -1,17 +0,0 @@ -import unittest -import webnotes -from webnotes.model.code import get_obj - -class TestScheduleGeneartion(unittest.TestCase): - def setUp(self): - webnotes.conn.begin() - # create a mock loan - self.loan = get_obj('Loan', 'LOAN00001') - - def test_generation(self): - "test the genaration of loan installments" - self.loan.generate() - self.assertEqual(self.loan.get_installment_total(), self.loan.doc.loan_amount) - - def tearDown(self): - webnotes.conn.rollback() diff --git a/accounts/doctype/loan_installment/__init__.py b/accounts/doctype/loan_installment/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/accounts/doctype/loan_installment/loan_installment.txt b/accounts/doctype/loan_installment/loan_installment.txt deleted file mode 100644 index f729e3434b..0000000000 --- a/accounts/doctype/loan_installment/loan_installment.txt +++ /dev/null @@ -1,111 +0,0 @@ -# DocType, Loan Installment -[ - - # These values are common in all dictionaries - { - 'creation': '2011-07-15 10:36:42', - 'docstatus': 0, - 'modified': '2011-07-15 15:48:34', - 'modified_by': 'Administrator', - 'owner': 'Administrator' - }, - - # These values are common for all DocType - { - 'colour': 'White:FFF', - 'doctype': 'DocType', - 'istable': 1, - 'module': 'Accounts', - 'name': '__common__', - 'section_style': 'Simple', - 'show_in_menu': 0, - 'version': 4 - }, - - # These values are common for all DocField - { - 'doctype': 'DocField', - 'name': '__common__', - 'parent': 'Loan Installment', - 'parentfield': 'fields', - 'parenttype': 'DocType' - }, - - # DocType, Loan Installment - { - 'doctype': 'DocType', - 'name': 'Loan Installment' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'amount', - 'fieldtype': 'Currency', - 'idx': 1, - 'label': 'Amount', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'due_date', - 'fieldtype': 'Date', - 'idx': 2, - 'label': 'Due Date', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'cheque_number', - 'fieldtype': 'Data', - 'idx': 3, - 'label': 'Cheque Number', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'cheque_date', - 'fieldtype': 'Date', - 'idx': 4, - 'label': 'Cheque Date', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'deposit_date', - 'fieldtype': 'Date', - 'idx': 5, - 'label': 'Deposit Date', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'realized_date', - 'fieldtype': 'Date', - 'idx': 6, - 'label': 'Realized Date', - 'permlevel': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'jv_number', - 'fieldtype': 'Link', - 'hidden': 0, - 'idx': 7, - 'label': 'JV Number', - 'options': 'Journal Voucher', - 'permlevel': 1 - } -] \ No newline at end of file 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 Date: Mon, 29 Aug 2011 19:24:54 +0530 Subject: [PATCH 02/13] Added new Feature List option to control front end based on companies broad requirements --- selling/doctype/sales_order/sales_order.js | 1 - setup/doctype/features_setup/__init__.py | 0 .../doctype/features_setup/features_setup.py | 13 + .../doctype/features_setup/features_setup.txt | 152 ++++++++++ startup/startup.js | 280 ++++++++++++++---- 5 files changed, 386 insertions(+), 60 deletions(-) create mode 100644 setup/doctype/features_setup/__init__.py create mode 100644 setup/doctype/features_setup/features_setup.py create mode 100644 setup/doctype/features_setup/features_setup.txt diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js index 47c8c34418..e684bed1bf 100644 --- a/selling/doctype/sales_order/sales_order.js +++ b/selling/doctype/sales_order/sales_order.js @@ -70,7 +70,6 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { } else { hide_field(['Repair Sales Order', 'Send SMS', 'message', 'customer_mobile_no']) } - pscript.apply_feature_settings(); } //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..491cb8d203 --- /dev/null +++ b/setup/doctype/features_setup/features_setup.txt @@ -0,0 +1,152 @@ +# DocType, Features Setup +[ + + # These values are common in all dictionaries + { + 'creation': '2011-08-25 16:53:56', + 'docstatus': 0, + 'modified': '2011-08-29 13:16:51', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + '_last_update': '1314601410', + 'colour': 'White:FFF', + 'doctype': 'DocType', + 'issingle': 1, + 'module': 'Setup', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 1, + 'version': 6 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Check', + '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 + { + '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', + 'label': 'Projects' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Available in Delivery Note and Sales Order', + 'doctype': 'DocField', + 'fieldname': 'packing_details', + 'label': 'Packing Detials' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Available in Delivery Note, Quotation, Receivable Voucher, Sales Order', + 'doctype': 'DocField', + 'fieldname': 'discounts', + 'label': 'Discounts' + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Availble in Delivery Note, Enuiry, Indent, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Receivable Voucher, Sales BOM, Sales Order, Serial No', + 'doctype': 'DocField', + 'fieldname': 'brands', + 'label': 'Brands' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'after_sale_installations', + 'label': 'After Sale Installations' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'warehouses', + 'label': 'Warehouses' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'item_batch_nos', + 'label': 'Item Batch Nos' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'item_searial_nos', + 'label': 'Item Serial Nos' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldname': 'page_break', + 'label': 'Page Break' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'item_groups_in_groups', + 'label': 'Item Groups in Details' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'ref_rates', + 'label': 'Ref Rates' + } +] \ No newline at end of file diff --git a/startup/startup.js b/startup/startup.js index 5a2a816e89..13be705261 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,166 @@ pscript.set_user_fullname = function(ele,username,get_latest){ // ==================================================================== startup_setup(); -$(document).bind('form_refresh', function() { }) \ No newline at end of file +/* 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': {'rv_details':['adj_rate']}, + 'Sales Order': {'sale_order_details':['adj_rate']} + }, + 'brands': { + 'Delivery Note': {'delivery_note_details':['brand']}, + 'Enquiry': {'enquiry_details':['brand']}, + 'Indent': {'indent_details':['brand']}, + 'Item': {'fields':['brand']}, + 'Purchase Order': {'po_details':['brand']}, + 'Purchase Receipt': {'purchase_receipt_details':['brand']}, + 'Payable Voucher': {'pv_details':['brand']}, + 'Quotation': {'quotation_details':['brand']}, + 'Receivable Voucher': {'rv_details':['brand']}, + 'Sales BOM': {'fields':['new_item_brand']}, + 'Sales Order': {'sales_order_details':['brand']}, + 'Serial No': {'fields':['brand']} + }, + 'after_sale_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': {'rv_details':['batch_no']}, + 'Stock Entry': {'stock_entry_details':['batch_no']}, + 'Stock Ledger Entry': {'fields':['batch_no']} + }, + 'item_serial_nos': { + 'Customer Issue': {'fields':['serial_no']}, + 'Delivery Note': {'delivery_note_details':['serial_no'],'delivery_note_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': {'rv_details':['serial_no']}, + 'Stock Entry': {'stock_entry_details':['serial_no']}, + 'Stock Ledger Entry': {'fields':['serial_no']} + }, + 'item_groups_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': {'pv_details':['item_group']}, + 'Quotation': {'quotation_details':['item_group']}, + 'Receivable Voucher': {'rv_details':['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'],'delivery_note_packing_details':['page_break']}, + 'Indent': {'indent_details':['page_break']}, + 'Purchase Order': {'po_details':['page_break']}, + 'Purchase Receipt': {'purchase_receipt_details':['page_break']}, + 'Purchase Voucher': {'pv_details':['page_break']}, + 'Quotation': {'quotation_details':['page_break']}, + 'Receivable Voucher': {'rv_details':['page_break']}, + 'Sales Order': {'sales_order_details':['page_break']} + }, + 'multi_currency': { + 'Delivery Note': {'fields':['currency','conversion_rate']}, + 'Payable Voucher': {'fields':['currency','conversion_rate']}, + 'POS Setting': {'fields':['currency','conversion_rate']}, + 'Purchase Order': {'fields':['currency','conversion_rate']}, + 'Purchase Receipt': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Receivable Voucher': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Item': {'ref_rate_details':['currency']}, + 'Sales BOM': {'fields':['currency']}, + 'Sales Order': {'fields':['currency','conversion_rate']}, + 'Supplier Quotation': {'fields':['currency','conversion_rate']} + }, + 'exports': { + 'Delivery Note': {'fields':['currency','conversion_rate','Note','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','export_amount','export_rate',]}, + 'POS Setting': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Receivable Voucher': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Item': {'ref_rate_details':['currency']}, + 'Sales BOM': {'fields':['currency']}, + 'Sales Order': {'fields':['currency','conversion_rate']}, + 'Supplier Quotation': {'fields':['currency','conversion_rate']} + }, + 'imports': { + 'Payable Voucher': {'fields':['currency','conversion_rate']}, + 'Purchase Order': {'fields':['currency','conversion_rate']}, + 'Purchase Receipt': {'fields':['currency','conversion_rate']}, + 'Receivable Voucher': {'fields':['currency','conversion_rate']}, + 'Supplier Quotation': {'fields':['currency','conversion_rate']} + } + +} + +$(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 + { + for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]) + if(cur_frm.fields_dict[fort]) + cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false); + else + alert('Grid "'+fort+'" does not exists'); + } + } + } + } + } +}) From d1a2cea37661f1c4e64e3ca9e0888f723da03ca8 Mon Sep 17 00:00:00 2001 From: Brahma K Date: Tue, 30 Aug 2011 09:33:29 +0530 Subject: [PATCH 03/13] Feature Setup added --- startup/startup.js | 706 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 706 insertions(+) create mode 100644 startup/startup.js diff --git a/startup/startup.js b/startup/startup.js new file mode 100644 index 0000000000..2e5b987fd3 --- /dev/null +++ b/startup/startup.js @@ -0,0 +1,706 @@ +if(user == 'Guest'){ + $dh(page_body.left_sidebar); +} + +var current_module; +var is_system_manager = 0; +var module_content_dict = {}; +var user_full_nm = {}; + +// check if session user is system manager +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); + $dh(page_body.wntoolbar); + $dh(page_body.footer); + return; + } + + if(user=='Guest' && !get_url_arg('akey')) { + if(pscript.is_erpnext_saas) { + window.location.href = 'https://www.erpnext.com'; + return; + } + } + + // page structure + // -------------- + $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(); + + // border to the body + // ------------------ + $dh(page_body.footer); + + // for logout and payment + var callback = function(r,rt) { + if(r.message){ + login_file = 'http://' + r.message; + } + else if(pscript.is_erpnext_saas) { + login_file = 'https://www.erpnext.com'; + } + // setup toolbar + pscript.startup_setup_toolbar(); + } + $c_obj('Home Control', 'get_login_url', '', callback); +} + +// ==================================================================== + +pscript.startup_make_sidebar = function() { + $y(page_body.left_sidebar, {width:(100/6)+'%', paddingTop:'8px'}); + + 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) + +} + +// ==================================================================== + +pscript.startup_setup_toolbar = function() { + var menu_tab = page_body.wntoolbar.menu_table_right; + // Profile + // --------- + $td(menu_tab,0,0).innerHTML = ''+user_fullname+''; + + if(pscript.is_erpnext_saas){ + // Help + // -------------- + //var help_url = login_file + '#!helpdesk' + $td(menu_tab,0,1).innerHTML = 'Forum'; + + // Manage account + // -------------- + if(is_system_manager) { + $td(menu_tab,0,3).innerHTML = 'Billing'; + } + } + else{ + $dh($td(menu_tab,0,1)); + $dh($td(menu_tab,0,3)); + } + + // Live Chat Help + // -------------- + $td(menu_tab,0,2).innerHTML = 'Chat'; + + // help + // ---- + var cell = menu_tab.rows[0].insertCell(3); + cell.innerHTML = 'Help'; + $y(cell, page_body.wntoolbar.right_table_style); + +} + +// chart of accounts +// ==================================================================== +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); + } + else if(nm == 'Accounts Browser') + pscript.make_chart(chart_type); + } + loadpage(nm,call_back); +} + + +// Module Page +// ==================================================================== + +ModulePage = function(parent, module_name, module_label, help_page, callback) { + this.parent = parent; + + // add to current page + page_body.cur_page.module_page = this; + + this.wrapper = $a(parent,'div'); + this.module_name = module_name; + this.transactions = []; + this.page_head = new PageHeader(this.wrapper, module_label); + + if(help_page) { + 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(); } +} + + +// get plural +// ==================================================================== + +get_plural = function(str){ + if(str.charAt(str.length-1).toLowerCase() == 'y') return str.substr(0, str.length-1) + 'ies' + else return str + 's'; +} + +// 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(); }); + } + else{ + 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(); }); + } +} + +// ==================================================================== +startup_setup(); + +/* 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': {'rv_details':['adj_rate']}, + 'Sales Order': {'sale_order_details':['adj_rate']} + }, + 'brands': { + 'Delivery Note': {'delivery_note_details':['brand']}, + 'Enquiry': {'enquiry_details':['brand']}, + 'Indent': {'indent_details':['brand']}, + 'Item': {'fields':['brand']}, + 'Purchase Order': {'po_details':['brand']}, + 'Purchase Receipt': {'purchase_receipt_details':['brand']}, + 'Payable Voucher': {'pv_details':['brand']}, + 'Quotation': {'quotation_details':['brand']}, + 'Receivable Voucher': {'rv_details':['brand']}, + 'Sales BOM': {'fields':['new_item_brand']}, + 'Sales Order': {'sales_order_details':['brand']}, + 'Serial No': {'fields':['brand']} + }, + 'after_sale_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': {'rv_details':['batch_no']}, + 'Stock Entry': {'stock_entry_details':['batch_no']}, + 'Stock Ledger Entry': {'fields':['batch_no']} + }, + 'item_serial_nos': { + 'Customer Issue': {'fields':['serial_no']}, + 'Delivery Note': {'delivery_note_details':['serial_no'],'delivery_note_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': {'rv_details':['serial_no']}, + 'Stock Entry': {'stock_entry_details':['serial_no']}, + 'Stock Ledger Entry': {'fields':['serial_no']} + }, + 'item_groups_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': {'pv_details':['item_group']}, + 'Quotation': {'quotation_details':['item_group']}, + 'Receivable Voucher': {'rv_details':['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'],'delivery_note_packing_details':['page_break']}, + 'Indent': {'indent_details':['page_break']}, + 'Purchase Order': {'po_details':['page_break']}, + 'Purchase Receipt': {'purchase_receipt_details':['page_break']}, + 'Purchase Voucher': {'pv_details':['page_break']}, + 'Quotation': {'quotation_details':['page_break']}, + 'Receivable Voucher': {'rv_details':['page_break']}, + 'Sales Order': {'sales_order_details':['page_break']} + }, + 'multi_currency': { + 'Delivery Note': {'fields':['currency','conversion_rate']}, + 'Payable Voucher': {'fields':['currency','conversion_rate']}, + 'POS Setting': {'fields':['currency','conversion_rate']}, + 'Purchase Order': {'fields':['currency','conversion_rate']}, + 'Purchase Receipt': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Receivable Voucher': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Item': {'ref_rate_details':['currency']}, + 'Sales BOM': {'fields':['currency']}, + 'Sales Order': {'fields':['currency','conversion_rate']}, + 'Supplier Quotation': {'fields':['currency','conversion_rate']} + }, + 'exports': { + 'Delivery Note': {'fields':['currency','conversion_rate','Note','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','export_amount','export_rate',]}, + 'POS Setting': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Receivable Voucher': {'fields':['currency','conversion_rate']}, + 'Quotation': {'fields':['currency','conversion_rate']}, + 'Item': {'ref_rate_details':['currency']}, + 'Sales BOM': {'fields':['currency']}, + 'Sales Order': {'fields':['currency','conversion_rate']}, + 'Supplier Quotation': {'fields':['currency','conversion_rate']} + }, + 'imports': { + 'Payable Voucher': {'fields':['currency','conversion_rate']}, + 'Purchase Order': {'fields':['currency','conversion_rate']}, + 'Purchase Receipt': {'fields':['currency','conversion_rate']}, + 'Receivable Voucher': {'fields':['currency','conversion_rate']}, + 'Supplier Quotation': {'fields':['currency','conversion_rate']} + } + +} + +$(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 + { + for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]) + if(cur_frm.fields_dict[fort]) + cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false); + else + alert('Grid "'+fort+'" does not exists'); + } + } + } + } + } +}) + +$(document).bind('form_refresh', function() { }) From 5ecb6933a8dafd313c7d0dac43b5fddd753691c1 Mon Sep 17 00:00:00 2001 From: Brahma K Date: Wed, 31 Aug 2011 09:02:01 +0530 Subject: [PATCH 04/13] added features to feature setup --- .../doctype/features_setup/features_setup.txt | 91 ++++++++++++-- startup/startup.js | 114 ++++++++++-------- 2 files changed, 143 insertions(+), 62 deletions(-) diff --git a/setup/doctype/features_setup/features_setup.txt b/setup/doctype/features_setup/features_setup.txt index 491cb8d203..f95a8e7793 100644 --- a/setup/doctype/features_setup/features_setup.txt +++ b/setup/doctype/features_setup/features_setup.txt @@ -5,28 +5,28 @@ { 'creation': '2011-08-25 16:53:56', 'docstatus': 0, - 'modified': '2011-08-29 13:16:51', + 'modified': '2011-08-30 14:27:18', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1314601410', + '_last_update': '1314692719', 'colour': 'White:FFF', 'doctype': 'DocType', 'issingle': 1, 'module': 'Setup', 'name': '__common__', + 'name_case': 'Title Case', 'section_style': 'Simple', 'show_in_menu': 1, - 'version': 6 + 'version': 9 }, # These values are common for all DocField { 'doctype': 'DocField', - 'fieldtype': 'Check', 'name': '__common__', 'parent': 'Features Setup', 'parentfield': 'fields', @@ -70,6 +70,7 @@ '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' }, @@ -79,6 +80,7 @@ 'description': 'Available in Delivery Note and Sales Order', 'doctype': 'DocField', 'fieldname': 'packing_details', + 'fieldtype': 'Check', 'label': 'Packing Detials' }, @@ -88,6 +90,7 @@ 'description': 'Available in Delivery Note, Quotation, Receivable Voucher, Sales Order', 'doctype': 'DocField', 'fieldname': 'discounts', + 'fieldtype': 'Check', 'label': 'Discounts' }, @@ -97,6 +100,7 @@ 'description': 'Availble in Delivery 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' }, @@ -104,20 +108,15 @@ { 'doctype': 'DocField', 'fieldname': 'after_sale_installations', + 'fieldtype': 'Check', 'label': 'After Sale Installations' }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'warehouses', - 'label': 'Warehouses' - }, - # DocField { 'doctype': 'DocField', 'fieldname': 'item_batch_nos', + 'fieldtype': 'Check', 'label': 'Item Batch Nos' }, @@ -125,6 +124,7 @@ { 'doctype': 'DocField', 'fieldname': 'item_searial_nos', + 'fieldtype': 'Check', 'label': 'Item Serial Nos' }, @@ -133,20 +133,85 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldname': 'page_break', + 'fieldtype': 'Check', 'label': 'Page Break' }, + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break' + }, + # DocField { 'doctype': 'DocField', 'fieldname': 'item_groups_in_groups', + 'fieldtype': 'Check', 'label': 'Item Groups in Details' }, # DocField { 'doctype': 'DocField', - 'fieldname': 'ref_rates', - 'label': 'Ref Rates' + 'fieldname': 'more_info', + 'fieldtype': 'Check', + 'label': 'More Info' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'exports', + 'fieldtype': 'Check', + 'label': 'Exports' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'imports', + 'fieldtype': 'Check', + 'label': 'Imports' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'item_advanced', + 'fieldtype': 'Check', + 'label': 'Item Advanced' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'sales_extras', + 'fieldtype': 'Check', + 'label': 'Sales Extras' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'quality', + 'fieldtype': 'Check', + 'label': 'Quality' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'manufacturing', + 'fieldtype': 'Check', + 'label': 'Manufacturing' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'pos', + 'fieldtype': 'Check', + 'label': 'Point of Sale' } ] \ No newline at end of file diff --git a/startup/startup.js b/startup/startup.js index 2e5b987fd3..046a320c43 100644 --- a/startup/startup.js +++ b/startup/startup.js @@ -571,19 +571,17 @@ pscript.feature_dict = { 'discounts': { 'Delivery Note': {'delivery_note_details':['adj_rate']}, 'Quotation': {'quotation_details':['adj_rate']}, - 'Receivable Voucher': {'rv_details':['adj_rate']}, - 'Sales Order': {'sale_order_details':['adj_rate']} + 'Receivable Voucher': {'entries':['adj_rate']}, + 'Sales Order': {'sales_order_details':['adj_rate']} }, 'brands': { 'Delivery Note': {'delivery_note_details':['brand']}, - 'Enquiry': {'enquiry_details':['brand']}, 'Indent': {'indent_details':['brand']}, 'Item': {'fields':['brand']}, 'Purchase Order': {'po_details':['brand']}, - 'Purchase Receipt': {'purchase_receipt_details':['brand']}, - 'Payable Voucher': {'pv_details':['brand']}, + 'Payable Voucher': {'entries':['brand']}, 'Quotation': {'quotation_details':['brand']}, - 'Receivable Voucher': {'rv_details':['brand']}, + 'Receivable Voucher': {'entries':['brand']}, 'Sales BOM': {'fields':['new_item_brand']}, 'Sales Order': {'sales_order_details':['brand']}, 'Serial No': {'fields':['brand']} @@ -597,13 +595,13 @@ pscript.feature_dict = { 'Purchase Receipt': {'purchase_receipt_details':['batch_no']}, 'QA Inspection Report': {'fields':['batch_no']}, 'Sales and Pruchase Return Wizard': {'return_details':['batch_no']}, - 'Receivable Voucher': {'rv_details':['batch_no']}, - 'Stock Entry': {'stock_entry_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'],'delivery_note_packing_details':['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']}, @@ -611,8 +609,8 @@ pscript.feature_dict = { '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': {'rv_details':['serial_no']}, - 'Stock Entry': {'stock_entry_details':['serial_no']}, + 'Receivable Voucher': {'entries':['serial_no']}, + 'Stock Entry': {'mtn_details':['serial_no']}, 'Stock Ledger Entry': {'fields':['serial_no']} }, 'item_groups_in_details': { @@ -623,9 +621,9 @@ pscript.feature_dict = { 'Manage Account': {'fields':['default_item_group']}, 'Purchase Order': {'po_details':['item_group']}, 'Purchase Receipt': {'purchase_receipt_details':['item_group']}, - 'Purchase Voucher': {'pv_details':['item_group']}, + 'Purchase Voucher': {'entries':['item_group']}, 'Quotation': {'quotation_details':['item_group']}, - 'Receivable Voucher': {'rv_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']}, @@ -634,48 +632,67 @@ pscript.feature_dict = { 'Territory': {'target_details':['item_group']} }, 'page_break': { - 'Delivery Note': {'delivery_note_details':['page_break'],'delivery_note_packing_details':['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': {'pv_details':['page_break']}, + 'Purchase Voucher': {'entries':['page_break']}, 'Quotation': {'quotation_details':['page_break']}, - 'Receivable Voucher': {'rv_details':['page_break']}, + 'Receivable Voucher': {'entries':['page_break']}, 'Sales Order': {'sales_order_details':['page_break']} }, - 'multi_currency': { - 'Delivery Note': {'fields':['currency','conversion_rate']}, - 'Payable Voucher': {'fields':['currency','conversion_rate']}, - 'POS Setting': {'fields':['currency','conversion_rate']}, - 'Purchase Order': {'fields':['currency','conversion_rate']}, - 'Purchase Receipt': {'fields':['currency','conversion_rate']}, - 'Quotation': {'fields':['currency','conversion_rate']}, - 'Receivable Voucher': {'fields':['currency','conversion_rate']}, - 'Quotation': {'fields':['currency','conversion_rate']}, - 'Item': {'ref_rate_details':['currency']}, - 'Sales BOM': {'fields':['currency']}, - 'Sales Order': {'fields':['currency','conversion_rate']}, - 'Supplier Quotation': {'fields':['currency','conversion_rate']} - }, 'exports': { - 'Delivery Note': {'fields':['currency','conversion_rate','Note','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','export_amount','export_rate',]}, - 'POS Setting': {'fields':['currency','conversion_rate']}, - 'Quotation': {'fields':['currency','conversion_rate']}, - 'Receivable Voucher': {'fields':['currency','conversion_rate']}, - 'Quotation': {'fields':['currency','conversion_rate']}, - 'Item': {'ref_rate_details':['currency']}, + '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':['currency','conversion_rate']}, - 'Supplier Quotation': {'fields':['currency','conversion_rate']} + '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']}, + 'Supplier Quotation': {'fields':['conversion_rate','currency']} }, 'imports': { - 'Payable Voucher': {'fields':['currency','conversion_rate']}, - 'Purchase Order': {'fields':['currency','conversion_rate']}, - 'Purchase Receipt': {'fields':['currency','conversion_rate']}, - 'Receivable Voucher': {'fields':['currency','conversion_rate']}, - 'Supplier Quotation': {'fields':['currency','conversion_rate']} + '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']} + }, + '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() { @@ -689,14 +706,13 @@ $(document).bind('form_refresh', function() { { if(fort=='fields') hide_field(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]); - else + else if(cur_frm.fields_dict[fort]) { for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]) - if(cur_frm.fields_dict[fort]) - cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false); - else - alert('Grid "'+fort+'" does not exists'); + 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'); } } } From 3c9a6a19e86a1eb80c5b9eb73a6c35ea93de6512 Mon Sep 17 00:00:00 2001 From: Brahma K Date: Wed, 31 Aug 2011 12:55:41 +0530 Subject: [PATCH 05/13] Feature Setup changes, related patch, Production Order 'produced_qty' label change, item->ref_rate_details->currency fills with defaut --- patches/patch.py | 8 ++- .../production_order/production_order.txt | 51 ++++--------------- .../doctype/features_setup/features_setup.txt | 10 ++-- startup/startup.js | 8 ++- stock/doctype/item/item.js | 6 +++ .../ref_rate_detail/ref_rate_detail.txt | 20 +++----- 6 files changed, 37 insertions(+), 66 deletions(-) diff --git a/patches/patch.py b/patches/patch.py index 6bb134febe..c8b04724d1 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -2,7 +2,7 @@ # ======================== -last_patch = 351 +last_patch = 352 #------------------------------------------- @@ -268,7 +268,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') @@ -277,3 +277,7 @@ def execute(patch_no): reload_doc('stock', 'doctype', 'item_customer_detail') elif patch_no == 351: reload_doc('home', 'page', 'dashboard') + elif patch_no == 352: + reload_doc('setup', 'doctype','feature_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'") 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/setup/doctype/features_setup/features_setup.txt b/setup/doctype/features_setup/features_setup.txt index f95a8e7793..ca0d2d44c6 100644 --- a/setup/doctype/features_setup/features_setup.txt +++ b/setup/doctype/features_setup/features_setup.txt @@ -5,14 +5,14 @@ { 'creation': '2011-08-25 16:53:56', 'docstatus': 0, - 'modified': '2011-08-30 14:27:18', + 'modified': '2011-08-31 09:31:39', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1314692719', + '_last_update': '1314763100', 'colour': 'White:FFF', 'doctype': 'DocType', 'issingle': 1, @@ -21,7 +21,7 @@ 'name_case': 'Title Case', 'section_style': 'Simple', 'show_in_menu': 1, - 'version': 9 + 'version': 11 }, # These values are common for all DocField @@ -107,7 +107,7 @@ # DocField { 'doctype': 'DocField', - 'fieldname': 'after_sale_installations', + 'fieldname': 'after_sales_installations', 'fieldtype': 'Check', 'label': 'After Sale Installations' }, @@ -146,7 +146,7 @@ # DocField { 'doctype': 'DocField', - 'fieldname': 'item_groups_in_groups', + 'fieldname': 'item_group_in_details', 'fieldtype': 'Check', 'label': 'Item Groups in Details' }, diff --git a/startup/startup.js b/startup/startup.js index 046a320c43..1ec66d519d 100644 --- a/startup/startup.js +++ b/startup/startup.js @@ -572,7 +572,7 @@ pscript.feature_dict = { 'Delivery Note': {'delivery_note_details':['adj_rate']}, 'Quotation': {'quotation_details':['adj_rate']}, 'Receivable Voucher': {'entries':['adj_rate']}, - 'Sales Order': {'sales_order_details':['adj_rate']} + 'Sales Order': {'sales_order_details':['adj_rate','ref_rate']} }, 'brands': { 'Delivery Note': {'delivery_note_details':['brand']}, @@ -586,7 +586,7 @@ pscript.feature_dict = { 'Sales Order': {'sales_order_details':['brand']}, 'Serial No': {'fields':['brand']} }, - 'after_sale_installations': { + 'after_sales_installations': { 'Delivery Note': {'fields':['installation_status','per_installed'],'delivery_note_details':['installed_qty']} }, 'item_batch_nos': { @@ -613,7 +613,7 @@ pscript.feature_dict = { 'Stock Entry': {'mtn_details':['serial_no']}, 'Stock Ledger Entry': {'fields':['serial_no']} }, - 'item_groups_in_details': { + 'item_group_in_details': { 'Delivery Note': {'delivery_note_details':['item_group']}, 'Enquiry': {'enquiry_details':['item_group']}, 'Indent': {'indent_details':['item_group']}, @@ -718,5 +718,3 @@ $(document).bind('form_refresh', function() { } } }) - -$(document).bind('form_refresh', function() { }) 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 From 30174d27dc6e20e55a9dbd60de961d8c91f7ff42 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 31 Aug 2011 15:03:01 +0530 Subject: [PATCH 06/13] sent bin qty vs serial no mail only if admin_email_notification --- stock/doctype/bin/bin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stock/doctype/bin/bin.py b/stock/doctype/bin/bin.py index cd2fa28049..65b86867b6 100644 --- a/stock/doctype/bin/bin.py +++ b/stock/doctype/bin/bin.py @@ -61,7 +61,8 @@ class DocType: sr_count = sql("select count(name) from `tabSerial No` where item_code = '%s' and warehouse = '%s' and status ='In Store' and docstatus != 2" % (self.doc.item_code, self.doc.warehouse))[0][0] if sr_count != self.doc.actual_qty: msg = "Actual Qty(%s) in Bin is mismatched with total number(%s) of serial no in store for item: '%s' and warehouse: '%s'" % (self.doc.actual_qty, sr_count, self.doc.item_code, self.doc.warehouse) - sendmail(['developer@iwebnotes.com'], sender='automail@webnotestech.com', subject='Serial No Count vs Bin Actual Qty', parts=[['text/plain', msg]]) + if getattr(webnotes.defs,'admin_email_notification',1): + sendmail(['developers@iwebnotes.com'], sender='automail@webnotestech.com', subject='Serial No Count vs Bin Actual Qty', parts=[['text/plain', msg]]) msgprint(msg, raise_exception=1) # -------------------------------- From 8e8c4820cbfe4ed36b175e86c232cc2868bcf2bc Mon Sep 17 00:00:00 2001 From: Brahma K Date: Wed, 31 Aug 2011 15:46:29 +0530 Subject: [PATCH 07/13] Changes in patch of feature setup and added description against each feature --- patches/patch.py | 6 + .../doctype/features_setup/features_setup.txt | 271 +++++++++++------- startup/startup.js | 6 +- 3 files changed, 180 insertions(+), 103 deletions(-) diff --git a/patches/patch.py b/patches/patch.py index c8b04724d1..a7c25118c3 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -281,3 +281,9 @@ def execute(patch_no): reload_doc('setup', 'doctype','feature_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() \ No newline at end of file diff --git a/setup/doctype/features_setup/features_setup.txt b/setup/doctype/features_setup/features_setup.txt index ca0d2d44c6..224d175a0b 100644 --- a/setup/doctype/features_setup/features_setup.txt +++ b/setup/doctype/features_setup/features_setup.txt @@ -5,14 +5,14 @@ { 'creation': '2011-08-25 16:53:56', 'docstatus': 0, - 'modified': '2011-08-31 09:31:39', + 'modified': '2011-08-31 15:05:53', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1314763100', + '_last_update': '1314783102', 'colour': 'White:FFF', 'doctype': 'DocType', 'issingle': 1, @@ -21,7 +21,7 @@ 'name_case': 'Title Case', 'section_style': 'Simple', 'show_in_menu': 1, - 'version': 11 + 'version': 16 }, # These values are common for all DocField @@ -65,6 +65,132 @@ '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', @@ -77,60 +203,67 @@ # DocField { 'colour': 'White:FFF', - 'description': 'Available in Delivery Note and Sales Order', + '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': 'packing_details', + 'fieldname': 'sales_extras', 'fieldtype': 'Check', - 'label': 'Packing Detials' + 'label': 'Sales Extras' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'label': 'Production' }, # DocField { 'colour': 'White:FFF', - 'description': 'Available in Delivery Note, Quotation, Receivable Voucher, Sales Order', + 'description': 'If you involve in manufacturing activity
\nEnables item Is Manufactured', 'doctype': 'DocField', - 'fieldname': 'discounts', + 'fieldname': 'manufacturing', 'fieldtype': 'Check', - 'label': 'Discounts' + 'label': 'Manufacturing' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break' }, # DocField { 'colour': 'White:FFF', - 'description': 'Availble in Delivery Note, Enuiry, Indent, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Receivable Voucher, Sales BOM, Sales Order, Serial No', + 'description': 'If you follow Quality Inspection
\nEnables item QA Required and QA No in Purchase Receipt', 'doctype': 'DocField', - 'fieldname': 'brands', + 'fieldname': 'quality', 'fieldtype': 'Check', - 'label': 'Brands' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'after_sales_installations', - 'fieldtype': 'Check', - 'label': 'After Sale Installations' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'item_batch_nos', - 'fieldtype': 'Check', - 'label': 'Item Batch Nos' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'item_searial_nos', - 'fieldtype': 'Check', - 'label': 'Item Serial Nos' + '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', @@ -145,73 +278,11 @@ # DocField { - 'doctype': 'DocField', - 'fieldname': 'item_group_in_details', - 'fieldtype': 'Check', - 'label': 'Item Groups in Details' - }, - - # DocField - { + 'colour': 'White:FFF', + 'description': 'Enables More Info. in all documents', 'doctype': 'DocField', 'fieldname': 'more_info', 'fieldtype': 'Check', 'label': 'More Info' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'exports', - 'fieldtype': 'Check', - 'label': 'Exports' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'imports', - 'fieldtype': 'Check', - 'label': 'Imports' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'item_advanced', - 'fieldtype': 'Check', - 'label': 'Item Advanced' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'sales_extras', - 'fieldtype': 'Check', - 'label': 'Sales Extras' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'quality', - 'fieldtype': 'Check', - 'label': 'Quality' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'manufacturing', - 'fieldtype': 'Check', - 'label': 'Manufacturing' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'pos', - 'fieldtype': 'Check', - 'label': 'Point of Sale' } ] \ No newline at end of file diff --git a/startup/startup.js b/startup/startup.js index 1ec66d519d..942f4effc5 100644 --- a/startup/startup.js +++ b/startup/startup.js @@ -648,13 +648,13 @@ pscript.feature_dict = { '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']}, - 'Supplier Quotation': {'fields':['conversion_rate','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']} + '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']} From 630f433741701a78bc5e0c3dd62e555672160238 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 31 Aug 2011 17:23:23 +0530 Subject: [PATCH 08/13] if source qty/amt zero, do not check for over delivery/bill --- selling/doctype/sales_common/sales_common.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py index acdca50f7b..78454ee7a8 100644 --- a/selling/doctype/sales_common/sales_common.py +++ b/selling/doctype/sales_common/sales_common.py @@ -576,7 +576,7 @@ class StatusUpdater: """ Checks if there is overflow condering a relaxation tolerance """ - + # check if overflow is within tolerance tolerance = self.get_tolerance_for(item['item_code']) overflow_percent = ((item[args['compare_field']] - item[args['compare_ref_field']]) / item[args['compare_ref_field']] * 100) @@ -606,12 +606,14 @@ class StatusUpdater: select item_code, `%(compare_ref_field)s`, `%(compare_field)s`, parenttype, parent from `tab%(target_dt)s` where `%(compare_ref_field)s` < `%(compare_field)s` and name="%(name)s" and docstatus=1 """ % args, as_dict=1) - if item: item = item[0] item['idx'] = d.idx item['compare_ref_field'] = args['compare_ref_field'] - if no_tolerance: + + if not item[args['compare_ref_field']]: + msgprint("As %(compare_ref_field)s for item: %(item_code)s in %(parenttype)s: %(parent)s is zero, system will not check over-delivery or over-billed" % item) + elif no_tolerance: item['reduce_by'] = item[args['compare_field']] - item[args['compare_ref_field']] msgprint(""" Row #%(idx)s: Max %(compare_ref_field)s allowed for Item %(item_code)s against From ef75761c42cb56d3b8eb383684b40c499079c723 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 2 Sep 2011 13:10:23 +0530 Subject: [PATCH 09/13] rerun packing list patch --- patches/patch.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 38b853ad1f..37bff245b9 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 351 +last_patch = 352 #------------------------------------------- @@ -274,3 +274,15 @@ def execute(patch_no): reload_doc('stock', 'doctype', 'item_customer_detail') elif patch_no == 351: reload_doc('home', 'page', 'dashboard') + elif patch_no == 352: + reload_doc('stock','doctype','delivery_note') + reload_doc('stock','doctype','item') + reload_doc('selling','doctype','quotation') + reload_doc('stock','Print Format','Delivery Note Packing List Wise') + + if not sql("select format from `tabDocFormat` where name = 'Delivery Note Packing List Wise' and parent = 'Delivery Note'"): + from webnotes.model.doc import addchild + dt_obj = get_obj('DocType', 'Delivery Note', with_children = 1) + ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1) + ch.format = 'Delivery Note Packing List Wise' + ch.save(1) From c63e62e8835b01f0dc167f30c03777d70c9a172a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 2 Sep 2011 14:44:15 +0530 Subject: [PATCH 10/13] reload salary manager --- patches/patch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 8c4c9dd113..14d7c926cb 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 352 +last_patch = 353 #------------------------------------------- @@ -288,3 +288,5 @@ def execute(patch_no): ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1) ch.format = 'Delivery Note Packing List Wise' ch.save(1) + elif patch_no == 353: + reload_doc('hr', 'doctype', 'salary_manager') From 8c2618c27accc2fab77c1c84df132cb55d0f4413 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 2 Sep 2011 17:43:32 +0530 Subject: [PATCH 11/13] delete salary control panel and reload salary slip --- patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 14d7c926cb..0c821842ae 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 353 +last_patch = 354 #------------------------------------------- @@ -290,3 +290,6 @@ def execute(patch_no): ch.save(1) elif patch_no == 353: reload_doc('hr', 'doctype', 'salary_manager') + elif patch_no == 354: + reload_doc('hr', 'doctype', 'salary_slip') + delete_doc('DocType', 'Salary Control Panel') From 343e10586b71957ea1a968ad64b2373303a3d411 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 2 Sep 2011 17:45:13 +0530 Subject: [PATCH 12/13] fixed sal slip email format --- hr/doctype/salary_slip/salary_slip.py | 69 ++++++++++++++------------- 1 file changed, 35 insertions(+), 34 deletions(-) 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 += "" + 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.") From e91fa64e58c0874ae50e89933e027f9beec0aa45 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 5 Sep 2011 14:21:46 +0530 Subject: [PATCH 13/13] fixed error in receivable voucher (fetching pos warehosue) --- accounts/doctype/receivable_voucher/receivable_voucher.py | 1 + 1 file changed, 1 insertion(+) diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.py b/accounts/doctype/receivable_voucher/receivable_voucher.py index 267ea9212f..f26374a382 100644 --- a/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -580,6 +580,7 @@ class DocType(TransactionBase): # Get Warehouse def get_warehouse(self): w = sql("select warehouse from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company)) + w = w and w[0][0] or '' if not w: ps = sql("select name, warehouse from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % self.doc.company) if not ps: