some date stuff, and checkin receipts
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 24 Jul 2005 21:39:52 +0000 (21:39 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 24 Jul 2005 21:39:52 +0000 (21:39 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1397 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/staff_client/chrome/content/evergreen/util/print.js
Evergreen/staff_client/chrome/content/evergreen/util/util.js

index 8e4f3e4..12aec3d 100644 (file)
@@ -6,8 +6,70 @@ var print_crlf = '<br />\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
        );
 }
index 1276fe4..3f11e62 100644 (file)
@@ -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;