From 3c419c5e05f4ba76e96b577f7ffaad4bfc9adfd1 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 16 Jul 2012 15:44:38 +0530 Subject: [PATCH 1/4] cur_frm.doc re-reference when is called --- erpnext/selling/doctype/quotation/quotation.js | 4 +++- public/js/all-app.js | 9 ++++++--- public/js/all-web.js | 4 +++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 9a45c70091..774cc2fd66 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -63,7 +63,9 @@ cur_frm.cscript.onload_post_render = function(doc, dt, dn) { // hide - unhide fields based on lead or customer.. // ======================================================================================================================= cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){ - hide_field(['lead', 'lead_name','customer','customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group', 'organization']); + hide_field(['lead', 'lead_name','customer','customer_address','contact_person', + 'customer_name','address_display','contact_display','contact_mobile','contact_email', + 'territory','customer_group', 'organization']); if(doc.quotation_to == 'Lead') unhide_field(['lead']); else if(doc.quotation_to == 'Customer') unhide_field(['customer']); diff --git a/public/js/all-app.js b/public/js/all-app.js index 69c3fc91f0..130ec39614 100644 --- a/public/js/all-app.js +++ b/public/js/all-app.js @@ -1314,7 +1314,9 @@ delete locals[dt][dn];} function get_local(dt,dn){return locals[dt]?locals[dt][dn]:null;} LocalDB.sync=function(list){if(list._kl)list=expand_doclist(list);if(list){LocalDB.clear_locals(list[0].doctype,list[0].name);} for(var i=0;i Date: Mon, 16 Jul 2012 16:20:11 +0530 Subject: [PATCH 2/4] users pages deprecated --- erpnext/setup/page/setup/setup.html | 2 +- public/js/all-app.js | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/erpnext/setup/page/setup/setup.html b/erpnext/setup/page/setup/setup.html index 70143a4c20..68da3813b6 100644 --- a/erpnext/setup/page/setup/setup.html +++ b/erpnext/setup/page/setup/setup.html @@ -19,7 +19,7 @@

Users and Permissions

- Users
+ Users
Add/remove users, set roles, passwords etc

diff --git a/public/js/all-app.js b/public/js/all-app.js index 130ec39614..547cca7025 100644 --- a/public/js/all-app.js +++ b/public/js/all-app.js @@ -1787,6 +1787,7 @@ if(this.doc.docstatus==0){$(this.wrapper).find('.form-layout-row :input:first'). this.runclientscript('edit_status_changed');} $(cur_frm.wrapper).trigger('render_complete');}} _f.Frm.prototype.refresh_footer=function(){var f=this.page_layout.footer;if(f.save_area){if(this.editable&&(!this.meta.in_dialog||this.in_form)&&this.doc.docstatus==0&&!this.meta.istable&&this.get_doc_perms()[WRITE]&&(this.fields&&this.fields.length>7)){f.show_save();}else{f.hide_save();}}} +_f.Frm.prototype.refresh_field=function(fname){cur_frm.fields_dict[fname]&&cur_frm.fields_dict[fname].refresh&&cur_frm.fields_dict[fname].refresh();} _f.Frm.prototype.refresh_fields=function(){for(var i=0;i Date: Mon, 16 Jul 2012 16:27:23 +0530 Subject: [PATCH 3/4] report breadcrumbs issue --- public/js/all-app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/all-app.js b/public/js/all-app.js index 547cca7025..780398c266 100644 --- a/public/js/all-app.js +++ b/public/js/all-app.js @@ -1035,7 +1035,7 @@ _r.rb_con.set_dt(dt,function(rb){if(rep_name){var route_changed=(rb.current_rout rb.load_criteria(rep_name);if(rb.dt&&route_changed){rb.dt.run();}} if(!rb.forbidden){wn.container.change_to('Report Builder');}});}} wn.views.reportview2={show:function(dt){var page_name=wn.get_route_str();if(wn.pages[page_name]){wn.container.change_to(wn.pages[page_name]);}else{var route=wn.get_route();if(route[1]){new wn.views.ReportViewPage(route[1],route[2]);}else{wn.set_route('404');}}}} -wn.views.ReportViewPage=Class.extend({init:function(doctype,docname){this.doctype=doctype;this.docname=docname;this.page_name=wn.get_route_str();this.make_page();var me=this;wn.model.with_doctype(doctype,function(){me.make_report_view();if(docname){wn.model.with_doc('Report',docname,function(r){me.reportview.set_columns_and_filters(JSON.parse(locals['Report'][docname].json));me.reportview.run();});}else{me.reportview.run();}});},make_page:function(){this.page=wn.container.add_page(this.page_name);wn.ui.make_app_page({parent:this.page,single_column:true});wn.container.change_to(this.page_name);},make_report_view:function(){wn.views.breadcrumbs($('').appendTo(this.page.appframe.$titlebar),locals.DocType[this.doctype].module);this.reportview=new wn.views.ReportView(this.doctype,this.docname,this.page)}}) +wn.views.ReportViewPage=Class.extend({init:function(doctype,docname){this.doctype=doctype;this.docname=docname;this.page_name=wn.get_route_str();this.make_page();var me=this;wn.model.with_doctype(doctype,function(){me.make_report_view();if(docname){wn.model.with_doc('Report',docname,function(r){me.reportview.set_columns_and_filters(JSON.parse(locals['Report'][docname].json));me.reportview.run();});}else{me.reportview.run();}});},make_page:function(){this.page=wn.container.add_page(this.page_name);wn.ui.make_app_page({parent:this.page,single_column:true});wn.container.change_to(this.page_name);},make_report_view:function(){this.page.appframe.add_breadcrumb(locals.DocType[this.doctype].module);this.reportview=new wn.views.ReportView(this.doctype,this.docname,this.page)}}) wn.views.ReportView=wn.ui.Listing.extend({init:function(doctype,docname,page){var me=this;$(page).find('.layout-main').html('Loading Report...');this.import_slickgrid();$(page).find('.layout-main').empty();this.doctype=doctype;this.docname=docname;this.page=page;this.tab_name='`tab'+doctype+'`';this.setup();},import_slickgrid:function(){wn.require('js/lib/slickgrid/slick.grid.css');wn.require('js/lib/slickgrid/slick-default-theme.css');wn.require('js/lib/slickgrid/jquery.event.drag.min.js');wn.require('js/lib/slickgrid/slick.core.js');wn.require('js/lib/slickgrid/slick.grid.js');wn.dom.set_style('.slick-cell { font-size: 12px; }');},set_init_columns:function(){var columns=[['name'],['owner']];$.each(wn.meta.docfield_list[this.doctype],function(i,df){if(df.in_filter&&df.fieldname!='naming_series'&&df.fieldtype!='Table'){columns.push([df.fieldname]);}});this.columns=columns;},setup:function(){var me=this;this.make({title:'Report: '+(this.docname?(this.doctype+' - '+this.docname):this.doctype),appframe:this.page.appframe,method:'webnotes.widgets.doclistview.get',get_args:this.get_args,parent:$(this.page).find('.layout-main'),start:0,page_length:20,show_filters:true,new_doctype:this.doctype,allow_delete:true,});this.make_column_picker();this.make_sorter();this.make_export();this.set_init_columns();this.make_save();},set_columns_and_filters:function(opts){var me=this;if(opts.columns)this.columns=opts.columns;if(opts.filters)$.each(opts.filters,function(i,f){me.filter_list.add_filter(f[1],f[2],f[3]);});if(opts.sort_by)this.sort_by_select.val(opts.sort_by);if(opts.sort_order)this.sort_order_select.val(opts.sort_order);if(opts.sort_by_next)this.sort_by_next_select.val(opts.sort_by_next);if(opts.sort_order_next)this.sort_order_next_select.val(opts.sort_order_next);},get_args:function(){var me=this;return{doctype:this.doctype,fields:$.map(this.columns,function(v){return me.get_full_column_name(v)}),order_by:this.get_order_by(),filters:this.filter_list.get_filters(),docstatus:['0','1','2']}},get_order_by:function(){var order_by=this.get_selected_table_and_column(this.sort_by_select) +' '+this.sort_order_select.val() if(this.sort_by_next_select.val()){order_by+=', '+this.get_selected_table_and_column(this.sort_by_next_select) From 8499773db82394be0b1cc41a76cc83fdb9dc1e37 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 16 Jul 2012 16:33:10 +0530 Subject: [PATCH 4/4] fix in last sales and quote rate in quotation --- .../selling/doctype/quotation/quotation.js | 70 ++++++++++++------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 175133d748..9d6906173f 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -283,34 +283,50 @@ 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, i.item_name, i.description FROM\ - (\ - select item_code,name, item_name, description from tabItem where tabItem.%(key)s like '%s' %(cond)s\ - )i\ - left join\ - (\ - select q.item_code,q.quote_rate from\ - (\ - select q.transaction_date,qd.item_code,qd.basic_rate as quote_rate from `tabQuotation Item` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s'\ - )q,\ - (\ - select qd.item_code,max(q.transaction_date) as transaction_date from `tabQuotation Item` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s' group by qd.item_code\ - )m where q.item_code=m.item_code and q.transaction_date=m.transaction_date\ - )q on i.item_code=q.item_code\ - left join\ - (\ - select r.item_code,r.sales_rate from\ - (\ - select r.voucher_date,rd.item_code,rd.basic_rate as sales_rate from `tabSales Invoice Item` rd, `tabSales Invoice` r where r.name=rd.parent and r.docstatus=1 and r.customer='%(cust)s'\ - )r,\ - (\ - select rd.item_code,max(r.voucher_date) as voucher_date from `tabSales Invoice Item` rd, `tabSales Invoice` r where r.name=rd.parent and r.docstatus=1 and r.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 i.item_code LIMIT 50",{cust:doc.customer, cond:cond}); - else + var cond = (doc.order_type == 'Maintenance') ? " and item.is_service_item = 'Yes'" : " and item.is_sales_item = 'Yes'"; + if(doc.customer) { + var export_rate_field = wn.meta.get_docfield(cdt, 'export_rate', cdn); + var precision = (export_rate_field && export_rate_field.fieldtype) === 'Float' ? 6 : 2; + return repl("\ + select \ + item.name, \ + ( \ + select concat('Last Quote @ ', q.currency, ' ', \ + format(q_item.export_rate, %(precision)s)) \ + from `tabQuotation` q, `tabQuotation Item` q_item \ + where \ + q.name = q_item.parent \ + and q_item.item_code = item.name \ + and q.docstatus = 1 \ + and q.customer = \"%(cust)s\" \ + order by q.transaction_date desc \ + limit 1 \ + ) as quote_rate, \ + ( \ + select concat('Last Sale @ ', si.currency, ' ', \ + format(si_item.basic_rate, %(precision)s)) \ + from `tabSales Invoice` si, `tabSales Invoice Item` si_item \ + where \ + si.name = si_item.parent \ + and si_item.item_code = item.name \ + and si.docstatus = 1 \ + and si.customer = \"%(cust)s\" \ + order by si.voucher_date desc \ + limit 1 \ + ) as sales_rate, \ + item.item_name, item.description \ + from `tabItem` item \ + where \ + item.%(key)s like \"%s\" \ + %(cond)s \ + limit 25", { + cust: doc.customer, + cond: cond, + precision: precision + }); + } else { return repl("SELECT name, item_name, description FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' %(cond)s ORDER BY tabItem.item_code DESC LIMIT 50", {cond:cond}); + } } cur_frm.cscript.on_submit = function(doc, cdt, cdn) {