From d0d9bdfe9004a5b79d2087821a82a8d198bd7198 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 8 Aug 2011 15:13:05 +0530 Subject: [PATCH 1/6] Half day validation in leave application --- hr/doctype/leave_application/leave_application.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/hr/doctype/leave_application/leave_application.js b/hr/doctype/leave_application/leave_application.js index 9fc1e428a8..1eda69fcc6 100755 --- a/hr/doctype/leave_application/leave_application.js +++ b/hr/doctype/leave_application/leave_application.js @@ -55,9 +55,6 @@ cur_frm.cscript.to_date = function(doc, dt, dn) { if(cint(doc.half_day) == 1 && cstr(doc.from_date) && doc.from_date != doc.to_date){ msgprint("To Date should be same as From Date for Half Day leave"); set_multiple(dt,dn,{to_date:doc.from_date}); - } - if(cint(doc.half_day) == 1){ - } calculate_total_days(doc, dt, dn); } From 8a80d61cc4b9332e126d76d6f463912d79c873c8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 10 Aug 2011 16:29:20 +0530 Subject: [PATCH 2/6] billiing status based on amount --- selling/doctype/sales_common/sales_common.py | 63 ++++++++++++-------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py index 7a1af22448..bc3468fe60 100644 --- a/selling/doctype/sales_common/sales_common.py +++ b/selling/doctype/sales_common/sales_common.py @@ -498,7 +498,7 @@ class StatusUpdater: - Validate over delivery From Receivable Voucher - - Update Billed Qty + - Update Billed Amt - Update Percent - Validate over billing @@ -526,23 +526,33 @@ class StatusUpdater: self.validate_qty({ 'source_dt' :'Delivery Note Detail', 'compare_field' :'delivered_qty', + 'compare_ref_field' :'qty', 'target_dt' :'Sales Order Detail', 'join_field' :'prevdoc_detail_docname' }) elif self.obj.doc.doctype=='Receivable Voucher': self.validate_qty({ 'source_dt' :'RV Detail', - 'compare_field' :'billed_qty', + 'compare_field' :'billed_amt', + 'compare_ref_field' :'amount', 'target_dt' :'Sales Order Detail', 'join_field' :'so_detail' }) + self.validate_qty({ + 'source_dt' :'RV Detail', + 'compare_field' :'billed_amt', + 'compare_ref_field' :'amount', + 'target_dt' :'Delivery Note Detail', + 'join_field' :'dn_detail' + }, no_tolerance =1) elif self.obj.doc.doctype=='Installation Note': self.validate_qty({ 'source_dt' :'Installation Item Details', 'compare_field' :'installed_qty', + 'compare_ref_field' :'qty', 'target_dt' :'Delivery Note Detail', 'join_field' :'dn_detail' - }, no_tolerance =1); + }, no_tolerance =1) def get_tolerance_for(self, item_code): @@ -569,22 +579,22 @@ class StatusUpdater: # check if overflow is within tolerance tolerance = self.get_tolerance_for(item['item_code']) - overflow_percent = ((item[args['compare_field']] - item['qty']) / item['qty'] * 100) + overflow_percent = ((item[args['compare_field']] - item[args['compare_ref_field']]) / item[args['compare_ref_field']] * 100) if overflow_percent - tolerance > 0.0001: - item['max_allowed'] = flt(item['qty'] * (100+tolerance)/100) + item['max_allowed'] = flt(item[args['compare_ref_field']] * (100+tolerance)/100) item['reduce_by'] = item[args['compare_field']] - item['max_allowed'] msgprint(""" - Row #%(idx)s: Max qty allowed for Item %(item_code)s against %(parenttype)s %(parent)s is %(max_allowed)s. + Row #%(idx)s: Max %(compare_ref_field)s allowed for Item %(item_code)s against %(parenttype)s %(parent)s is %(max_allowed)s. If you want to increase your overflow tolerance, please increase tolerance %% in Global Defaults or Item master. - Or, you must reduce the qty by %(reduce_by)s""" % item, raise_exception=1) + Or, you must reduce the %(compare_ref_field)s by %(reduce_by)s""" % item, raise_exception=1) def validate_qty(self, args, no_tolerance=None): """ - Updates qty at row level + Validates qty at row level """ # get unique transactions to update for d in self.obj.doclist: @@ -593,22 +603,23 @@ class StatusUpdater: # get all qty where qty > compare_field item = sql(""" - select item_code, qty, `%(compare_field)s`, parenttype, parent from `tab%(target_dt)s` - where qty < `%(compare_field)s` and name="%(name)s" and docstatus=1 + 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: - item['reduce_by'] = item[args['compare_field']] - item['qty'] + item['reduce_by'] = item[args['compare_field']] - item[args['compare_ref_field']] msgprint(""" - Row #%(idx)s: Max qty allowed for Item %(item_code)s against - %(parenttype)s %(parent)s is %(qty)s. + Row #%(idx)s: Max %(compare_ref_field)s allowed for Item %(item_code)s against + %(parenttype)s %(parent)s is """ % item + + cstr(item[args['compare_ref_field']]) + """. - You must reduce the qty by %(reduce_by)s""" % item, raise_exception=1) - + You must reduce the %(compare_ref_field)s by %(reduce_by)s""" % item, raise_exception=1) + else: self.check_overflow_with_tolerance(item, args) @@ -623,6 +634,7 @@ class StatusUpdater: 'target_dt' :'Sales Order Detail', 'target_parent_dt' :'Sales Order', 'target_parent_field' :'per_delivered', + 'target_ref_field' :'qty', 'source_dt' :'Delivery Note Detail', 'source_field' :'qty', 'join_field' :'prevdoc_detail_docname', @@ -633,12 +645,13 @@ class StatusUpdater: elif self.obj.doc.doctype=='Receivable Voucher': self.update_qty({ - 'target_field' :'billed_qty', + 'target_field' :'billed_amt', 'target_dt' :'Sales Order Detail', 'target_parent_dt' :'Sales Order', 'target_parent_field' :'per_billed', + 'target_ref_field' :'amount', 'source_dt' :'RV Detail', - 'source_field' :'qty', + 'source_field' :'amount', 'join_field' :'so_detail', 'percent_join_field' :'sales_order', 'status_field' :'billing_status', @@ -646,12 +659,13 @@ class StatusUpdater: }) self.update_qty({ - 'target_field' :'billed_qty', + 'target_field' :'billed_amt', 'target_dt' :'Delivery Note Detail', 'target_parent_dt' :'Delivery Note', 'target_parent_field' :'per_billed', + 'target_ref_field' :'amount', 'source_dt' :'RV Detail', - 'source_field' :'qty', + 'source_field' :'amount', 'join_field' :'dn_detail', 'percent_join_field' :'delivery_note', 'status_field' :'billing_status', @@ -664,6 +678,7 @@ class StatusUpdater: 'target_dt' :'Delivery Note Detail', 'target_parent_dt' :'Delivery Note', 'target_parent_field' :'per_installed', + 'target_ref_field' :'qty', 'source_dt' :'Installed Item Details', 'source_field' :'qty', 'join_field' :'prevdoc_detail_docname', @@ -694,7 +709,7 @@ class StatusUpdater: update `tab%(target_dt)s` set - %(target_field)s = (select sum(qty) from `tab%(source_dt)s` where `%(join_field)s`="%(detail_id)s" and (docstatus=1 %(cond)s)) + %(target_field)s = (select sum(%(source_field)s) from `tab%(source_dt)s` where `%(join_field)s`="%(detail_id)s" and (docstatus=1 %(cond)s)) where name="%(detail_id)s" """ % args) @@ -710,10 +725,10 @@ class StatusUpdater: `tab%(target_parent_dt)s` set %(target_parent_field)s = - (select sum(if(qty > ifnull(%(target_field)s, 0), %(target_field)s, qty))/sum(qty)*100 from `tab%(target_dt)s` where parent="%(name)s"), + (select sum(if(%(target_ref_field)s > ifnull(%(target_field)s, 0), %(target_field)s, %(target_ref_field)s))/sum(%(target_ref_field)s)*100 from `tab%(target_dt)s` where parent="%(name)s"), modified = now() - where - name="%(name)s" + where + name="%(name)s" """ % args) # update field From 76980b0e55ea4156f17cfc9524498ce55fc01d77 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 10 Aug 2011 16:35:25 +0530 Subject: [PATCH 3/6] update billed_amt, per billed and billing status based on amount --- patches/patch.py | 30 ++- selling/doctype/sales_order/sales_order.txt | 177 ++++++++++-------- stock/doctype/delivery_note/delivery_note.txt | 95 +++------- 3 files changed, 156 insertions(+), 146 deletions(-) diff --git a/patches/patch.py b/patches/patch.py index cd68b13e21..c4503f5444 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 337 +last_patch = 338 #------------------------------------------- @@ -1373,3 +1373,31 @@ def execute(patch_no): sp_acx[i+1] = '"'.join(sp_quot) html = "acx=".join(sp_acx) webnotes.conn.sql("""UPDATE tabItem SET description_html=%s WHERE name=%s""", (html, item)) + elif patch_no == 338: + # Patch for billing status based on amount + # reload so and dn + reload_doc('selling','doctype','sales_order') + reload_doc('stock','doctype','delivery_note') + + # delete billed_qty field + sql("delete from `tabDocField` where fieldname = 'billed_qty' and parent in ('Sales Order Detail', 'Delivery Note Detail')") + + # update billed amt in item table in so and dn + sql(""" update `tabSales Order Detail` so + set billed_amt = (select sum(amount) from `tabRV Detail` where `so_detail`= so.name and docstatus=1 and parent not like 'old%%'), modified = now()""") + + sql(""" update `tabDelivery Note Detail` dn + set billed_amt = (select sum(amount) from `tabRV Detail` where `dn_detail`= dn.name and docstatus=1 and parent not like 'old%%'), modified = now()""") + + # calculate % billed based on item table + sql(""" update `tabSales Order` so + set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabSales Order Detail` where parent = so.name), modified = now()""") + + sql(""" update `tabDelivery Note` dn + set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabDelivery Note Detail` where parent = dn.name), modified = now()""") + + # update billing status based on % billed + sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', + if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""") + sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', + if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""") diff --git a/selling/doctype/sales_order/sales_order.txt b/selling/doctype/sales_order/sales_order.txt index 69773ddf72..98833d17ce 100644 --- a/selling/doctype/sales_order/sales_order.txt +++ b/selling/doctype/sales_order/sales_order.txt @@ -5,15 +5,14 @@ { 'creation': '2010-08-08 17:09:21', 'docstatus': 0, - 'modified': '2011-06-27 16:05:56', + 'modified': '2011-08-09 17:06:09', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1309170956', - 'client_script': "cur_frm.add_fetch('customer','sales_person','sales_person');", + '_last_update': '1311621379', 'colour': 'White:FFF', 'doctype': 'DocType', 'document_type': 'Transaction', @@ -28,7 +27,7 @@ 'show_in_menu': 0, 'subject': 'From %(customer_name)s on %(transaction_date)s worth %(currency)s %(grand_total_export)s | %(per_delivered)s% delivered | %(per_billed)s% billed', 'tag_fields': 'delivery_status,billing_status', - 'version': 593 + 'version': 597 }, # These values are common for all DocField @@ -58,28 +57,23 @@ # DocPerm { - 'amend': 0, - 'cancel': 0, - 'create': 0, 'doctype': 'DocPerm', 'idx': 1, - 'permlevel': 1, - 'role': 'Sales Manager', - 'submit': 0, - 'write': 0 + 'permlevel': 0, + 'role': 'Production Manager' }, # DocPerm { - 'amend': 1, - 'cancel': 1, - 'create': 1, + 'amend': 0, + 'cancel': 0, + 'create': 0, 'doctype': 'DocPerm', 'idx': 2, - 'permlevel': 0, + 'permlevel': 1, 'role': 'Sales Manager', - 'submit': 1, - 'write': 1 + 'submit': 0, + 'write': 0 }, # DocPerm @@ -90,6 +84,19 @@ 'doctype': 'DocPerm', 'idx': 3, 'permlevel': 0, + 'role': 'Sales Manager', + 'submit': 1, + 'write': 1 + }, + + # DocPerm + { + 'amend': 1, + 'cancel': 1, + 'create': 1, + 'doctype': 'DocPerm', + 'idx': 4, + 'permlevel': 0, 'role': 'Sales User', 'submit': 1, 'write': 1 @@ -101,7 +108,7 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 4, + 'idx': 5, 'permlevel': 1, 'role': 'Sales User', 'submit': 0, @@ -111,7 +118,7 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 5, + 'idx': 6, 'match': 'customer_name', 'permlevel': 0, 'role': 'Customer' @@ -120,7 +127,7 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 6, + 'idx': 7, 'permlevel': 2, 'role': 'Accounts User', 'write': 1 @@ -132,7 +139,7 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 7, + 'idx': 8, 'permlevel': 0, 'role': 'Maintenance Manager', 'submit': 1, @@ -142,7 +149,7 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 8, + 'idx': 9, 'permlevel': 1, 'role': 'Maintenance Manager' }, @@ -153,7 +160,7 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 9, + 'idx': 10, 'permlevel': 0, 'role': 'Maintenance User', 'submit': 1, @@ -163,7 +170,7 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 10, + 'idx': 11, 'permlevel': 1, 'role': 'Maintenance User' }, @@ -204,7 +211,7 @@ 'no_copy': 1, 'oldfieldname': 'naming_series', 'oldfieldtype': 'Select', - 'options': 'SO\nSO/10-11/', + 'options': 'PI/2011/\nSO\nSO/10-11/\nSO1112', 'permlevel': 0, 'print_hide': 1, 'reqd': 1 @@ -504,7 +511,7 @@ 'fieldtype': 'Currency', 'idx': 23, 'in_filter': 1, - 'label': '% Qty Billed', + 'label': '% Amount Billed', 'no_copy': 1, 'oldfieldname': 'per_billed', 'oldfieldtype': 'Currency', @@ -605,6 +612,16 @@ 'width': '150px' }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'vehicle_detail', + 'fieldtype': 'Small Text', + 'idx': 30, + 'label': 'Vehicle Detail', + 'permlevel': 0 + }, + # DocField { 'colour': 'White:FFF', @@ -612,7 +629,7 @@ 'fieldname': 'quotation_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 30, + 'idx': 31, 'label': 'Quotation Date', 'no_copy': 0, 'oldfieldname': 'quotation_date', @@ -627,7 +644,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 31, + 'idx': 32, 'label': 'Pull Quotation Details', 'oldfieldtype': 'Button', 'options': 'pull_quotation_details', @@ -642,7 +659,7 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 32, + 'idx': 33, 'label': 'Price List', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', @@ -658,7 +675,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 33, + 'idx': 34, 'permlevel': 0, 'width': '50%' }, @@ -670,7 +687,7 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 34, + 'idx': 35, 'label': 'Currency', 'oldfieldname': 'currency', 'oldfieldtype': 'Select', @@ -689,7 +706,7 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 35, + 'idx': 36, 'label': 'Conversion Rate', 'oldfieldname': 'conversion_rate', 'oldfieldtype': 'Currency', @@ -704,7 +721,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 36, + 'idx': 37, 'permlevel': 0 }, @@ -715,7 +732,7 @@ 'doctype': 'DocField', 'fieldname': 'sales_order_details', 'fieldtype': 'Table', - 'idx': 37, + 'idx': 38, 'label': 'Sales Order Details', 'oldfieldname': 'sales_order_details', 'oldfieldtype': 'Table', @@ -729,7 +746,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 38, + 'idx': 39, 'label': 'Clear Table', 'oldfieldtype': 'Button', 'options': 'clear_sales_order_details', @@ -741,7 +758,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 39, + 'idx': 40, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -755,7 +772,7 @@ 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 40, + 'idx': 41, 'label': 'Net Total*', 'oldfieldname': 'net_total', 'oldfieldtype': 'Currency', @@ -770,7 +787,7 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 41, + 'idx': 42, 'label': 'Note1', 'oldfieldtype': 'HTML', 'options': 'NOTE : * In Base Currency', @@ -783,7 +800,7 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 42, + 'idx': 43, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -795,7 +812,7 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 43, + 'idx': 44, 'label': 'Select Charges Master', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -808,7 +825,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 44, + 'idx': 45, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -820,7 +837,7 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 45, + 'idx': 46, 'label': 'Other Charges', 'oldfieldname': 'other_charges', 'oldfieldtype': 'Table', @@ -832,7 +849,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 46, + 'idx': 47, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -845,7 +862,7 @@ 'doctype': 'DocField', 'fieldname': 'other_charges_total', 'fieldtype': 'Currency', - 'idx': 47, + 'idx': 48, 'label': 'Charges Total*', 'oldfieldname': 'other_charges_total', 'oldfieldtype': 'Currency', @@ -859,7 +876,7 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 48, + 'idx': 49, 'label': 'Grand Total*', 'oldfieldname': 'grand_total', 'oldfieldtype': 'Currency', @@ -873,7 +890,7 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 49, + 'idx': 50, 'label': 'OT Notes', 'oldfieldtype': 'HTML', 'options': 'NOTE : * In Base Currency', @@ -885,7 +902,7 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 50, + 'idx': 51, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0, @@ -897,7 +914,7 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 51, + 'idx': 52, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -909,7 +926,7 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 52, + 'idx': 53, 'label': 'Rounded Total', 'oldfieldname': 'rounded_total', 'oldfieldtype': 'Currency', @@ -925,7 +942,7 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 53, + 'idx': 54, 'label': 'In Words', 'oldfieldname': 'in_words', 'oldfieldtype': 'Data', @@ -938,7 +955,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 54, + 'idx': 55, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -950,7 +967,7 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 55, + 'idx': 56, 'label': 'Grand Total (Export)', 'oldfieldname': 'grand_total_export', 'oldfieldtype': 'Currency', @@ -965,7 +982,7 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 56, + 'idx': 57, 'label': 'Rounded Total (Export)', 'oldfieldname': 'rounded_total_export', 'oldfieldtype': 'Currency', @@ -981,7 +998,7 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 57, + 'idx': 58, 'label': 'In Words (Export)', 'oldfieldname': 'in_words_export', 'oldfieldtype': 'Data', @@ -995,7 +1012,7 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 58, + 'idx': 59, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1007,7 +1024,7 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 59, + 'idx': 60, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -1021,7 +1038,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 60, + 'idx': 61, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -1033,7 +1050,7 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 61, + 'idx': 62, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -1046,7 +1063,7 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 62, + 'idx': 63, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -1060,7 +1077,7 @@ 'description': 'Filling in additional information about the Sales Order will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 63, + 'idx': 64, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1071,7 +1088,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 64, + 'idx': 65, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1084,7 +1101,7 @@ 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 65, + 'idx': 66, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Select', @@ -1100,7 +1117,7 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 66, + 'idx': 67, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -1119,7 +1136,7 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 67, + 'idx': 68, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -1139,7 +1156,7 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 68, + 'idx': 69, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -1154,7 +1171,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 69, + 'idx': 70, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1167,7 +1184,7 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 70, + 'idx': 71, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -1183,7 +1200,7 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 71, + 'idx': 72, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -1198,7 +1215,7 @@ 'doctype': 'DocField', 'fieldname': 'note', 'fieldtype': 'Text', - 'idx': 72, + 'idx': 73, 'label': 'Note', 'oldfieldname': 'note', 'oldfieldtype': 'Text', @@ -1213,7 +1230,7 @@ 'doctype': 'DocField', 'fieldname': 'cancel_reason', 'fieldtype': 'Data', - 'idx': 73, + 'idx': 74, 'label': 'Cancel Reason', 'no_column': 0, 'no_copy': 1, @@ -1229,7 +1246,7 @@ 'fieldname': 'delivery_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 74, + 'idx': 75, 'label': 'Delivery Status', 'no_column': 0, 'no_copy': 1, @@ -1244,7 +1261,7 @@ 'fieldname': 'billing_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 75, + 'idx': 76, 'label': 'Billing Status', 'no_column': 0, 'no_copy': 1, @@ -1260,7 +1277,7 @@ 'doctype': 'DocField', 'fieldtype': 'Section Break', 'hidden': 0, - 'idx': 76, + 'idx': 77, 'label': 'Packing List', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1273,7 +1290,7 @@ 'doctype': 'DocField', 'fieldname': 'packing_details', 'fieldtype': 'Table', - 'idx': 77, + 'idx': 78, 'label': 'Packing Details', 'oldfieldname': 'packing_details', 'oldfieldtype': 'Table', @@ -1286,7 +1303,7 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 78, + 'idx': 79, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1300,7 +1317,7 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 79, + 'idx': 80, 'in_filter': 1, 'label': 'Sales Partner', 'oldfieldname': 'sales_partner', @@ -1318,7 +1335,7 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 80, + 'idx': 81, 'label': 'Commission Rate', 'oldfieldname': 'commission_rate', 'oldfieldtype': 'Currency', @@ -1333,7 +1350,7 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 81, + 'idx': 82, 'label': 'Total Commission', 'oldfieldname': 'total_commission', 'oldfieldtype': 'Currency', @@ -1347,7 +1364,7 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 82, + 'idx': 83, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1361,7 +1378,7 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 83, + 'idx': 84, 'label': 'Repair Sales Order', 'oldfieldtype': 'Button', 'options': 'repair_sales_order', diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt index 97280e9983..b77a6a5b88 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/stock/doctype/delivery_note/delivery_note.txt @@ -3,16 +3,16 @@ # These values are common in all dictionaries { - 'creation': '2010-08-08 17:08:57', + 'creation': '2011-04-18 15:58:20', 'docstatus': 0, - 'modified': '2011-06-27 16:42:01', + 'modified': '2011-08-09 17:10:45', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1309173122', + '_last_update': '1311621379', 'colour': 'White:FFF', 'doctype': 'DocType', 'document_type': 'Transaction', @@ -27,7 +27,7 @@ 'show_in_menu': 0, 'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed', 'tag_fields': 'billing_status', - 'version': 444 + 'version': 446 }, # These values are common for all DocField @@ -70,15 +70,15 @@ # DocPerm { - 'amend': 0, - 'cancel': 0, - 'create': 0, + 'amend': 1, + 'cancel': 1, + 'create': 1, 'doctype': 'DocPerm', 'idx': 2, - 'permlevel': 1, - 'role': 'Material User', - 'submit': 0, - 'write': 0 + 'permlevel': 0, + 'role': 'Sales User', + 'submit': 1, + 'write': 1 }, # DocPerm @@ -89,22 +89,22 @@ 'doctype': 'DocPerm', 'idx': 3, 'permlevel': 0, - 'role': 'Material Manager', + 'role': 'Material Master Manager', 'submit': 1, 'write': 1 }, # DocPerm { - 'amend': 0, - 'cancel': 0, - 'create': 0, + 'amend': 1, + 'cancel': 1, + 'create': 1, 'doctype': 'DocPerm', 'idx': 4, - 'permlevel': 1, + 'permlevel': 0, 'role': 'Material Manager', - 'submit': 0, - 'write': 0 + 'submit': 1, + 'write': 1 }, # DocPerm @@ -115,60 +115,25 @@ 'doctype': 'DocPerm', 'idx': 5, 'permlevel': 0, - 'role': 'Sales User', + 'role': 'Sales Manager', 'submit': 1, 'write': 1 }, # DocPerm { - 'amend': 0, - 'cancel': 0, - 'create': 0, 'doctype': 'DocPerm', 'idx': 6, 'permlevel': 1, - 'role': 'Sales User', - 'submit': 0, - 'write': 0 + 'role': 'All' }, # DocPerm { - 'cancel': 0, - 'create': 0, 'doctype': 'DocPerm', 'idx': 7, - 'permlevel': 0, - 'role': 'Accounts User', - 'submit': 0, - 'write': 0 - }, - - # DocPerm - { - 'doctype': 'DocPerm', - 'idx': 8, - 'permlevel': 1, - 'role': 'Accounts User' - }, - - # DocPerm - { - 'doctype': 'DocPerm', - 'idx': 9, - 'match': 'customer_name', - 'permlevel': 0, - 'role': 'Customer' - }, - - # DocPerm - { - 'doctype': 'DocPerm', - 'idx': 10, 'permlevel': 2, - 'role': 'All', - 'write': 1 + 'role': 'All' }, # DocField @@ -332,7 +297,7 @@ 'permlevel': 0, 'print_hide': 0, 'reqd': 1, - 'search_index': 0, + 'search_index': 1, 'width': '100px' }, @@ -352,7 +317,7 @@ 'permlevel': 1, 'print_hide': 1, 'reqd': 1, - 'search_index': 0, + 'search_index': 1, 'width': '150px' }, @@ -366,13 +331,13 @@ 'fieldtype': 'Currency', 'idx': 15, 'in_filter': 1, - 'label': '% Qty Billed', + 'label': '% Amount Billed', 'no_copy': 1, 'oldfieldname': 'per_billed', 'oldfieldtype': 'Currency', 'permlevel': 1, 'print_hide': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -391,7 +356,7 @@ 'oldfieldtype': 'Currency', 'permlevel': 1, 'print_hide': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -439,7 +404,7 @@ 'permlevel': 0, 'print_hide': 1, 'reqd': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -453,7 +418,7 @@ 'options': 'Customer Group', 'permlevel': 0, 'print_hide': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -1014,7 +979,7 @@ 'permlevel': 0, 'print_hide': 1, 'reqd': 1, - 'search_index': 0, + 'search_index': 1, 'width': '150px' }, @@ -1032,7 +997,7 @@ 'permlevel': 0, 'print_hide': 1, 'reqd': 1, - 'search_index': 0, + 'search_index': 1, 'width': '150px' }, From e35618bb218027296c6c4932b417707e26459f8e Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 11 Aug 2011 15:52:21 +0530 Subject: [PATCH 4/6] fixed bug of reserved_qty if sales bom exists for the item --- selling/doctype/sales_common/sales_common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py index bc3468fe60..931c994bf6 100644 --- a/selling/doctype/sales_common/sales_common.py +++ b/selling/doctype/sales_common/sales_common.py @@ -324,7 +324,7 @@ class DocType(TransactionBase): if self.has_sales_bom(d.item_code): for i in self.get_sales_bom_items(d.item_code): - il.append([warehouse, i[0], flt(flt(i[1])* qty), reserved_qty, i[2], d.batch_no, d.serial_no]) + il.append([warehouse, i[0], flt(flt(i[1])* qty), flt(flt(i[1])*reserved_qty), i[2], d.batch_no, d.serial_no]) else: il.append([warehouse, d.item_code, qty, reserved_qty, d.stock_uom, d.batch_no, d.serial_no]) return il From 89717292b787a50bfc69dab79d3005e154b1d433 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 12 Aug 2011 10:55:43 +0530 Subject: [PATCH 5/6] fixed get_server_values to make them utf-8 friendly --- accounts/doctype/account/account.js | 10 ----- accounts/doctype/cost_center/cost_center.py | 2 +- accounts/doctype/form_16a/form_16a.py | 2 +- .../journal_voucher/journal_voucher.py | 4 +- .../payable_voucher/payable_voucher.py | 10 ++--- .../receivable_voucher/receivable_voucher.py | 4 +- accounts/doctype/tds_payment/tds_payment.py | 2 +- .../purchase_common/purchase_common.py | 10 ++--- .../doctype/purchase_order/purchase_order.py | 12 ++---- .../supplier_quotation/supplier_quotation.py | 8 ++-- hr/doctype/appraisal/appraisal.py | 4 +- hr/doctype/attendance/attendance.py | 2 +- hr/doctype/employee/employee.py | 2 +- .../leave_allocation/leave_allocation.py | 2 +- .../salary_structure/salary_structure.py | 4 +- .../bill_of_materials/bill_of_materials.py | 6 +-- .../production_planning_tool.py | 2 +- projects/doctype/project/project.py | 4 +- projects/doctype/ticket/ticket.py | 6 +-- projects/doctype/timesheet/timesheet.py | 2 +- selling/doctype/enquiry/enquiry.py | 6 +-- .../installation_note/installation_note.py | 15 +------ selling/doctype/lead/lead.py | 2 +- selling/doctype/quotation/quotation.py | 13 ++---- selling/doctype/sales_common/sales_common.py | 42 +++++++++---------- selling/doctype/sales_order/sales_order.py | 7 ++-- .../doctype/email_settings/email_settings.py | 2 +- stock/doctype/delivery_note/delivery_note.py | 9 +--- stock/doctype/item/item.py | 2 +- .../purchase_receipt/purchase_receipt.py | 11 ++--- stock/doctype/sales_bom/sales_bom.py | 2 +- stock/doctype/stock_entry/stock_entry.py | 12 +++--- .../stock_uom_replace_utility.py | 2 +- .../doctype/customer_issue/customer_issue.py | 33 +-------------- .../maintenance_schedule.py | 19 ++------- .../maintenance_visit/maintenance_visit.py | 15 +------ 36 files changed, 95 insertions(+), 195 deletions(-) diff --git a/accounts/doctype/account/account.js b/accounts/doctype/account/account.js index 071bf57018..51cacdaf36 100644 --- a/accounts/doctype/account/account.js +++ b/accounts/doctype/account/account.js @@ -72,16 +72,6 @@ cur_frm.fields_dict['master_name'].get_query=function(doc){ else alert("Please select master type"); } -/* -// Get customer/supplier address -// ----------------------------------------- -cur_frm.cscript.master_name = function(doc,cdt,cdn){ - if(doc.master_name){ - get_server_fields('get_address','','',doc,cdt,cdn); - } -} -*/ - // parent account get query // ----------------------------------------- cur_frm.fields_dict['parent_account'].get_query = function(doc){ diff --git a/accounts/doctype/cost_center/cost_center.py b/accounts/doctype/cost_center/cost_center.py index 060225da0b..521712b1f9 100644 --- a/accounts/doctype/cost_center/cost_center.py +++ b/accounts/doctype/cost_center/cost_center.py @@ -31,7 +31,7 @@ class DocType: ret = { 'company_abbr' : abbr } - return cstr(ret) + return ret def validate(self): # Cost Center name must be unique diff --git a/accounts/doctype/form_16a/form_16a.py b/accounts/doctype/form_16a/form_16a.py index 292c52a2da..0bcef6b7a6 100644 --- a/accounts/doctype/form_16a/form_16a.py +++ b/accounts/doctype/form_16a/form_16a.py @@ -39,7 +39,7 @@ class DocType(TransactionBase): 'company_address': cstr(comp_det[0][0]), 'registration_details': cstr(comp_det[0][1]) } - return cstr(ret) + return ret # Get party details #------------------ diff --git a/accounts/doctype/journal_voucher/journal_voucher.py b/accounts/doctype/journal_voucher/journal_voucher.py index 4f5e67a79b..5942ca18ac 100644 --- a/accounts/doctype/journal_voucher/journal_voucher.py +++ b/accounts/doctype/journal_voucher/journal_voucher.py @@ -38,9 +38,9 @@ class DocType: args = eval(args) o_s = sql("select outstanding_amount from `tab%s` where name = '%s'" % (args['doctype'],args['docname'])) if args['doctype'] == 'Payable Voucher': - return cstr({'debit': o_s and flt(o_s[0][0]) or 0}) + return {'debit': o_s and flt(o_s[0][0]) or 0} if args['doctype'] == 'Receivable Voucher': - return cstr({'credit': o_s and flt(o_s[0][0]) or 0}) + return {'credit': o_s and flt(o_s[0][0]) or 0} #-------------------------------------------------------------------------------------------------------- # Create remarks diff --git a/accounts/doctype/payable_voucher/payable_voucher.py b/accounts/doctype/payable_voucher/payable_voucher.py index 0e930e32d4..e88066a176 100644 --- a/accounts/doctype/payable_voucher/payable_voucher.py +++ b/accounts/doctype/payable_voucher/payable_voucher.py @@ -48,14 +48,14 @@ class DocType(TransactionBase): ret['due_date'] = add_days(cstr(self.doc.posting_date), acc_head and cint(acc_head[0][1]) or 0) elif not acc_head: msgprint("%s does not have an Account Head in %s. You must first create it from the Supplier Master" % (self.doc.supplier, self.doc.company)) - return cstr(ret) + return ret def get_cust(self): ret = {} if self.doc.credit_to: ret['supplier'] = get_value('Account',self.doc.credit_to,'master_name') - return cstr(ret) + return ret # Get Default Cost Center and Expense Head from Item Master @@ -70,7 +70,7 @@ class DocType(TransactionBase): if not args['cost_center'] or args['cost_center'] == 'undefined': cost_center = sql("select cost_center from `tabItem` where name = '%s'" % args['item_code']) ret['cost_center'] = cost_center and cost_center[0][0] or '' - return cstr(ret) + return ret # Get Items based on PO or PR @@ -115,7 +115,7 @@ class DocType(TransactionBase): 'cost_center' : item_det and item_det[0]['cost_center'] or '', 'item_tax_rate' : str(t) } - return cstr(ret) + return ret # Advance Allocation # ------------------- @@ -139,7 +139,7 @@ class DocType(TransactionBase): def get_rate1(self,acc): rate = sql("select tax_rate from `tabAccount` where name='%s'"%(acc)) ret={'add_tax_rate' :rate and flt(rate[0][0]) or 0 } - return cstr(ret) + return ret # *************************** Server Utility Functions ***************************** diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.py b/accounts/doctype/receivable_voucher/receivable_voucher.py index cb62a65fdb..185b0b1dbc 100644 --- a/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -90,7 +90,7 @@ class DocType(TransactionBase): def get_debit_to(self): acc_head = self.get_customer_account() if acc_head: - return cstr({ 'debit_to' : acc_head }) + return { 'debit_to' : acc_head } # Set Due Date = Posting Date + Credit Days @@ -515,7 +515,7 @@ class DocType(TransactionBase): ret = { 'actual_qty' : actual_qty and flt(actual_qty[0]['actual_qty']) or 0 } - return cstr(ret) + return ret # Make GL Entries # ------------------------- diff --git a/accounts/doctype/tds_payment/tds_payment.py b/accounts/doctype/tds_payment/tds_payment.py index c91a269929..5079d04a53 100644 --- a/accounts/doctype/tds_payment/tds_payment.py +++ b/accounts/doctype/tds_payment/tds_payment.py @@ -34,7 +34,7 @@ class DocType: else: ret = { 'registration_details': cstr(comp_det[0][0])} - return cstr(ret) + return ret # Get default bank and tds account #------------------------------------ diff --git a/buying/doctype/purchase_common/purchase_common.py b/buying/doctype/purchase_common/purchase_common.py index fe8c8e69a7..29658cba48 100644 --- a/buying/doctype/purchase_common/purchase_common.py +++ b/buying/doctype/purchase_common/purchase_common.py @@ -84,7 +84,7 @@ class DocType(TransactionBase): # ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query) contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where supplier = '%s' and is_supplier = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1) ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or '' - return cstr(ret) + return ret else: msgprint("Supplier : %s does not exists" % (name)) raise Exception @@ -142,14 +142,14 @@ class DocType(TransactionBase): ret['purchase_rate'] = item and flt(item[0]['last_purchase_rate']) or 0 ret['import_rate'] = flt(item and flt(item[0]['last_purchase_rate']) or 0) / flt(obj.doc.fields.has_key('conversion_rate') and flt(obj.doc.conversion_rate) or 1) - return cstr(ret) + return ret # Get Available Qty at Warehouse def get_bin_details( self, arg = ''): arg = eval(arg) bin = sql("select projected_qty from `tabBin` where item_code = %s and warehouse = %s", (arg['item_code'], arg['warehouse']), as_dict=1) ret = { 'projected_qty' : bin and flt(bin[0]['projected_qty']) or 0 } - return str(ret) + return ret # Get UOM Details def get_uom_details(self, arg = ''): @@ -163,7 +163,7 @@ class DocType(TransactionBase): 'purchase_rate' : (lpr and flt(lpr[0]['last_purchase_rate']) * flt(uom[0]['conversion_factor'])) or 0 } - return str(ret) + return ret # get last purchase rate def get_last_purchase_rate( self, obj): @@ -522,7 +522,7 @@ class DocType(TransactionBase): 'rate' : rate and (rate[0]['account_type'] == 'Tax' and not arg['charge_type'] == 'Actual') and flt(rate[0]['tax_rate']) or 0 } #msgprint(ret) - return cstr(ret) + return ret diff --git a/buying/doctype/purchase_order/purchase_order.py b/buying/doctype/purchase_order/purchase_order.py index 7d9e1da03b..1a5d2d73e7 100644 --- a/buying/doctype/purchase_order/purchase_order.py +++ b/buying/doctype/purchase_order/purchase_order.py @@ -38,23 +38,17 @@ class DocType(TransactionBase): get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'PO Date') - # Client Trigger Functions - #---------------------------------------------------------------------------------------------------- - # Get Supplier Details - #def get_supplier_details(self, name = ''): - #return cstr(get_obj(dt='Purchase Common').get_supplier_details(name)) - # Get Item Details def get_item_details(self, arg =''): - return cstr(get_obj(dt='Purchase Common').get_item_details(self,arg)) + return get_obj(dt='Purchase Common').get_item_details(self,arg) # Get UOM Details def get_uom_details(self, arg = ''): - return cstr(get_obj(dt='Purchase Common').get_uom_details(arg)) + return get_obj(dt='Purchase Common').get_uom_details(arg) # get available qty at warehouse def get_bin_details(self, arg = ''): - return cstr(get_obj(dt='Purchase Common').get_bin_details(arg)) + return get_obj(dt='Purchase Common').get_bin_details(arg) # Pull Indent def get_indent_details(self): diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/buying/doctype/supplier_quotation/supplier_quotation.py index 0c659bc1d5..ac59430306 100755 --- a/buying/doctype/supplier_quotation/supplier_quotation.py +++ b/buying/doctype/supplier_quotation/supplier_quotation.py @@ -18,7 +18,7 @@ class DocType: 'supplier_name' : cd and cd[0][4] or '', 'supplier_address': cd and cd[0][5] or '' } - return cstr(ret) + return ret def get_rfq_details(self): self.doc.clear_table(self.doclist, 'supplier_quotation_details') @@ -28,12 +28,12 @@ class DocType: def update_approval_status(self): if not self.doc.approval_status or self.doc.approval_status == 'Not Approved': set(self.doc, 'approval_status','Approved') - return cstr(self.doc.approval_status) + return self.doc.approval_status elif self.doc.approval_status == 'Approved': pc_obj = get_obj('Purchase Common') pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Order', docname = self.doc.name, detail_doctype = 'PO Detail') set(self.doc, 'approval_status', 'Not Approved') - return cstr(self.doc.approval_status) + return self.doc.approval_status def validate_item_list(self): if not getlist(self.doclist, 'supplier_quotation_details'): @@ -101,4 +101,4 @@ class DocType: # Get Supplier Details # -------------------- def get_supplier_details(self, name = ''): - return cstr(get_obj('Purchase Common').get_supplier_details(name)) \ No newline at end of file + return get_obj('Purchase Common').get_supplier_details(name) \ No newline at end of file diff --git a/hr/doctype/appraisal/appraisal.py b/hr/doctype/appraisal/appraisal.py index 1731559ad9..e13f9f3630 100644 --- a/hr/doctype/appraisal/appraisal.py +++ b/hr/doctype/appraisal/appraisal.py @@ -26,7 +26,7 @@ class DocType: emp_nm = sql("select employee_name from `tabEmployee` where name=%s", self.doc.employee) emp_nm= emp_nm and emp_nm[0][0] or '' self.doc.employee_name = emp_nm - return cstr(emp_nm) + return emp_nm def fetch_kra(self): if not self.doc.kra_template: @@ -88,7 +88,7 @@ class DocType: if d.score: total = total + flt(d.score_earned) ret={'total_score':flt(total)} - return cstr(ret) + return ret def declare_completed(self): ret={} diff --git a/hr/doctype/attendance/attendance.py b/hr/doctype/attendance/attendance.py index d64a8e3e3a..3c687efc71 100644 --- a/hr/doctype/attendance/attendance.py +++ b/hr/doctype/attendance/attendance.py @@ -34,7 +34,7 @@ class DocType: set(self.doc, 'employee_name', emp_nm and emp_nm[0][0] or '') ret = { 'employee_name' : emp_nm and emp_nm[0][0] or ''} - return str(ret) + return ret #validation for duplicate record def validate_duplicate_record(self): diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py index 54142dbc50..01ff32df66 100644 --- a/hr/doctype/employee/employee.py +++ b/hr/doctype/employee/employee.py @@ -41,7 +41,7 @@ class DocType: if self.doc.date_of_birth: dt = getdate(self.doc.date_of_birth) + datetime.timedelta(21915) ret = {'date_of_retirement': dt.strftime('%Y-%m-%d')} - return str(ret) + return ret # check if salary structure exists #======================================================================================================== diff --git a/hr/doctype/leave_allocation/leave_allocation.py b/hr/doctype/leave_allocation/leave_allocation.py index e11a3357d6..46f78094a3 100755 --- a/hr/doctype/leave_allocation/leave_allocation.py +++ b/hr/doctype/leave_allocation/leave_allocation.py @@ -66,7 +66,7 @@ class DocType: 'carry_forwarded_leaves' : prev_bal, 'total_leaves_allocated' : flt(prev_bal) + flt(self.doc.new_leaves_allocated) } - return str(ret) + return ret # ********************************************** validate ***************************************************** diff --git a/hr/doctype/salary_structure/salary_structure.py b/hr/doctype/salary_structure/salary_structure.py index fd295ea743..36a1855d6b 100644 --- a/hr/doctype/salary_structure/salary_structure.py +++ b/hr/doctype/salary_structure/salary_structure.py @@ -42,7 +42,7 @@ class DocType: 'grade' : cstr(det[0][4]), 'backup_employee': cstr(self.doc.employee) } - return cstr(ret) + return ret # Set Salary structure field values @@ -53,7 +53,7 @@ class DocType: 'bank_ac_no' : basic_info and basic_info[0][1] or '', 'esic_no' : basic_info and basic_info[0][2] or '', 'pf_no' : basic_info and basic_info[0][3] or ''} - return cstr(ret) + return ret # Make earning and deduction table #--------------------------------------------------------- diff --git a/production/doctype/bill_of_materials/bill_of_materials.py b/production/doctype/bill_of_materials/bill_of_materials.py index f8f8e30c4a..cc686e536d 100644 --- a/production/doctype/bill_of_materials/bill_of_materials.py +++ b/production/doctype/bill_of_materials/bill_of_materials.py @@ -36,7 +36,7 @@ class DocType: ret={ 'description' : item and item[0]['description'] or '' } - return cstr(ret) + return ret def get_workstation_details(self,workstation): ws = sql("select hour_rate, capacity from `tabWorkstation` where name = %s",workstation , as_dict = 1) @@ -44,7 +44,7 @@ class DocType: 'hour_rate' : ws and flt(ws[0]['hour_rate']) or '', 'workstation_capacity' : ws and flt(ws[0]['capacity']) or '' } - return cstr(ret) + return ret def get_bom_material_detail(self, arg): arg = eval(arg) @@ -106,7 +106,7 @@ class DocType: 'standard_rate' : 0 } ret_item.update(ret_bom_rates) - return cstr(ret_item) + return ret_item def set_as_default_bom(self): # set Is Default as 1 diff --git a/production/doctype/production_planning_tool/production_planning_tool.py b/production/doctype/production_planning_tool/production_planning_tool.py index c548173e21..d0ae05b2f8 100644 --- a/production/doctype/production_planning_tool/production_planning_tool.py +++ b/production/doctype/production_planning_tool/production_planning_tool.py @@ -32,7 +32,7 @@ class DocType: 'stock_uom' : item and item[0]['stock_uom'], 'bom_no' : item and item[0]['default_bom'] } - return cstr(ret) + return ret else: msgprint("Item %s does not exist in system." %(args['item_code'])) raise Exception diff --git a/projects/doctype/project/project.py b/projects/doctype/project/project.py index e68771ce6a..084df6c04b 100644 --- a/projects/doctype/project/project.py +++ b/projects/doctype/project/project.py @@ -38,7 +38,7 @@ class DocType: ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or '' ret['contact_no'] = contact_det and contact_det[0]['contact_no'] or '' ret['email_id'] = contact_det and contact_det[0]['email_id'] or '' - return cstr(ret) + return ret else: msgprint("Customer : %s does not exist in system." % (self.doc.customer)) raise Exception @@ -65,7 +65,7 @@ class DocType: #if pft > 0: per_pft = (flt(pft) / flt(self.doc.project_value)) * 100 ret = {'gross_margin_value': pft, 'per_gross_margin': per_pft} - return cstr(ret) + return ret # validate #================================================ diff --git a/projects/doctype/ticket/ticket.py b/projects/doctype/ticket/ticket.py index 8d716cc1cd..0f18b21e75 100644 --- a/projects/doctype/ticket/ticket.py +++ b/projects/doctype/ticket/ticket.py @@ -22,18 +22,18 @@ class DocType: cust = sql("select customer, customer_name from `tabProject` where name = %s", self.doc.project) if cust: ret = {'customer': cust and cust[0][0] or '', 'customer_name': cust and cust[0][1] or ''} - return cstr(ret) + return ret def get_customer_details(self): cust = sql("select customer_name from `tabCustomer` where name=%s", self.doc.customer) if cust: ret = {'customer_name': cust and cust[0][0] or ''} - return cstr(ret) + return ret def get_allocated_to_name(self): as_em = sql("select first_name, last_name from `tabProfile` where name=%s",self.doc.allocated_to) ret = { 'allocated_to_name' : as_em and (as_em[0][0] + ' ' + as_em[0][1]) or ''} - return cstr(ret) + return ret # validate #-------------------------------------------- diff --git a/projects/doctype/timesheet/timesheet.py b/projects/doctype/timesheet/timesheet.py index ba921f478a..f07975c819 100644 --- a/projects/doctype/timesheet/timesheet.py +++ b/projects/doctype/timesheet/timesheet.py @@ -32,7 +32,7 @@ class DocType: tsk = sql("select name, project, customer, customer_name from `tabTicket` where subject = %s", task_sub) if tsk: ret = {'task_id': tsk and tsk[0][0] or '', 'project_name': tsk and tsk[0][1] or '', 'customer_name': tsk and tsk[0][3] or ''} - return cstr(ret) + return ret def validate(self): if getdate(self.doc.timesheet_date) > getdate(nowdate()): diff --git a/selling/doctype/enquiry/enquiry.py b/selling/doctype/enquiry/enquiry.py index 61bc4ec07d..12597022bd 100644 --- a/selling/doctype/enquiry/enquiry.py +++ b/selling/doctype/enquiry/enquiry.py @@ -50,7 +50,7 @@ class DocType(TransactionBase): ret['contact_no'] = contact_det and contact_det[0]['contact_no'] or '' ret['email_id'] = contact_det and contact_det[0]['email_id'] or '' - return cstr(ret) + return ret else: msgprint("Customer : %s does not exist in system." % (name)) raise Exception @@ -64,7 +64,7 @@ class DocType(TransactionBase): 'contact_no' : contact and contact[0]['contact_no'] or '', 'email_id' : contact and contact[0]['email_id'] or '' } - return str(ret) + return ret # ==================================================================================================================== def on_update(self): @@ -184,7 +184,7 @@ class DocType(TransactionBase): else: set(self.doc, 'status', 'Enquiry Lost') set(self.doc, 'order_lost_reason', arg) - return cstr('true') + return 'true' # ==================================================================================================================== def update_follow_up(self): diff --git a/selling/doctype/installation_note/installation_note.py b/selling/doctype/installation_note/installation_note.py index ce213632c7..e0af7ece24 100644 --- a/selling/doctype/installation_note/installation_note.py +++ b/selling/doctype/installation_note/installation_note.py @@ -29,20 +29,7 @@ class DocType(TransactionBase): # --------- def autoname(self): self.doc.name = make_autoname(self.doc.naming_series+'.#####') - - #fetch customer details - #================================= - #def get_customer_details(self): - # det = sql("select t1.customer_name, t1.address,t1.territory,t2.contact_name from `tabCustomer` t1, `tabContact` t2 where t1.name = '%s' and t1.name=t2.customer and t2.is_primary_contact = 'Yes'"%self.doc.customer, as_dict=1) - - # ret = { - # 'customer_name': det and det[0]['customer_name'] or '', - # 'address' : det and det[0]['address'] or '', - # 'territory': det and det[0]['territory'] or '', - # 'contact_person' : det and det[0]['contact_name'] or '' - # } - - # return str(ret) + #fetch delivery note details #==================================== diff --git a/selling/doctype/lead/lead.py b/selling/doctype/lead/lead.py index 1bf8c8d1b6..14d14e12ad 100644 --- a/selling/doctype/lead/lead.py +++ b/selling/doctype/lead/lead.py @@ -51,7 +51,7 @@ class DocType: 'description': it and it[0][3] or '', 'uom' : it and it[0][4] or '' } - return cstr(ret) + return ret def validate(self): import string diff --git a/selling/doctype/quotation/quotation.py b/selling/doctype/quotation/quotation.py index aed868ef1d..11755406fa 100644 --- a/selling/doctype/quotation/quotation.py +++ b/selling/doctype/quotation/quotation.py @@ -45,17 +45,12 @@ class DocType(TransactionBase): self.get_adj_percent() - return cstr(self.doc.quotation_to) - - # Get Customer Details - # -------------------- - #def get_customer_details(self): - # return cstr(get_obj('Sales Common').get_customer_details(self)) + return self.doc.quotation_to # Get contact person details based on customer selected # ------------------------------------------------------ def get_contact_details(self): - return cstr(get_obj('Sales Common').get_contact_details(self,0)) + return get_obj('Sales Common').get_contact_details(self,0) # Clear Quotation Details # ----------------------- @@ -111,7 +106,7 @@ class DocType(TransactionBase): 'contact_mobile' : details and details[0]['mobile_no'] or '-', 'contact_email' : details and details[0]['email_id'] or '-' } - return cstr(ret) + return ret # GET TERMS AND CONDITIONS @@ -295,7 +290,7 @@ class DocType(TransactionBase): set(self.doc, 'status', 'Order Lost') set(self.doc, 'order_lost_reason', arg) self.update_enquiry('order lost') - return cstr('true') + return 'true' #check if value entered in item table #-------------------------------------- diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py index 931c994bf6..acdca50f7b 100644 --- a/selling/doctype/sales_common/sales_common.py +++ b/selling/doctype/sales_common/sales_common.py @@ -118,21 +118,21 @@ class DocType(TransactionBase): t = {} for x in tax: t[x[0]] = flt(x[1]) ret = { - 'description' : item and item[0]['description_html'] or item[0]['description'], - 'item_group' : item and item[0]['item_group'] or '', - 'item_name' : item and item[0]['item_name'] or '', - 'brand' : item and item[0]['brand'] or '', - 'stock_uom' : item and item[0]['stock_uom'] or '', - 'reserved_warehouse' : item and item[0]['default_warehouse'] or '', - 'warehouse' : item and item[0]['default_warehouse'] or '', - 'income_account' : item and item[0]['default_income_account'] or '', - 'cost_center' : item and item[0]['default_sales_cost_center'] or '', - 'qty' : 1.00, # this is done coz if item once fetched is fetched again thn its qty shld be reset to 1 - 'adj_rate' : 0, - 'amount' : 0, - 'export_amount' : 0, - 'item_tax_rate' : str(t), - 'batch_no' : '' + 'description' : item and item[0]['description_html'] or item[0]['description'], + 'item_group' : item and item[0]['item_group'] or '', + 'item_name' : item and item[0]['item_name'] or '', + 'brand' : item and item[0]['brand'] or '', + 'stock_uom' : item and item[0]['stock_uom'] or '', + 'reserved_warehouse' : item and item[0]['default_warehouse'] or '', + 'warehouse' : item and item[0]['default_warehouse'] or '', + 'income_account' : item and item[0]['default_income_account'] or '', + 'cost_center' : item and item[0]['default_sales_cost_center'] or '', + 'qty' : 1.00, # this is done coz if item once fetched is fetched again thn its qty shld be reset to 1 + 'adj_rate' : 0, + 'amount' : 0, + 'export_amount' : 0, + 'item_tax_rate' : str(t), + 'batch_no' : '' } if(obj.doc.price_list_name and item): #this is done to fetch the changed BASIC RATE and REF RATE based on PRICE LIST ref_rate = self.get_ref_rate(item_code, obj.doc.price_list_name, obj.doc.currency) @@ -143,7 +143,8 @@ class DocType(TransactionBase): if obj.doc.doctype == 'Receivable Voucher': return ret - return str(ret) + + return ret # ***************** Get Ref rate as entered in Item Master ******************** def get_ref_rate(self, item_code, price_list_name, currency): @@ -161,7 +162,6 @@ class DocType(TransactionBase): d.base_ref_rate = flt(ref_rate) * flt(obj.doc.conversion_rate) d.export_rate = flt(ref_rate) - # Load Default Taxes # ==================== def load_default_taxes(self, obj): @@ -203,7 +203,7 @@ class DocType(TransactionBase): ret = { 'item_tax_rate' : tax and str(t) or '' } - return str(ret) + return ret # Get Serial No Details # ========================================================================== @@ -220,7 +220,7 @@ class DocType(TransactionBase): 'description' : item and item[0]['description'] or '', 'item_tax_rate' : str(t) } - return str(ret) + return ret # Get Commission rate # ======================================================================= @@ -233,7 +233,7 @@ class DocType(TransactionBase): 'commission_rate' : comm_rate and flt(comm_rate[0]['commission_rate']) or 0, 'total_commission' : flt(total_comm) } - return str(ret) + return ret else: msgprint("Business Associate : %s does not exist in the system." % (sales_partner)) raise Exception @@ -287,7 +287,7 @@ class DocType(TransactionBase): ret = { 'rate' : rate and flt(rate[0]['tax_rate']) or 0 } - return cstr(ret) + return ret # Make Packing List from Sales BOM diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py index 9dee82eb05..ca5af7ae66 100644 --- a/selling/doctype/sales_order/sales_order.py +++ b/selling/doctype/sales_order/sales_order.py @@ -102,8 +102,7 @@ class DocType(TransactionBase): 'projected_qty' : tot_avail_qty and flt(tot_avail_qty[0]['projected_qty']) or 0, 'actual_qty' : tot_avail_qty and flt(tot_avail_qty[0]['actual_qty']) or 0 } - return cstr(ret) - + return ret # OTHER CHARGES TRIGGER FUNCTIONS # ==================================================================================== @@ -136,7 +135,7 @@ class DocType(TransactionBase): nm = nm and nm[0][0] or '' if not nm: - return cstr('No') + return 'No' #check if maintenance visit already generated #============================================ @@ -145,7 +144,7 @@ class DocType(TransactionBase): nm = nm and nm[0][0] or '' if not nm: - return cstr('No') + return 'No' # VALIDATE # ===================================================================================== diff --git a/setup/doctype/email_settings/email_settings.py b/setup/doctype/email_settings/email_settings.py index 37de7bcb18..ef0a7631d8 100644 --- a/setup/doctype/email_settings/email_settings.py +++ b/setup/doctype/email_settings/email_settings.py @@ -13,7 +13,7 @@ class DocType: for r in res: ret[cstr(r[0])]=r[1] and cstr(r[1]) or '' - return str(ret) + return ret def set_cp_value(self, key): """ diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index 74e6f8a97f..3534dadc9a 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -40,15 +40,10 @@ class DocType(TransactionBase): def validate_fiscal_year(self): get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date') - # ******************* Get Customer Details *********************** - #def get_customer_details(self): - # sales_com_obj = get_obj('Sales Common') - # sales_com_obj.get_customer_details(self) - # sales_com_obj.get_shipping_details(self) # ****** Get contact person details based on customer selected **** def get_contact_details(self): - return cstr(get_obj('Sales Common').get_contact_details(self,0)) + return get_obj('Sales Common').get_contact_details(self,0) # *********** Get Commission rate of Sales Partner **************** def get_comm_rate(self, sales_partner): @@ -122,7 +117,7 @@ class DocType(TransactionBase): ret = { 'actual_qty' : actual_qty and flt(actual_qty[0]['actual_qty']) or 0 } - return cstr(ret) + return ret # OTHER CHARGES TRIGGER FUNCTIONS diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py index 7f0d3c2f69..d51fb3a081 100644 --- a/stock/doctype/item/item.py +++ b/stock/doctype/item/item.py @@ -27,7 +27,7 @@ class DocType: ret = { 'tax_rate' : rate and flt(rate[0][0]) or 0 } - return str(ret) + return ret def on_update(self): bin = sql("select stock_uom from `tabBin` where item_code = '%s' " % self.doc.item_code) diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py index 0eda680cae..432998028a 100644 --- a/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/stock/doctype/purchase_receipt/purchase_receipt.py @@ -42,18 +42,15 @@ class DocType(TransactionBase): #-----------------Validation For Fiscal Year------------------------ def validate_fiscal_year(self): get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'Transaction Date') - - # Get Supplier Details - #def get_supplier_details(self, name = ''): - # return cstr(get_obj(dt='Purchase Common').get_supplier_details(name)) + # Get Item Details def get_item_details(self, arg = ''): - return cstr(get_obj(dt='Purchase Common').get_item_details(self,arg)) + return get_obj(dt='Purchase Common').get_item_details(self,arg) # Get UOM Details def get_uom_details(self, arg = ''): - return cstr(get_obj(dt='Purchase Common').get_uom_details(arg)) + return get_obj(dt='Purchase Common').get_uom_details(arg) # GET TERMS & CONDITIONS # ===================================================================================== @@ -62,7 +59,7 @@ class DocType(TransactionBase): # get available qty at warehouse def get_bin_details(self, arg = ''): - return cstr(get_obj(dt='Purchase Common').get_bin_details(arg)) + return get_obj(dt='Purchase Common').get_bin_details(arg)f # Pull Purchase Order def get_po_details(self): diff --git a/stock/doctype/sales_bom/sales_bom.py b/stock/doctype/sales_bom/sales_bom.py index 3bd6fa520e..ce4567efb1 100644 --- a/stock/doctype/sales_bom/sales_bom.py +++ b/stock/doctype/sales_bom/sales_bom.py @@ -38,7 +38,7 @@ class DocType: def get_item_details(self, name): det = sql("select description, stock_uom from `tabItem` where name = '%s' " % cstr(name)) rate = sql("select ref_rate from `tabRef Rate Detail` where price_list_name = %s and parent = %s and ref_currency = %s", (self.doc.price_list, name, self.doc.currency)) - return cstr({'description' : det and det[0][0] or '', 'uom': det and det[0][1] or '', 'rate': rate and flt(rate[0][0]) or 0.00}) + return {'description' : det and det[0][0] or '', 'uom': det and det[0][1] or '', 'rate': rate and flt(rate[0][0]) or 0.00} def get_main_item(self): diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py index b380995b34..47f03946b2 100644 --- a/stock/doctype/stock_entry/stock_entry.py +++ b/stock/doctype/stock_entry/stock_entry.py @@ -54,7 +54,7 @@ class DocType: 'conversion_factor' : 1, 'batch_no' : '' } - return str(ret) + return ret # Get UOM Details @@ -70,7 +70,7 @@ class DocType: 'conversion_factor' : flt(uom[0]['conversion_factor']), 'transfer_qty' : flt(arg['qty']) * flt(uom[0]['conversion_factor']), } - return str(ret) + return ret # get stock and incoming rate on posting date @@ -396,7 +396,7 @@ class DocType: 'customer_name' : res and res[0][1] or '', 'customer_address' : res and res[0][2] or ''} - return str(ret) + return ret def get_cust_addr(self): @@ -405,7 +405,7 @@ class DocType: 'customer_name' : res and res[0][0] or '', 'customer_address' : res and res[0][1] or ''} - return str(ret) + return ret @@ -415,7 +415,7 @@ class DocType: 'supplier' : res and res[0][0] or '', 'supplier_name' :res and res[0][1] or '', 'supplier_address' : res and res[0][2] or ''} - return str(ret) + return ret def get_supp_addr(self): @@ -423,4 +423,4 @@ class DocType: ret = { 'supplier_name' : res and res[0][0] or '', 'supplier_address' : res and res[0][1] or ''} - return str(ret) + return ret diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py index e603d1fc8f..f8ac7372a5 100644 --- a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py +++ b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py @@ -22,7 +22,7 @@ class DocType: self.doc, self.doclist = d,dl def get_stock_uom(self, item_code): - return cstr({'current_stock_uom': cstr(get_value('Item', item_code, 'stock_uom'))}) + return {'current_stock_uom': cstr(get_value('Item', item_code, 'stock_uom'))} def validate_mandatory(self): if not cstr(self.doc.item_code): diff --git a/support/doctype/customer_issue/customer_issue.py b/support/doctype/customer_issue/customer_issue.py index db63cc206d..12a8ebdc6d 100644 --- a/support/doctype/customer_issue/customer_issue.py +++ b/support/doctype/customer_issue/customer_issue.py @@ -27,37 +27,6 @@ class DocType(TransactionBase): def autoname(self): #self.doc.name = make_autoname('CI/' + self.doc.fiscal_year + '/.######') self.doc.name = make_autoname(self.doc.naming_series + '.######') - - #def get_customer_details(self): - # details = sql("select address, territory, customer_group, customer_name from `tabCustomer` where name = '%s' and docstatus != 2" %(self.doc.customer), as_dict = 1) - # if details: - # ret = { - # 'customer_address' : details and details[0]['address'] or '', - # 'customer_name' : details and details[0]['customer_name'] or '', - # 'territory' : details and details[0]['territory'] or '', - # 'customer_group' : details and details[0]['customer_group'] or '' - # } - # # ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query) - # contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where customer_name = '%s' and is_customer = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(self.doc.customer), as_dict = 1) - # ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or '' - # ret['contact_no'] = contact_det and contact_det[0]['contact_no'] or '' - # ret['email_id'] = contact_det and contact_det[0]['email_id'] or '' - # - # return cstr(ret) - # else: - # msgprint("Customer : %s does not exist in system." % (name)) - # raise Exception - - # Get customer's contact person details - # ============================================================== - #def get_contact_details(self): - # contact = sql("select contact_no, email_id from `tabContact` where contact_name = '%s' and customer_name = '%s' and docstatus != 2" %(self.doc.contact_person, self.doc.customer), as_dict = 1) - # ret = { - # 'contact_no' : contact and contact[0]['contact_no'] or '', - # 'email_id' : contact and contact[0]['email_id'] or '' - # } - # return str(ret) - #check if maintenance schedule already generated #============================================ @@ -66,7 +35,7 @@ class DocType(TransactionBase): nm = nm and nm[0][0] or '' if not nm: - return cstr('No') + return 'No' def on_submit(self): if session['user'] != 'Guest': diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.py b/support/doctype/maintenance_schedule/maintenance_schedule.py index 0d6ef809fb..d5c90b55fc 100644 --- a/support/doctype/maintenance_schedule/maintenance_schedule.py +++ b/support/doctype/maintenance_schedule/maintenance_schedule.py @@ -38,21 +38,8 @@ class DocType(TransactionBase): 'item_name': item and item[0]['item_name'] or '', 'description' : item and item[0]['description'] or '' } - return str(ret) - - #pull customer details - #------------------------- - #def get_customer_details(self): - # det = sql("select t1.customer_name,t1.address,t1.territory,t2.contact_name from `tabCustomer` t1, `tabContact` t2 where t1.name = %s and t1.name=t2.customer and t2.is_primary_contact = 'Yes'", self.doc.customer, as_dict=1) - # - # ret = { - # 'customer_name': det and det[0]['customer_name'] or '', - # 'address' : det and det[0]['address'] or '', - # 'territory': det and det[0]['territory'] or '', - # 'contact_person' : det and det[0]['contact_name'] or '' - # } - # return str(ret) - + return ret + # generate maintenance schedule #------------------------------------- def generate_schedule(self): @@ -132,7 +119,7 @@ class DocType(TransactionBase): count = period/365 ret = {'no_of_visits':count} - return str(ret) + return ret def validate_maintenance_detail(self): if not getlist(self.doclist, 'item_maintenance_detail'): diff --git a/support/doctype/maintenance_visit/maintenance_visit.py b/support/doctype/maintenance_visit/maintenance_visit.py index 203793c929..e4efe1c53a 100644 --- a/support/doctype/maintenance_visit/maintenance_visit.py +++ b/support/doctype/maintenance_visit/maintenance_visit.py @@ -31,20 +31,7 @@ class DocType(TransactionBase): 'item_name' : item and item[0]['item_name'] or '', 'description' : item and item[0]['description'] or '' } - return str(ret) - - #get customer details - #----------------------- - #def get_customer_details(self): - # det = sql("select t1.customer_name,t1.address,t1.territory,t2.contact_name from `tabCustomer` t1, `tabContact` t2 where t1.name = %s and t1.name=t2.customer and t2.is_primary_contact = 'Yes'", self.doc.customer, as_dict=1) - # - # ret = { - # 'customer_name' : det and det[0]['customer_name'] or '', - # 'address' : det and det[0]['address'] or '', - # 'territory': det and det[0]['territory'] or '', - # 'contact_person' : det and det[0]['contact_name'] or '' - # } - # return str(ret) + return ret # fetch details of resp Sales order or customer issue #----------------------------------------------------------- From d0ec3e6101fd4e30c4e32e3bcd7a7a50910a95fc Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 12 Aug 2011 11:05:04 +0530 Subject: [PATCH 6/6] bom fix --- production/doctype/workstation/workstation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/production/doctype/workstation/workstation.py b/production/doctype/workstation/workstation.py index aaa490837f..45851de3e2 100644 --- a/production/doctype/workstation/workstation.py +++ b/production/doctype/workstation/workstation.py @@ -25,7 +25,7 @@ class DocType: def update_bom_operation(self): bom_list = sql(" select DISTINCT parent from `tabBOM Operation` where workstation = '%s'" % self.doc.name) for bom_no in bom_list: - sql("update `tabBOM Operation` set hour_rate = '%s' where parent = '%s' and workstation = '%s'"%( self.doc.hour_rate, bom_no, self.doc.name)) + sql("update `tabBOM Operation` set hour_rate = '%s' where parent = '%s' and workstation = '%s'"%( self.doc.hour_rate, bom_no[0], self.doc.name)) def on_update(self): set(self.doc, 'overhead', flt(self.doc.hour_rate_electricity) + flt(self.doc.hour_rate_consumable) + flt(self.doc.hour_rate_rent))