From bdebd71bd7b903ca5d698bc2cb677f13e7821941 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:21:40 +0530 Subject: [PATCH 01/11] default_print_format field added --- patches/patch.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index f5f88469dd2..c1e0d5f0433 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 352 +last_patch = 353 #------------------------------------------- @@ -290,3 +290,6 @@ 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('doctype', 'core', 'doctype') + sql("update `tabDocType` set default_print_format = 'Standard'") From d89d59bcb2a02492fc846a299d33ea65bd3babcb Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 15:57:51 +0530 Subject: [PATCH 02/11] patch fixed --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index c1e0d5f0433..5534848afc7 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -292,4 +292,4 @@ def execute(patch_no): ch.save(1) elif patch_no == 353: reload_doc('doctype', 'core', 'doctype') - sql("update `tabDocType` set default_print_format = 'Standard'") + sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") From 067559ca9d1f93dffcf9d85a4ca42f1b25bb1e12 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 16:04:55 +0530 Subject: [PATCH 03/11] fixed patch --- patches/patch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 5534848afc7..f89ffc8604c 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -291,5 +291,5 @@ def execute(patch_no): ch.format = 'Delivery Note Packing List Wise' ch.save(1) elif patch_no == 353: - reload_doc('doctype', 'core', 'doctype') + reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") From ce419c5f7c72803e9240eeac5ea2a8066137dbe0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 17:09:15 +0530 Subject: [PATCH 04/11] fixed escape seq error in dn --- stock/doctype/delivery_note/delivery_note.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index e5acd163a75..6d48914429c 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -443,8 +443,8 @@ class DocType(TransactionBase): # ========================================== def update_pack_nett_weight(self): for d in getlist(self.doclist, 'delivery_note_details'): - if d.item_name: - item_wt = sql("select nett_weight from `tabItem` where item_name = '%s'" % (d.item_name)) + if d.item_code: + item_wt = sql("select nett_weight from `tabItem` where name = %s", (d.item_code)) d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0 # ========================================== From 3465d969c0b95145d810c4cf3f9527079a868470 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 7 Sep 2011 17:50:51 +0530 Subject: [PATCH 05/11] print hide packing_list related flds in dn --- patches/patch.py | 5 +- stock/doctype/delivery_note/delivery_note.txt | 174 ++++-------------- .../delivery_note_detail.txt | 78 +++----- 3 files changed, 65 insertions(+), 192 deletions(-) diff --git a/patches/patch.py b/patches/patch.py index f89ffc8604c..07868bd836f 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 353 +last_patch = 354 #------------------------------------------- @@ -293,3 +293,6 @@ def execute(patch_no): elif patch_no == 353: reload_doc('core', 'doctype', 'doctype') sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") + elif patch_no == 354: + reload_doc('stock', 'doctype', 'delivery_note') + reload_doc('stock', 'doctype', 'delivery_note_detail') diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt index 1ab19e070c9..a3897ec17b4 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/stock/doctype/delivery_note/delivery_note.txt @@ -5,7 +5,7 @@ { 'creation': '2011-04-18 15:58:20', 'docstatus': 0, - 'modified': '2011-08-23 15:26:57', + 'modified': '2011-09-07 17:36:34', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,8 +21,9 @@ # These values are common for all DocType { - '_last_update': '1313665263', + '_last_update': '1314093417', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Transaction', 'in_create': 0, @@ -36,7 +37,7 @@ 'show_in_menu': 0, 'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed', 'tag_fields': 'billing_status', - 'version': 449 + 'version': 450 }, # These values are common for all DocFormat @@ -71,7 +72,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'Material User', 'submit': 1, @@ -84,7 +84,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Sales User', 'submit': 1, @@ -97,7 +96,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Material Master Manager', 'submit': 1, @@ -110,7 +108,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Material Manager', 'submit': 1, @@ -120,7 +117,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 1, 'role': 'All' }, @@ -128,21 +124,18 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 2, 'role': 'All' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 1 + 'doctype': 'DocFormat' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 2 + 'doctype': 'DocFormat' }, # DocField @@ -150,7 +143,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -160,7 +152,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'trigger': 'Client', @@ -174,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -190,7 +180,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 4, 'in_filter': 1, 'label': 'Customer', 'oldfieldname': 'customer', @@ -208,7 +197,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_address', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Shipping Address', 'options': 'Address', @@ -221,7 +209,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_person', 'fieldtype': 'Link', - 'idx': 6, 'in_filter': 1, 'label': 'Contact Person', 'options': 'Contact', @@ -234,7 +221,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 7, 'label': 'Customer Name', 'permlevel': 1 }, @@ -244,7 +230,6 @@ 'doctype': 'DocField', 'fieldname': 'address_display', 'fieldtype': 'Small Text', - 'idx': 8, 'label': 'Shipping Address', 'permlevel': 1 }, @@ -254,7 +239,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 9, 'label': 'Contact', 'permlevel': 1 }, @@ -264,7 +248,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_mobile', 'fieldtype': 'Text', - 'idx': 10, 'label': 'Mobile No', 'permlevel': 1 }, @@ -274,7 +257,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 11, 'label': 'Contact Email', 'permlevel': 1, 'print_hide': 1 @@ -284,7 +266,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 12, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -297,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 13, 'in_filter': 1, 'label': 'Voucher Date', 'no_copy': 1, @@ -316,7 +296,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 14, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -338,7 +317,6 @@ 'doctype': 'DocField', 'fieldname': 'per_billed', 'fieldtype': 'Currency', - 'idx': 15, 'in_filter': 1, 'label': '% Amount Billed', 'no_copy': 1, @@ -357,7 +335,6 @@ 'doctype': 'DocField', 'fieldname': 'per_installed', 'fieldtype': 'Currency', - 'idx': 16, 'in_filter': 1, 'label': '% Installed', 'no_copy': 1, @@ -368,13 +345,42 @@ 'search_index': 1 }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_no', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. No', + 'no_copy': 0, + 'oldfieldname': 'po_no', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_date', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. Date', + 'no_copy': 0, + 'oldfieldname': 'po_date', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + # DocField { 'allow_on_submit': 0, 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 17, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -390,7 +396,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 18, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -406,7 +411,6 @@ 'fieldname': 'territory', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 19, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', @@ -421,7 +425,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', - 'idx': 20, 'in_filter': 1, 'label': 'Customer Group', 'options': 'Customer Group', @@ -434,7 +437,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 21, 'label': 'Transporter Info', 'permlevel': 0 }, @@ -445,7 +447,6 @@ 'doctype': 'DocField', 'fieldname': 'transporter_name', 'fieldtype': 'Data', - 'idx': 22, 'label': 'Transporter Name', 'no_copy': 0, 'oldfieldname': 'transporter_name', @@ -464,7 +465,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_no', 'fieldtype': 'Data', - 'idx': 23, 'label': 'LR No', 'no_copy': 0, 'oldfieldname': 'lr_no', @@ -483,7 +483,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_date', 'fieldtype': 'Date', - 'idx': 24, 'label': 'LR Date', 'no_copy': 0, 'oldfieldname': 'lr_date', @@ -497,7 +496,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 25, 'permlevel': 0, 'width': '50%' }, @@ -507,7 +505,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_no', 'fieldtype': 'Data', - 'idx': 26, 'label': 'Challan No', 'oldfieldname': 'challan_no', 'oldfieldtype': 'Data', @@ -519,7 +516,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_date', 'fieldtype': 'Date', - 'idx': 27, 'label': 'Challan Date', 'oldfieldname': 'challan_date', 'oldfieldtype': 'Date', @@ -531,7 +527,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 28, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -544,7 +539,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_order_no', 'fieldtype': 'Link', - 'idx': 29, 'label': 'Sales Order No', 'no_copy': 0, 'oldfieldname': 'sales_order_no', @@ -559,7 +553,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 0, - 'idx': 30, 'label': 'Get Items', 'oldfieldtype': 'Button', 'options': 'pull_sales_order_details', @@ -574,7 +567,6 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 31, 'label': 'Price List', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', @@ -589,7 +581,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 32, 'permlevel': 0, 'width': '50%' }, @@ -601,7 +592,6 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 33, 'label': 'Currency', 'oldfieldname': 'currency', 'oldfieldtype': 'Select', @@ -619,7 +609,6 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 34, 'label': 'Conversion Rate', 'no_copy': 0, 'oldfieldname': 'conversion_rate', @@ -633,7 +622,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 35, 'permlevel': 0 }, @@ -642,7 +630,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_note_details', 'fieldtype': 'Table', - 'idx': 36, 'label': 'Delivery Note Details', 'no_copy': 0, 'oldfieldname': 'delivery_note_details', @@ -657,7 +644,6 @@ 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 37, 'label': 'Net Total*', 'no_copy': 0, 'oldfieldname': 'net_total', @@ -672,7 +658,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 38, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -683,7 +668,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 39, 'label': 'Note', 'oldfieldtype': 'HTML', 'options': 'NOTE :* In Base Currency', @@ -696,7 +680,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 40, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -709,7 +692,6 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 41, 'label': 'Charge', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -722,7 +704,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 42, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -735,7 +716,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 43, 'label': 'Other Charges', 'no_copy': 0, 'oldfieldname': 'other_charges', @@ -749,7 +729,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges_total', 'fieldtype': 'Currency', - 'idx': 44, 'label': 'Charges Total', 'oldfieldname': 'other_charges_total', 'oldfieldtype': 'Currency', @@ -762,7 +741,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 45, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -774,7 +752,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 46, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0 @@ -785,7 +762,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 47, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -797,7 +773,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 48, 'label': 'Grand Total', 'no_copy': 0, 'oldfieldname': 'grand_total', @@ -813,7 +788,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 49, 'label': 'Rounded Total', 'no_copy': 0, 'oldfieldname': 'rounded_total', @@ -830,7 +804,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 50, 'label': 'In Words', 'no_copy': 0, 'oldfieldname': 'in_words', @@ -844,7 +817,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 51, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -854,7 +826,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 52, 'label': 'Grand Total (Export)', 'no_copy': 0, 'oldfieldname': 'grand_total_export', @@ -870,7 +841,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 53, 'label': 'Rounded Total (Export)', 'no_copy': 0, 'oldfieldname': 'rounded_total_export', @@ -887,7 +857,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 54, 'label': 'In Words (Export)', 'no_copy': 0, 'oldfieldname': 'in_words_export', @@ -901,7 +870,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 55, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -912,7 +880,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 56, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -926,7 +893,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 57, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -939,7 +905,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 58, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -953,7 +918,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 59, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -966,7 +930,6 @@ 'description': 'Filling in Additional Information about the Delivery Note will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 60, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -979,7 +942,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 61, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -997,7 +959,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 62, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -1018,7 +979,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_date', 'fieldtype': 'Date', - 'idx': 63, 'in_filter': 1, 'label': 'Posting Date', 'no_copy': 1, @@ -1038,7 +998,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_time', 'fieldtype': 'Time', - 'idx': 64, 'in_filter': 0, 'label': 'Posting Time', 'oldfieldname': 'posting_time', @@ -1057,7 +1016,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 65, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -1076,7 +1034,6 @@ 'fieldname': 'to_warehouse', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 66, 'label': 'To Warehouse', 'no_copy': 1, 'oldfieldname': 'to_warehouse', @@ -1090,7 +1047,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 67, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -1102,7 +1058,6 @@ 'fieldname': 'billing_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 68, 'label': 'Billing Status', 'no_copy': 1, 'options': '\nNot Billed\nPartly Billed\nFully Billed', @@ -1116,51 +1071,17 @@ 'fieldname': 'installation_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 69, 'label': 'Installation Status', 'permlevel': 0, 'print_hide': 1 }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_no', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 70, - 'label': 'P.O. No', - 'no_copy': 0, - 'oldfieldname': 'po_no', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_date', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 71, - 'label': 'P.O. Date', - 'no_copy': 0, - 'oldfieldname': 'po_date', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - # DocField { 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 72, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Link', @@ -1174,7 +1095,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 73, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -1190,7 +1110,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 74, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -1206,7 +1125,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 75, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -1224,7 +1142,6 @@ 'doctype': 'DocField', 'fieldname': 'print_without_amount', 'fieldtype': 'Check', - 'idx': 76, 'label': 'Print Without Amount', 'oldfieldname': 'print_without_amount', 'oldfieldtype': 'Check', @@ -1238,7 +1155,6 @@ 'doctype': 'DocField', 'fieldname': 'instructions', 'fieldtype': 'Text', - 'idx': 77, 'label': 'Instructions', 'oldfieldname': 'instructions', 'oldfieldtype': 'Text', @@ -1253,7 +1169,6 @@ 'fieldname': 'cancel_reason', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 78, 'label': 'Cancel Reason', 'no_copy': 1, 'oldfieldname': 'cancel_reason', @@ -1269,7 +1184,6 @@ 'fieldname': 'excise_page', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 79, 'label': 'Excise Page Number', 'oldfieldname': 'excise_page', 'oldfieldtype': 'Data', @@ -1282,7 +1196,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 80, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1293,7 +1206,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 81, 'permlevel': 0, 'width': '50%' }, @@ -1303,7 +1215,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 82, 'label': 'Sales Partner', 'no_copy': 0, 'oldfieldname': 'sales_partner', @@ -1320,7 +1231,6 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 83, 'label': 'Commission Rate (%)', 'no_copy': 0, 'oldfieldname': 'commission_rate', @@ -1337,7 +1247,6 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 84, 'label': 'Total Commission', 'no_copy': 0, 'oldfieldname': 'total_commission', @@ -1351,7 +1260,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 85, 'permlevel': 0, 'width': '50%' }, @@ -1361,7 +1269,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 86, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1375,7 +1282,6 @@ 'doctype': 'DocField', 'fieldtype': 'Section Break', 'hidden': 1, - 'idx': 87, 'label': 'Supplier Details', 'oldfieldtype': 'Section Break', 'options': 'Simple', @@ -1388,7 +1294,6 @@ 'fieldname': 'supplier', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 88, 'label': 'Supplier', 'oldfieldname': 'supplier', 'oldfieldtype': 'Link', @@ -1403,7 +1308,6 @@ 'fieldname': 'supplier_address', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 89, 'label': 'Supplier Address', 'oldfieldname': 'supplier_address', 'oldfieldtype': 'Text', @@ -1418,7 +1322,6 @@ 'fieldname': 'purchase_receipt_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 90, 'label': 'Purchase Receipt No', 'no_copy': 1, 'oldfieldname': 'purchase_receipt_no', @@ -1435,7 +1338,6 @@ 'fieldname': 'purchase_order_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 91, 'label': 'Purchase Order', 'no_copy': 1, 'oldfieldname': 'purchase_order_no', @@ -1449,7 +1351,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 92, 'label': 'Packing List', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -1460,7 +1361,6 @@ 'doctype': 'DocField', 'fieldname': 'packing_details', 'fieldtype': 'Table', - 'idx': 93, 'label': 'Packing Details', 'oldfieldname': 'packing_details', 'oldfieldtype': 'Table', @@ -1474,7 +1374,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 94, 'label': 'Repair Delivery Note', 'oldfieldtype': 'Button', 'options': 'repair_delivery_note', @@ -1488,7 +1387,6 @@ 'fieldname': 'print_packing_slip', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 95, 'in_filter': 0, 'label': 'Print Packing Slip', 'permlevel': 0, diff --git a/stock/doctype/delivery_note_detail/delivery_note_detail.txt b/stock/doctype/delivery_note_detail/delivery_note_detail.txt index a8fea209c46..be7b98f771f 100644 --- a/stock/doctype/delivery_note_detail/delivery_note_detail.txt +++ b/stock/doctype/delivery_note_detail/delivery_note_detail.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:08:58', 'docstatus': 0, - 'modified': '2011-08-22 12:11:51', + 'modified': '2011-09-07 17:34:13', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,7 +21,7 @@ 'section_style': 'Tray', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 38 + 'version': 40 }, # These values are common for all DocField @@ -44,7 +44,6 @@ 'doctype': 'DocField', 'fieldname': 'item_code', 'fieldtype': 'Link', - 'idx': 1, 'in_filter': 1, 'label': 'Item Code', 'oldfieldname': 'item_code', @@ -63,7 +62,6 @@ 'doctype': 'DocField', 'fieldname': 'item_name', 'fieldtype': 'Data', - 'idx': 2, 'label': 'Item Name', 'oldfieldname': 'item_name', 'oldfieldtype': 'Data', @@ -78,7 +76,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Small Text', - 'idx': 3, 'label': 'Description', 'oldfieldname': 'description', 'oldfieldtype': 'Small Text', @@ -87,12 +84,26 @@ 'width': '300px' }, + # DocField + { + 'default': '0.00', + 'doctype': 'DocField', + 'fieldname': 'qty', + 'fieldtype': 'Currency', + 'label': 'Quantity', + 'oldfieldname': 'qty', + 'oldfieldtype': 'Currency', + 'permlevel': 0, + 'reqd': 1, + 'trigger': 'Client', + 'width': '100px' + }, + # DocField { 'doctype': 'DocField', 'fieldname': 'stock_uom', 'fieldtype': 'Data', - 'idx': 4, 'label': 'UOM', 'oldfieldname': 'stock_uom', 'oldfieldtype': 'Data', @@ -102,29 +113,12 @@ 'width': '50px' }, - # DocField - { - 'default': '0.00', - 'doctype': 'DocField', - 'fieldname': 'qty', - 'fieldtype': 'Currency', - 'idx': 5, - 'label': 'Quantity', - 'oldfieldname': 'qty', - 'oldfieldtype': 'Currency', - 'permlevel': 0, - 'reqd': 1, - 'trigger': 'Client', - 'width': '100px' - }, - # DocField { 'default': '0.00', 'doctype': 'DocField', 'fieldname': 'ref_rate', 'fieldtype': 'Currency', - 'idx': 6, 'label': 'Ref Rate', 'no_copy': 0, 'oldfieldname': 'ref_rate', @@ -142,7 +136,6 @@ 'doctype': 'DocField', 'fieldname': 'adj_rate', 'fieldtype': 'Float', - 'idx': 7, 'label': 'Discount (%)', 'oldfieldname': 'adj_rate', 'oldfieldtype': 'Float', @@ -157,7 +150,6 @@ 'doctype': 'DocField', 'fieldname': 'export_rate', 'fieldtype': 'Currency', - 'idx': 8, 'label': 'Rate', 'oldfieldname': 'export_rate', 'oldfieldtype': 'Currency', @@ -173,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'export_amount', 'fieldtype': 'Currency', - 'idx': 9, 'label': 'Amount', 'oldfieldname': 'export_amount', 'oldfieldtype': 'Currency', @@ -188,7 +179,6 @@ 'doctype': 'DocField', 'fieldname': 'base_ref_rate', 'fieldtype': 'Currency', - 'idx': 10, 'label': 'Ref Rate*', 'oldfieldname': 'base_ref_rate', 'oldfieldtype': 'Currency', @@ -203,7 +193,6 @@ 'doctype': 'DocField', 'fieldname': 'basic_rate', 'fieldtype': 'Currency', - 'idx': 11, 'label': 'Rate*', 'oldfieldname': 'basic_rate', 'oldfieldtype': 'Currency', @@ -219,7 +208,6 @@ 'doctype': 'DocField', 'fieldname': 'amount', 'fieldtype': 'Currency', - 'idx': 12, 'label': 'Amount*', 'oldfieldname': 'amount', 'oldfieldtype': 'Currency', @@ -234,7 +222,6 @@ 'doctype': 'DocField', 'fieldname': 'warehouse', 'fieldtype': 'Link', - 'idx': 13, 'label': 'Warehouse', 'oldfieldname': 'warehouse', 'oldfieldtype': 'Link', @@ -250,7 +237,6 @@ 'doctype': 'DocField', 'fieldname': 'serial_no', 'fieldtype': 'Text', - 'idx': 14, 'in_filter': 1, 'label': 'Serial No', 'no_copy': 1, @@ -266,7 +252,6 @@ 'doctype': 'DocField', 'fieldname': 'batch_no', 'fieldtype': 'Link', - 'idx': 15, 'label': 'Batch No', 'oldfieldname': 'batch_no', 'oldfieldtype': 'Link', @@ -280,7 +265,6 @@ 'doctype': 'DocField', 'fieldname': 'item_group', 'fieldtype': 'Link', - 'idx': 16, 'label': 'Item Group', 'oldfieldname': 'item_group', 'oldfieldtype': 'Link', @@ -294,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'brand', 'fieldtype': 'Link', - 'idx': 17, 'label': 'Brand Name', 'oldfieldname': 'brand', 'oldfieldtype': 'Link', @@ -309,9 +292,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_no', 'fieldtype': 'Data', - 'idx': 18, 'label': 'Pack No', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -319,9 +302,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_gross_wt', 'fieldtype': 'Float', - 'idx': 19, 'label': 'Pack Gross Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -329,10 +312,10 @@ 'doctype': 'DocField', 'fieldname': 'weight_uom', 'fieldtype': 'Link', - 'idx': 20, 'label': 'Weight UOM', 'options': 'UOM', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -340,9 +323,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_nett_wt', 'fieldtype': 'Float', - 'idx': 21, 'label': 'Pack Nett Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -350,7 +333,6 @@ 'doctype': 'DocField', 'fieldname': 'no_of_packs', 'fieldtype': 'Int', - 'idx': 22, 'label': 'No of Packs', 'oldfieldname': 'no_of_packs', 'oldfieldtype': 'Int', @@ -364,7 +346,6 @@ 'doctype': 'DocField', 'fieldname': 'pack_unit', 'fieldtype': 'Data', - 'idx': 23, 'label': 'Pack Unit', 'oldfieldname': 'pack_unit', 'oldfieldtype': 'Data', @@ -378,7 +359,6 @@ 'doctype': 'DocField', 'fieldname': 'installed_qty', 'fieldtype': 'Currency', - 'idx': 24, 'label': 'Installed Qty', 'no_copy': 1, 'oldfieldname': 'installed_qty', @@ -393,7 +373,6 @@ 'doctype': 'DocField', 'fieldname': 'actual_qty', 'fieldtype': 'Currency', - 'idx': 25, 'label': 'Available Qty at Warehouse', 'no_copy': 1, 'oldfieldname': 'actual_qty', @@ -408,7 +387,6 @@ 'doctype': 'DocField', 'fieldname': 'billed_amt', 'fieldtype': 'Currency', - 'idx': 26, 'label': 'Billed Amt', 'no_copy': 1, 'permlevel': 1, @@ -423,7 +401,6 @@ 'fieldname': 'prevdoc_docname', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 27, 'in_filter': 1, 'label': 'Against Document No', 'no_copy': 1, @@ -441,7 +418,6 @@ 'fieldname': 'prevdoc_doctype', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 28, 'in_filter': 1, 'label': 'Document Type', 'oldfieldname': 'prevdoc_doctype', @@ -458,7 +434,6 @@ 'fieldname': 'prevdoc_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 29, 'in_filter': 1, 'label': 'Against Document Date', 'oldfieldname': 'prevdoc_date', @@ -473,7 +448,6 @@ 'fieldname': 'prevdoc_detail_docname', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 30, 'in_filter': 1, 'label': 'Against Document Detail No', 'oldfieldname': 'prevdoc_detail_docname', @@ -490,7 +464,6 @@ 'fieldname': 'item_tax_rate', 'fieldtype': 'Small Text', 'hidden': 1, - 'idx': 31, 'label': 'Item Tax Rate', 'oldfieldname': 'item_tax_rate', 'oldfieldtype': 'Small Text', @@ -504,7 +477,6 @@ 'doctype': 'DocField', 'fieldname': 'page_break', 'fieldtype': 'Check', - 'idx': 32, 'label': 'Page Break', 'oldfieldname': 'page_break', 'oldfieldtype': 'Check', From 4b8c84db9ada4912e518deb56a79079c455b4fb8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 11:50:45 +0530 Subject: [PATCH 06/11] removed single quote from sql query in auth_control and fixes in company renaming --- .../authorization_control.py | 332 +++++++++--------- setup/doctype/company/company.py | 5 +- 2 files changed, 169 insertions(+), 168 deletions(-) diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py index 4036ecf5944..cce90422e10 100644 --- a/setup/doctype/authorization_control/authorization_control.py +++ b/setup/doctype/authorization_control/authorization_control.py @@ -18,179 +18,177 @@ convert_to_lists = webnotes.conn.convert_to_lists from utilities.transaction_base import TransactionBase class DocType(TransactionBase): - def __init__(self, d, dl): - self.doc, self.doclist = d, dl + def __init__(self, d, dl): + self.doc, self.doclist = d, dl - # Get Names of all Approving Users and Roles - # ------------------------------------------- - def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): - amt_list, appr_users, appr_roles = [], [], [] - users, roles = '','' - if det: - for x in det: - amt_list.append(flt(x[0])) - max_amount = max(amt_list) - - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and company = '%s' %s" % (doctype_name, flt(max_amount), total, based_on, company, condition)) - if not app_dtl: - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and ifnull(company,'') = '' %s" % (doctype_name, flt(max_amount), total, based_on, condition)) - for d in app_dtl: - if(d[0]): appr_users.append(d[0]) - if(d[1]): appr_roles.append(d[1]) - - if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']): - msg, add_msg = '','' - if max_amount: - dcc = TransactionBase().get_company_currency(self.doc.company) - if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) - elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) - elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') - - if appr_users: add_msg = "Users : "+cstr(appr_users) - if appr_roles: add_msg = "Roles : "+cstr(appr_roles) - if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) - msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) - raise Exception + # Get Names of all Approving Users and Roles + # ------------------------------------------- + def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): + amt_list, appr_users, appr_roles = [], [], [] + users, roles = '','' + if det: + for x in det: + amt_list.append(flt(x[0])) + max_amount = max(amt_list) + + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s", (doctype_name, flt(max_amount), total, based_on, company, condition)) + if not app_dtl: + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s", (doctype_name, flt(max_amount), total, based_on, condition)) + for d in app_dtl: + if(d[0]): appr_users.append(d[0]) + if(d[1]): appr_roles.append(d[1]) + + if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']): + msg, add_msg = '','' + if max_amount: + dcc = TransactionBase().get_company_currency(self.doc.company) + if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) + elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) + elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') + + if appr_users: add_msg = "Users : "+cstr(appr_users) + if appr_roles: add_msg = "Roles : "+cstr(appr_roles) + if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) + msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) + raise Exception - # Check if authorization rule is set specific to user - # ---------------------------------------------------- - def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): - chk = 1 - add_cond1,add_cond2 = '','' - if based_on == 'Itemwise Discount': - add_cond1 += " and master_name = '"+cstr(item)+"'" - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond1)) - if not itemwise_exists: - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond1)) - if itemwise_exists: - self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) - chk = 0 - if chk == 1: - if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond2)) - if not appr: - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond2)) - self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) - - - # Bifurcate Authorization based on type - # -------------------------------------- - def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): - add_cond = '' - auth_value = av_dis - if val == 1: add_cond += " and system_user = '"+session['user']+"'" - elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") - else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" - if based_on == 'Grand Total': auth_value = total - elif based_on == 'Customerwise Discount': - if doc_obj: - if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer - else: customer = doc_obj.doc.customer_name - add_cond = " and master_name = '"+cstr(customer)+"'" - if based_on == 'Itemwise Discount': - if doc_obj: - for t in getlist(doc_obj.doclist, doc_obj.fname): - self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) - else: - self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) + # Check if authorization rule is set specific to user + # ---------------------------------------------------- + def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): + chk = 1 + add_cond1,add_cond2 = '','' + if based_on == 'Itemwise Discount': + add_cond1 += " and master_name = '"+cstr(item)+"'" + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond1)) + if not itemwise_exists: + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond1)) + if itemwise_exists: + self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) + chk = 0 + if chk == 1: + if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond2)) + if not appr: + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond2)) + self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) + + + # Bifurcate Authorization based on type + # -------------------------------------- + def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): + add_cond = '' + auth_value = av_dis + if val == 1: add_cond += " and system_user = '"+session['user']+"'" + elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") + else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" + if based_on == 'Grand Total': auth_value = total + elif based_on == 'Customerwise Discount': + if doc_obj: + if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer + else: customer = doc_obj.doc.customer_name + add_cond = " and master_name = '"+cstr(customer)+"'" + if based_on == 'Itemwise Discount': + if doc_obj: + for t in getlist(doc_obj.doclist, doc_obj.fname): + self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) + else: + self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) - # Check Approving Authority for transactions other than expense voucher and Appraisal - # ------------------------- - def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): - if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' - elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' - av_dis = 0 - if doc_obj: - ref_rate, basic_rate = 0, 0 - for d in getlist(doc_obj.doclist, doc_obj.fname): - if d.base_ref_rate and d.basic_rate: - ref_rate += flt(d.base_ref_rate) - basic_rate += flt(d.basic_rate) - if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) + # Check Approving Authority for transactions other than expense voucher and Appraisal + # ------------------------- + def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): + if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' + elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' + av_dis = 0 + if doc_obj: + ref_rate, basic_rate = 0, 0 + for d in getlist(doc_obj.doclist, doc_obj.fname): + if d.base_ref_rate and d.basic_rate: + ref_rate += flt(d.base_ref_rate) + basic_rate += flt(d.basic_rate) + if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) - final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] - # Individual User - # ================ - # Check for authorization set for individual user - - based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = '%s' and system_user = '%s' and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, session['user'], company))] - - for d in based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company) - - # Remove user specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # Specific Role - # =============== - # Check for authorization set on particular roles - #based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and docstatus != 2" %(doctype_name, "('"+"','".join(session['data']['profile']['roles'])+"')", "('"+"','".join(final_based_on)+"')"))] - based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, "('"+"','".join(webnotes.user.get_roles())+"')", "('"+"','".join(final_based_on)+"')",company))] - for d in based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) - - # Remove role specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # Global Rule - # ============= - # Check for global authorization - for g in final_based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) - - #======================================================================================================================== - # payroll related check - def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): - val_lst =[] - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) - if not val: - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount)) + final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] + # Individual User + # ================ + # Check for authorization set for individual user + + based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = %s and system_user = %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, session['user'], company))] + + for d in based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company) + + # Remove user specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # Specific Role + # =============== + # Check for authorization set on particular roles + based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = %s and system_role IN %s and based_on IN %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, "('"+"','".join(webnotes.user.get_roles())+"')", "('"+"','".join(final_based_on)+"')",company))] + for d in based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) + + # Remove role specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # Global Rule + # ============= + # Check for global authorization + for g in final_based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) + + #======================================================================================================================== + # payroll related check + def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): + val_lst =[] + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) + if not val: + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount)) - - if val: - val_lst = [y[0] for y in val] - else: - val_lst.append(0) - - max_val = max(val_lst) - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) + if val: + val_lst = [y[0] for y in val] + else: + val_lst.append(0) + + max_val = max(val_lst) + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) - return rule - - #--------------------------------------------------------------------------------------------------------------------- - # related to payroll module only - def get_approver_name(self, doctype_name, total, doc_obj=''): - app_user=[] - app_specific_user =[] - rule ={} - - if doc_obj: - if doctype_name == 'Expense Voucher': - rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) - elif doctype_name == 'Appraisal': - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) - - if rule: - for m in rule: - if m['to_emp'] or m['to_designation']: - if m['approving_user']: - app_specific_user.append(m['approving_user']) - elif m['approving_role']: - user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] - for x in user_lst: - if not x in app_user: - app_user.append(x) - - if len(app_specific_user) >0: - return app_specific_user - else: - return app_user + return rule + + #--------------------------------------------------------------------------------------------------------------------- + # related to payroll module only + def get_approver_name(self, doctype_name, total, doc_obj=''): + app_user=[] + app_specific_user =[] + rule ={} + + if doc_obj: + if doctype_name == 'Expense Voucher': + rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) + elif doctype_name == 'Appraisal': + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) + + if rule: + for m in rule: + if m['to_emp'] or m['to_designation']: + if m['approving_user']: + app_specific_user.append(m['approving_user']) + elif m['approving_role']: + user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] + for x in user_lst: + if not x in app_user: + app_user.append(x) + + if len(app_specific_user) >0: + return app_specific_user + else: + return app_user diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py index 783a1585882..a2e333d41c3 100644 --- a/setup/doctype/company/company.py +++ b/setup/doctype/company/company.py @@ -248,4 +248,7 @@ class DocType: # on rename # --------- def on_rename(self,newdn,olddn): - sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn)) + sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn)) + sql("update `tabSingles` set value = %s where doctype='Manage Account' and field = 'default_company' and value = %s", (newdn, olddn)) + if get_defaults('company') == olddn: + set_default('company', newdn) From d030b52394f3362693a6772b8cc2fb8ab9c1057f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 13:51:58 +0530 Subject: [PATCH 07/11] fixed in auth control --- .../authorization_control/authorization_control.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py index cce90422e10..d0494301c80 100644 --- a/setup/doctype/authorization_control/authorization_control.py +++ b/setup/doctype/authorization_control/authorization_control.py @@ -32,9 +32,9 @@ class DocType(TransactionBase): amt_list.append(flt(x[0])) max_amount = max(amt_list) - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s", (doctype_name, flt(max_amount), total, based_on, company, condition)) + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company)) if not app_dtl: - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s", (doctype_name, flt(max_amount), total, based_on, condition)) + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on)) for d in app_dtl: if(d[0]): appr_users.append(d[0]) if(d[1]): appr_roles.append(d[1]) @@ -61,17 +61,17 @@ class DocType(TransactionBase): add_cond1,add_cond2 = '','' if based_on == 'Itemwise Discount': add_cond1 += " and master_name = '"+cstr(item)+"'" - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond1)) + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company)) if not itemwise_exists: - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond1)) + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on)) if itemwise_exists: self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) chk = 0 if chk == 1: if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" - appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s", (doctype_name, total, based_on, company, cond, add_cond2)) + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company)) if not appr: - appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s", (doctype_name, total, based_on, cond, add_cond2)) + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on)) self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) @@ -128,7 +128,7 @@ class DocType(TransactionBase): # Specific Role # =============== # Check for authorization set on particular roles - based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = %s and system_role IN %s and based_on IN %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, "('"+"','".join(webnotes.user.get_roles())+"')", "('"+"','".join(final_based_on)+"')",company))] + based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = %s and system_role IN (%s) and based_on IN (%s) and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'",company))] for d in based_on: self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) From 43032187712e80644034a0ac0be9723e9f5c4ee2 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 8 Sep 2011 14:47:35 +0530 Subject: [PATCH 08/11] print hide packing list related flds --- patches/patch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/patches/patch.py b/patches/patch.py index 07868bd836f..748296a8878 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 354 +last_patch = 355 #------------------------------------------- @@ -296,3 +296,5 @@ def execute(patch_no): elif patch_no == 354: reload_doc('stock', 'doctype', 'delivery_note') reload_doc('stock', 'doctype', 'delivery_note_detail') + elif patch_no == 355: + 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'") From 00be94860b5f30f2c15cb9c559bb7d028c0eabc4 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 9 Sep 2011 13:13:06 +0530 Subject: [PATCH 09/11] some file checked out from master --- accounts/doctype/fiscal_year/fiscal_year.py | 4 ++-- patches/patch.py | 4 +++- selling/doctype/quotation/quotation.js | 9 +++++---- setup/doctype/manage_account/manage_account.py | 2 +- .../sales_browser_control/sales_browser_control.py | 4 ++-- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/accounts/doctype/fiscal_year/fiscal_year.py b/accounts/doctype/fiscal_year/fiscal_year.py index 6b2dfdedec1..48d7d91cde8 100644 --- a/accounts/doctype/fiscal_year/fiscal_year.py +++ b/accounts/doctype/fiscal_year/fiscal_year.py @@ -133,8 +133,8 @@ class DocType: # build dict p = { - 'debit': flt(entry[2]) - ,'credit':flt(entry[3]) + 'debit': entry[4]=='No' and flt(entry[2]) or 0 + ,'credit': entry[4]=='No' and flt(entry[3]) or 0 ,'opening': entry[4]=='Yes' and diff or 0 # end date conditino only if it is not opening diff --git a/patches/patch.py b/patches/patch.py index 748296a8878..3a297beb80a 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 355 +last_patch = 356 #------------------------------------------- @@ -298,3 +298,5 @@ def execute(patch_no): reload_doc('stock', 'doctype', 'delivery_note_detail') elif patch_no == 355: 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'") diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js index b3dcde681a3..0732e45dc6c 100644 --- a/selling/doctype/quotation/quotation.js +++ b/selling/doctype/quotation/quotation.js @@ -312,10 +312,11 @@ cur_frm.cscript.validate = function(doc,cdt,cdn){ //================ Last Quoted Price and Last Sold Price suggestion ====================== cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= function(doc, cdt, cdn) { var d = locals[cdt][cdn]; + var cond = (doc.order_type == 'Maintenance')? " and tabItem.is_service_item = 'Yes'" : " and tabItem.is_sales_item = 'Yes'" if(doc.customer) return repl("SELECT i.name,i.item_code,concat('Last quoted at - ',cast(quote_rate as char)) as quote_rate,concat('Last sold at - ',cast(sales_rate as char)) as sales_rate FROM\ (\ - select item_code,name from tabItem where tabItem.%(key)s like '%s'\ + select item_code,name from tabItem where tabItem.%(key)s like '%s' %(cond)s\ )i\ left join\ (\ @@ -336,7 +337,7 @@ cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= (\ select rd.item_code,max(voucher_date) as voucher_date from `tabRV Detail` rd, `tabReceivable Voucher` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s' group by rd.item_code\ )m where r.item_code=m.item_code and r.voucher_date=m.voucher_date\ - )s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer}); + )s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer, cond:cond}); else - return "SELECT name, item_code FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' ORDER BY tabItem.item_code DESC LIMIT 50"; -} \ No newline at end of file + return repl("SELECT name, item_code FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' %(cond)s ORDER BY tabItem.item_code DESC LIMIT 50", {cond:cond}); +} diff --git a/setup/doctype/manage_account/manage_account.py b/setup/doctype/manage_account/manage_account.py index a0ed2fadd23..651794fa16e 100644 --- a/setup/doctype/manage_account/manage_account.py +++ b/setup/doctype/manage_account/manage_account.py @@ -29,7 +29,7 @@ class DocType: set_default(defkey, defvalue) if defkey == 'fiscal_year': - ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", defvalue) + ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", cstr(defvalue)) ysd = ysd and ysd[0][0] or '' if ysd: set_default('year_start_date', ysd.strftime('%Y-%m-%d')) diff --git a/setup/doctype/sales_browser_control/sales_browser_control.py b/setup/doctype/sales_browser_control/sales_browser_control.py index d4c4a1316b9..e9f8242450b 100644 --- a/setup/doctype/sales_browser_control/sales_browser_control.py +++ b/setup/doctype/sales_browser_control/sales_browser_control.py @@ -131,7 +131,7 @@ class DocType: r = eval(args) - if r['lft'] == 0: + if r['lft'] == 0 and r['action'] != 'Create': n = sql("select lft,rgt from `tab%s` where name = '%s'"%(r['node_title'],r['nm'])) r['lft'] = n[0][0] r['rgt'] = n[0][1] @@ -212,4 +212,4 @@ class DocType: if res: msgprint("'%s' record is already exist."%(r['nm'])) return 'true' - return 'false' \ No newline at end of file + return 'false' From 40693e319001e2290047b415ce37ae0264edc552 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 9 Sep 2011 17:55:25 +0530 Subject: [PATCH 10/11] post_render in pv and AP report error solved --- accounts/doctype/payable_voucher/payable_voucher.js | 11 +++++++---- .../accounts_payable/accounts_payable.py | 6 +++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/accounts/doctype/payable_voucher/payable_voucher.js b/accounts/doctype/payable_voucher/payable_voucher.js index 4a566d373b5..e3b986d8a1d 100644 --- a/accounts/doctype/payable_voucher/payable_voucher.js +++ b/accounts/doctype/payable_voucher/payable_voucher.js @@ -20,12 +20,15 @@ cur_frm.cscript.onload = function(doc,dt,dn) { } if(doc.__islocal){ - if(doc.supplier) {cur_frm.cscript.supplier(doc,dt,dn)} - hide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); + hide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email']); } - +} - if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); + +//Onload post render +//------------------------ +cur_frm.cscript.onload_post_render = function(doc, dt, dn) { + if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn); } // Refresh diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.py b/accounts/search_criteria/accounts_payable/accounts_payable.py index 8c07b68b45e..44daddcf3c2 100644 --- a/accounts/search_criteria/accounts_payable/accounts_payable.py +++ b/accounts/search_criteria/accounts_payable/accounts_payable.py @@ -90,9 +90,13 @@ for r in res: # supplier type r.append(supp_type_dict.get(r[col_idx['Account']], '')) + if r[col_idx['Voucher Type']] == 'Payable Voucher': + r += pv_dict.get(r[col_idx['Voucher No']], ['', '', '']) + else: + r += ['', '', ''] + # if entry against Payable Voucher if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher': - r += pv_dict.get(r[col_idx['Voucher No']], ['', '', '']) cond = " and ifnull(against_voucher, '') = '%s'" % r[col_idx['Against Voucher']] # if entry against JV & and not adjusted within period From 270e4e201a6f60bef2dc2bd3438781d84f74899e Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 9 Sep 2011 17:59:20 +0530 Subject: [PATCH 11/11] post_render in pv and AP report error solved --- accounts/doctype/payable_voucher/payable_voucher.js | 11 +++++++---- .../accounts_payable/accounts_payable.py | 6 +++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/accounts/doctype/payable_voucher/payable_voucher.js b/accounts/doctype/payable_voucher/payable_voucher.js index 4a566d373b5..e3b986d8a1d 100644 --- a/accounts/doctype/payable_voucher/payable_voucher.js +++ b/accounts/doctype/payable_voucher/payable_voucher.js @@ -20,12 +20,15 @@ cur_frm.cscript.onload = function(doc,dt,dn) { } if(doc.__islocal){ - if(doc.supplier) {cur_frm.cscript.supplier(doc,dt,dn)} - hide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); + hide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email']); } - +} - if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); + +//Onload post render +//------------------------ +cur_frm.cscript.onload_post_render = function(doc, dt, dn) { + if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn); } // Refresh diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.py b/accounts/search_criteria/accounts_payable/accounts_payable.py index 8c07b68b45e..44daddcf3c2 100644 --- a/accounts/search_criteria/accounts_payable/accounts_payable.py +++ b/accounts/search_criteria/accounts_payable/accounts_payable.py @@ -90,9 +90,13 @@ for r in res: # supplier type r.append(supp_type_dict.get(r[col_idx['Account']], '')) + if r[col_idx['Voucher Type']] == 'Payable Voucher': + r += pv_dict.get(r[col_idx['Voucher No']], ['', '', '']) + else: + r += ['', '', ''] + # if entry against Payable Voucher if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher': - r += pv_dict.get(r[col_idx['Voucher No']], ['', '', '']) cond = " and ifnull(against_voucher, '') = '%s'" % r[col_idx['Against Voucher']] # if entry against JV & and not adjusted within period