function print_checkout_receipt(params) {
sdump('D_PRINT',arg_dump(arguments));
+ var s = '';
+ if (params.header) { s += print_template_replace(params.header, params); }
+ for (var i = 0; i < params.au.checkouts().length; i++) {
+ params.current_circ = params.au.checkouts()[i].circ;
+ params.current_copy = params.au.checkouts()[i].copy;
+ params.current_mvr = params.au.checkouts()[i].record;
+ params.current_index = i;
+ s += print_template_replace(params.line_item, params);
+ }
+ if (params.footer) { s += print_template_replace(params.footer, params); }
+ s = s.replace( /\n/g, print_crlf );
+ sPrint( s );
+}
+
+function print_template_replace(s,params) {
+ try{s=s.replace(/%LIBRARY%/g,params.lib.name());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%PINES_CODE%/g,params.lib.shortname());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+
+ try{s=s.replace(/%PATRON_LASTNAME%/g,params.au.family_name());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%PATRON_FIRSTNAME%/g,params.au.first_given_name());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%PATRON_MIDDLENAME%/g,params.au.second_given_name());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%PATRON_BARCODE%/g,params.au.card().barcode());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+
+ try{s=s.replace(/%TODAY%/g,new Date());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_m%/g,formatted_date(new Date(),'%m'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_d%/g,formatted_date(new Date(),'%d'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_Y%/g,formatted_date(new Date(),'%Y'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_H%/g,formatted_date(new Date(),'%H'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_I%/g,formatted_date(new Date(),'%I'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_M%/g,formatted_date(new Date(),'%M'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_D%/g,formatted_date(new Date(),'%D'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TODAY_F%/g,formatted_date(new Date(),'%F'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+
+ try{s=s.replace(/%OUT%/g,params.current_circ.xact_start());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_m%/g,formatted_date(params.current_circ.xact_start(),'%m'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_d%/g,formatted_date(params.current_circ.xact_start(),'%d'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_Y%/g,formatted_date(params.current_circ.xact_start(),'%Y'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_H%/g,formatted_date(params.current_circ.xact_start(),'%H'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_I%/g,formatted_date(params.current_circ.xact_start(),'%I'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_M%/g,formatted_date(params.current_circ.xact_start(),'%M'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_D%/g,formatted_date(params.current_circ.xact_start(),'%D'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%OUT_F%/g,formatted_date(params.current_circ.xact_start(),'%F'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+
+ try{s=s.replace(/%DUE%/g,params.current_circ.due_date());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_m%/g,formatted_date(params.current_circ.due_date(),'%m'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_d%/g,formatted_date(params.current_circ.due_date(),'%d'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_Y%/g,formatted_date(params.current_circ.due_date(),'%Y'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_H%/g,formatted_date(params.current_circ.due_date(),'%H'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_I%/g,formatted_date(params.current_circ.due_date(),'%I'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_M%/g,formatted_date(params.current_circ.due_date(),'%M'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_D%/g,formatted_date(params.current_circ.due_date(),'%D'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%DUE_F%/g,formatted_date(params.current_circ.due_date(),'%F'));}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+
+ try{s=s.replace(/%DURATION%/g,params.curent_circ.duration());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+
+ try{s=s.replace(/%COPY_BARCODE%/g,params.curent_copy.barcode());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%TITLE%/g,params.current_mvr.title());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%AUTHOR%/g,params.current_mvr.author());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%PUBLISHER%/g,params.current_mvr.publisher());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%PUBDATE%/g,params.current_mvr.pubdate());}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ try{s=s.replace(/%NUMBER%/g,params.current_index);}catch(E){sdump('D_ERROR',js2JSON(E)+'\n');}
+ return s;
}
// Lower-level
this.focus();
NSPrint(w);
w.minimize(); mw.minimize();
- w.close();
+ //w.close();
},0
);
}
return cents.substr(0,cents.length-2) + '.' + cents.substr(cents.length - 2);
}
+function db_date2Date(date) {
+ var y = date.substr(0,4);
+ var mo = date.substr(5,2);
+ var d = date.substr(8,2);
+ var h = date.substr(11,2);
+ var mi = date.substr(14,2);
+ var s = date.substr(17,2);
+ return new Date(y,mo,d,h,mi,s);
+}
+
function formatted_date(date,format) {
- // pass in a Date object or epoch seconds
+ // pass in a Date object or epoch seconds or a postgres style date string (2005-07-19 10:38:25.211964-04)
if (typeof(date) == 'string') {
- date = new Date( parseInt( date + '000' ) );
+ if (date.match(/:/) || date.match(/-/)) {
+ date = db_date2Date(date);
+ } else {
+ date = new Date( parseInt( date + '000' ) );
+ }
}
var mm = date.getMonth() + 1; mm = mm.toString(); if (mm.length == 1) mm = '0' +mm;
var dd = date.getDate().toString(); if (dd.length == 1) dd = '0' +dd;