From 2efd363b572fb463c0594de0fef9c221d37eabff Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 11 Nov 2011 17:11:23 +0530 Subject: [PATCH] Changes in print format and money_in_words --- js/legacy/app.js | 3 +- js/legacy/form.compressed.js | 20 ++++++-------- js/legacy/widgets/form/print_format.js | 38 +++++++++++++------------- js/legacy/wnf.compressed.js | 3 +- py/webnotes/utils/__init__.py | 2 +- 5 files changed, 31 insertions(+), 35 deletions(-) diff --git a/js/legacy/app.js b/js/legacy/app.js index 0e5e0046e5..ca0a3bfe88 100644 --- a/js/legacy/app.js +++ b/js/legacy/app.js @@ -134,8 +134,7 @@ function redirect_to_login() { } // default print style -_p.def_print_style_body = "html, body, div, span, td { font-family: Arial, Helvetica; font-size: 12px; }" - +"\npre { margin:0; padding:0;}" +_p.def_print_style_body = "html, body, div, span, td { font-family: Arial, Helvetica; font-size: 12px; }" + "\npre { margin:0; padding:0;}" _p.def_print_style_other = "\n.simpletable, .noborder { border-collapse: collapse; margin-bottom: 10px;}" +"\n.simpletable td {border: 1pt solid #000; vertical-align: top; padding: 2px; }" diff --git a/js/legacy/form.compressed.js b/js/legacy/form.compressed.js index 64cde8b6d0..e19b8ce61c 100644 --- a/js/legacy/form.compressed.js +++ b/js/legacy/form.compressed.js @@ -344,7 +344,7 @@ $.extend(_p,{show_dialog:function(){if(!_p.dialog){_p.make_dialog();} _p.dialog.show();},make_dialog:function(){var d=new Dialog(360,140,'Print Formats',[['HTML','Select'],['Check','No Letterhead'],['HTML','Buttons']]);$btn(d.widgets.Buttons,'Print',function(){_p.build(sel_val(cur_frm.print_sel),_p.go,d.widgets['No Letterhead'].checked);},{cssFloat:'right',marginBottom:'16px',marginLeft:'7px'},'green');$btn(d.widgets.Buttons,'Preview',function(){_p.build(sel_val(cur_frm.print_sel),_p.preview,d.widgets['No Letterhead'].checked);},{cssFloat:'right',marginBottom:'16px'},'');d.onshow=function(){var c=_p.dialog.widgets['Select'];if(c.cur_sel&&c.cur_sel.parentNode==c){c.removeChild(c.cur_sel);} c.appendChild(cur_frm.print_sel);c.cur_sel=cur_frm.print_sel;} _p.dialog=d;},formats:{},build:function(fmtname,onload,no_letterhead,only_body){args={fmtname:fmtname,onload:onload,no_letterhead:no_letterhead,only_body:only_body};if(!cur_frm){alert('No Document Selected');return;} -var doc=locals[cur_frm.doctype][cur_frm.docname];if(args.fmtname=='Standard'){args.onload(_p.render({body:_p.print_std(args.no_letterhead),style:_p.print_style,doc:doc,title:doc.name,no_letterhead:args.no_letterhead,only_body:args.only_body}));}else{if(!_p.formats[args.fmtname]){var build_args=args;$c(command='webnotes.widgets.form.get_print_format',args={'name':build_args.fmtname},fn=function(r,rt){_p.formats[build_args.fmtname]=r.message;build_args.onload(_p.render({body:_p.formats[build_args.fmtname],style:'',doc:doc,title:doc.name,no_letterhead:build_args.no_letterhead,only_body:build_args.only_body}));});}else{args.onload(_p.render({body:_p.formats[args.fmtname],style:'',doc:doc,title:doc.name,no_letterhead:args.no_letterhead,only_body:args.only_body}));}}},render:function(args){var container=document.createElement('div');var stat='';stat+=_p.show_draft(args);stat+=_p.show_archived(args);container.innerHTML=args.body;_p.run_embedded_js(container,args.doc);var style=_p.consolidate_css(container,args);_p.show_letterhead(container,args);_p.render_header_on_break(container,args);return _p.render_final(style,stat,container,args);},head_banner_format:function(){return"\ +var doc=locals[cur_frm.doctype][cur_frm.docname];if(args.fmtname=='Standard'){args.onload(_p.render({body:_p.print_std(args.no_letterhead),style:_p.print_style,doc:doc,title:doc.name,no_letterhead:args.no_letterhead,only_body:args.only_body}));}else{if(!_p.formats[args.fmtname]){var build_args=args;$c(command='webnotes.widgets.form.get_print_format',args={'name':build_args.fmtname},fn=function(r,rt){_p.formats[build_args.fmtname]=r.message;build_args.onload(_p.render({body:_p.formats[build_args.fmtname],style:'',doc:doc,title:doc.name,no_letterhead:build_args.no_letterhead,only_body:build_args.only_body}));});}else{args.onload(_p.render({body:_p.formats[args.fmtname],style:'',doc:doc,title:doc.name,no_letterhead:args.no_letterhead,only_body:args.only_body}));}}},render:function(args){var container=document.createElement('div');var stat='';stat+=_p.show_draft(args);stat+=_p.show_archived(args);container.innerHTML=args.body;_p.show_letterhead(container,args);_p.run_embedded_js(container,args.doc);var style=_p.consolidate_css(container,args);_p.render_header_on_break(container,args);return _p.render_final(style,stat,container,args);},head_banner_format:function(){return"\
"},show_draft:function(args){if(args.doc&&cint(args.doc.docstatus)==0&&cur_frm.perm[0][SUBMIT]){draft=_p.head_banner_format();draft=draft.replace("{{HEAD}}","DRAFT");draft=draft.replace("{{DESCRIPTION}}","This box will go away after the document is submitted.");return draft;}else{return"";}},show_archived:function(args){if(args.doc&&args.doc.__archived){archived=_p.head_banner_format();archived=archived.replace("{{HEAD}}","ARCHIVED");archived=archived.replace("{{DESCRIPTION}}","You must restore this document to make it editable.");}else{return"";}},consolidate_css:function(container,args){var body_style='';var style_list=container.getElementsByTagName('style');while(style_list&&style_list.length>0){for(i in style_list){if(style_list[i]&&style_list[i].innerHTML){body_style+=style_list[i].innerHTML;var parent=style_list[i].parentNode;if(parent){parent.removeChild(style_list[i]);}else{container.removeChild(style_list[i]);}}} style_list=container.getElementsByTagName('style');} style_concat=(args.only_body?'':_p.def_print_style_body) -+_p.def_print_style_other -+args.style -+body_style;return style_concat;},run_embedded_js:function(container,doc){var jslist=container.getElementsByTagName('script');while(jslist&&jslist.length>0){for(i in jslist){if(jslist[i]&&jslist[i].innerHTML){var code=jslist[i].innerHTML;var parent=jslist[i].parentNode;var span=$a(parent,'span');parent.replaceChild(span,jslist[i]);var val=eval(code);if(!val){val='';} ++_p.def_print_style_other+args.style+body_style;return style_concat;},run_embedded_js:function(container,doc){var jslist=container.getElementsByTagName('script');while(jslist&&jslist.length>0){for(i in jslist){if(jslist[i]&&jslist[i].innerHTML){var code=jslist[i].innerHTML;var parent=jslist[i].parentNode;var span=$a(parent,'span');parent.replaceChild(span,jslist[i]);var val=code?eval(code):'';if(!val||typeof(val)=='object'){val='';} span.innerHTML=val;}} jslist=container.getElementsByTagName('script');}},show_letterhead:function(container,args){if(!(args.no_letterhead||args.only_body)){container.innerHTML='
'+_p.get_letter_head()+'
' +container.innerHTML;}},render_header_on_break:function(container,args){var page_set=container.getElementsByClassName('page-settings');if(page_set.length){for(var i=0;i
';for(var i=0;iSR';$y(cell,{width:'30px'});$y(cell,me.head_cell_style);col_start++;} for(var c=col_start;c1)?me.table_list:me.table_list[0];} _e.email_as_field='email_id';_e.email_as_dt='Contact';_e.email_as_in='email_id,contact_name';sendmail=function(emailto,emailfrom,cc,subject,message,fmt,with_attachments){var fn=function(html){$c('webnotes.utils.email_lib.send_form',{'sendto':emailto,'sendfrom':emailfrom?emailfrom:'','cc':cc?cc:'','subject':subject,'message':replace_newlines(message),'body':html,'full_domain':wn.urllib.get_base_url(),'with_attachments':with_attachments?1:0,'dt':cur_frm.doctype,'dn':cur_frm.docname},function(r,rtxt){});} _p.build(fmt,fn);} diff --git a/js/legacy/widgets/form/print_format.js b/js/legacy/widgets/form/print_format.js index cfe8c85ef5..f7e0c74ce0 100644 --- a/js/legacy/widgets/form/print_format.js +++ b/js/legacy/widgets/form/print_format.js @@ -155,12 +155,12 @@ $.extend(_p, { // Append args.body's content as a child of container container.innerHTML = args.body; - _p.run_embedded_js(container, args.doc); - var style = _p.consolidate_css(container, args); - // Show letterhead? _p.show_letterhead(container, args); + _p.run_embedded_js(container, args.doc); + var style = _p.consolidate_css(container, args); + _p.render_header_on_break(container, args); return _p.render_final(style, stat, container, args); @@ -235,10 +235,9 @@ $.extend(_p, { } // Concatenate all styles + //style_concat = _p.def_print_style_other + args.style + body_style; style_concat = (args.only_body ? '' : _p.def_print_style_body) - + _p.def_print_style_other - + args.style - + body_style; + + _p.def_print_style_other + args.style + body_style; return style_concat; }, @@ -254,8 +253,8 @@ $.extend(_p, { var parent = jslist[i].parentNode; var span = $a(parent, 'span'); parent.replaceChild(span, jslist[i]); - var val = eval(code); - if(!val) { val = ''; } + var val = code ? eval(code) : ''; + if(!val || typeof(val)=='object') { val = ''; } span.innerHTML = val; } } @@ -319,7 +318,7 @@ $.extend(_p, { if(cur_frm.doc.letter_head) { lh = cstr(_p.letter_heads[cur_frm.doc.letter_head]); } else if (cp.letter_head) { - lh = cp.letter_head + lh = cp.letter_head; } return lh; }, @@ -347,8 +346,6 @@ $.extend(_p, { margin: 8px 0px; \ }", - print_style_other: "", - print_std: function(no_letterhead) { // Get doctype, docname, layout for a doctype var docname = cur_frm.docname; @@ -516,7 +513,7 @@ $.extend(_p, { } else { page_break = '\n\
'; + class = "page_break">
'; // If a list of tables is passed for(var i = 0; i < t.length-1; i++) { @@ -547,7 +544,7 @@ $.extend(_p, { print_std_add_field: function(dt, dn, f, layout) { var val = _f.get_value(dt, dn, f.fieldname); if(f.fieldtype!='Button') { - if(val || in_list['Float', 'Int', 'Currency'], f.fieldtype) { + if(val || in_list(['Float', 'Int', 'Currency'], f.fieldtype)) { // If value or a numeric type then proceed // Add field table @@ -579,7 +576,7 @@ $.extend(_p, { }); -print_table = function(dt, dn, fieldname, tabletype, cols, head_labels, widths, condition, cssClass) { +print_table = function(dt, dn, fieldname, tabletype, cols, head_labels, widths, condition, cssClass, modifier) { var me = this; $.extend(this, { flist: fields_list[tabletype], @@ -601,7 +598,8 @@ print_table = function(dt, dn, fieldname, tabletype, cols, head_labels, widths, border: '1px solid #000', padding: '2px', verticalAlign: 'top', - backgroundColor: '#ddd' + backgroundColor: '#ddd', + fontWeight: 'bold' }, table_style: { @@ -668,10 +666,9 @@ print_table = function(dt, dn, fieldname, tabletype, cols, head_labels, widths, cell.innerHTML = head_labels?head_labels[c]:flist[c].label; if(flist[c].width) { $y(cell, {width: flist[c].width}); } if(widths) { $y(cell, {width: widths[c]}); } - if(flist[c].fieldtype == 'Currency') { + if(in_list(['Currency', 'Float'], flist[c].fieldtype)) { $y(cell, { textAlign: 'right' }); } - cell.style.fontWeight = 'bold'; } return table; }, @@ -698,9 +695,12 @@ print_table = function(dt, dn, fieldname, tabletype, cols, head_labels, widths, for(var c=me.flist.indexOf('SR')+1; c 1) ? me.table_list : me.table_list[0]; -} \ No newline at end of file +} diff --git a/js/legacy/wnf.compressed.js b/js/legacy/wnf.compressed.js index 997f89695f..eb79295b56 100644 --- a/js/legacy/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -909,8 +909,7 @@ redirect_to_login();});} function redirect_to_login(){if(login_file) window.location.href=login_file;else window.location.href='index.html';} -_p.def_print_style_body="html, body, div, span, td { font-family: Arial, Helvetica; font-size: 12px; }" -+"\npre { margin:0; padding:0;}" +_p.def_print_style_body="html, body, div, span, td { font-family: Arial, Helvetica; font-size: 12px; }"+"\npre { margin:0; padding:0;}" _p.def_print_style_other="\n.simpletable, .noborder { border-collapse: collapse; margin-bottom: 10px;}" +"\n.simpletable td {border: 1pt solid #000; vertical-align: top; padding: 2px; }" +"\n.noborder td { vertical-align: top; }" diff --git a/py/webnotes/utils/__init__.py b/py/webnotes/utils/__init__.py index b3d044d7dd..39c36cca29 100644 --- a/py/webnotes/utils/__init__.py +++ b/py/webnotes/utils/__init__.py @@ -389,7 +389,7 @@ def money_in_words(number, main_currency = None, fraction_currency=None): if not fraction_currency: fraction_currency = d.get('fraction_currency', 'paise') - n = str(flt(number)) + n = "%.2f" % flt(number) main, fraction = n.split('.') if len(fraction)==1: fraction += '0'