From fa239632692687b123c6ab3fcb998bb32644e139 Mon Sep 17 00:00:00 2001 From: phasefx Date: Sun, 24 Jul 2005 21:39:52 +0000 Subject: [PATCH] some date stuff, and checkin receipts git-svn-id: svn://svn.open-ils.org/ILS/trunk@1397 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../chrome/content/evergreen/util/print.js | 64 +++++++++++++++++++++- .../chrome/content/evergreen/util/util.js | 18 +++++- 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/print.js b/Evergreen/staff_client/chrome/content/evergreen/util/print.js index 8e4f3e42c3..12aec3dc94 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/print.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/print.js @@ -6,8 +6,70 @@ var print_crlf = '
\r\n'; 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 @@ -21,7 +83,7 @@ function sPrint(s) { this.focus(); NSPrint(w); w.minimize(); mw.minimize(); - w.close(); + //w.close(); },0 ); } diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/util.js b/Evergreen/staff_client/chrome/content/evergreen/util/util.js index 1276fe4700..3f11e62e0f 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/util.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/util.js @@ -149,10 +149,24 @@ function cents_as_dollars( cents ) { 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; -- 2.11.0