checkin
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 17 Jul 2005 06:22:46 +0000 (06:22 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 17 Jul 2005 06:22:46 +0000 (06:22 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1240 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/staff_client/chrome/content/evergreen/circ/checkin.js
Evergreen/staff_client/chrome/content/evergreen/circ/checkin.xul
Evergreen/staff_client/chrome/content/evergreen/circ/checkin_items.js
Evergreen/staff_client/chrome/content/evergreen/circ/checkin_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/circ/circ_utils.js
Evergreen/staff_client/chrome/content/evergreen/main/app_shell_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/util/error.js
Evergreen/staff_client/chrome/content/evergreen/util/fm_utils.js
Evergreen/staff_client/chrome/locale/en-US/evergreen/OpenILS.properties
Evergreen/staff_client/chrome/locale/en-US/evergreen/checkin.dtd [new file with mode: 0644]

index f47da05..ad14beb 100755 (executable)
@@ -14,6 +14,23 @@ function checkin_init(p) {
        p.refresh = function() {
        }
 
+       p.retrieve_button = p.w.document.getElementById('PatronSearch_retrieve_button');
+       p.retrieve_button.addEventListener(
+               'command',
+               function (ev) {
+                       spawn_patron_display(
+                               p.w.app_shell,'new_tab','main_tabbox',
+                               {
+                                       'patron' : retrieve_patron_by_id(
+                                               p._patron.id()
+                                       )
+                               }
+                       );
+               }
+               ,false
+       );
+
+
        sdump('D_TRACE_EXIT',arg_dump(arguments));
        return p;
 }
@@ -25,7 +42,7 @@ function checkin_clamshell_init(p) {
 }
 
 function checkin_checkin_items_init(p) {
-       p.checkin_items = checkin_items_init( { 'w' : p.w, 'node' : p.checkin_items_node, 'popupset_node' : p.popupset_node, 'debug' : p.app } );
+       p.checkin_items = checkin_items_init( { 'w' : p.w, 'node' : p.checkin_items_node, 'debug' : p.app } );
 
        var checkins = [];
        var tb = p.checkin_items_node.getElementsByAttribute('id','checkin_barcode_entry_textbox')[0];
@@ -33,16 +50,13 @@ function checkin_checkin_items_init(p) {
 
        p.attempt_checkin = function(barcode) {
                try {
-                       if (! is_barcode_valid(barcode) ) throw('Invalid Barcode');
-                       var permit_check = checkout_permit( barcode, p._patron.id(), 0 );
-                       if (permit_check.status == 0) {
-                               var check = checkout_by_barcode( barcode, p._patron.id() );
-                               if (check) {
-                                       checkins.push( check );
-                                       p.checkin_items.add_checkin_items( [ checkins.length - 1 ] );
-                               }
-                       } else {
-                               throw(permit_check.text);
+                       //if (! is_barcode_valid(barcode) ) throw('Invalid Barcode');
+                       var check = checkin_by_copy_barcode( barcode );
+                       if (check) {
+                               sdump('D_CHECKIN','check = ' + check + '\n' + pretty_print( js2JSON( check ) ) + '\n');
+                               checkins.push( check );
+                               p.checkin_items.add_checkin_items( [ checkins.length - 1 ] );
+                               tb.value = ''; tb.focus();
                        }
                } catch(E) {
                        handle_error(E);
index b6a69c7..b22c1f5 100755 (executable)
@@ -7,14 +7,17 @@
 <page id="checkin_win"
        orient="vertical" style="overflow: auto" width="800" height="500"
        sizemode="maximized" persist="width height" 
-       onload="params.w = window; 
+       onload="try {
+               params.w = window; 
                params.app = 'Checkin'; 
                params.clamshell_node = document.getElementById('ClamShell_main');
-               params.patron_items_node = document.getElementById('PatronItems_main');
-               params.patron_checkout_items_node = document.getElementById('PatronCheckoutItems_main');
+               params.checkin_items_node = document.getElementById('CheckinItems_main');
                params.commandset_node = document.getElementById('universal_cmds');
-               mw.focus_widget( document, 'PatronNavBar_refresh' );
-               mw.OpenILS_init(params);"
+               mw.focus_widget( document, 'checkin_barcode_entry_textbox' );
+               mw.OpenILS_init(params);
+               } catch(E) {
+                       alert(E);
+               }"
        onunload="mw.OpenILS_exit(params);"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
index 42859db..c006b71 100644 (file)
@@ -4,11 +4,11 @@ function checkin_items_init(p) {
        sdump('D_CHECKIN_ITEMS',"TESTING: checkin_items.js: " + mw.G['main_test_variable'] + '\n');
        sdump('D_CONSTRUCTOR',arg_dump(arguments));
 
-       p.checkin_items_cols = circ_cols();
+       p.checkin_items_cols = checkin_cols();
 
        p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.checkin_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } );
-       p.add_checkout_items = p.paged_tree.add_rows;
-       p.clear_checkout_items = p.paged_tree.clear_tree;
+       p.add_checkin_items = p.paged_tree.add_rows;
+       p.clear_checkin_items = p.paged_tree.clear_tree;
 
        p.register_checkin_items_select_callback = function (f) {
                sdump('D_CHECKIN_ITEMS','p.register_checkin_items_select_callback(' + f + ')\n');
@@ -41,7 +41,7 @@ function checkin_items_tree_map_checkin_items_to_cols(p, checkin_items, treeitem
        for (var i = 0; i < p.checkin_items_cols.length; i++) {
                var hash = p.checkin_items_cols[i];
                sdump('D_CHECKIN_ITEMS','Considering ' + js2JSON(hash) + '\n');
-               var obj_string;
+               var obj_string = 'checkin_items';
                switch( hash.fm_class ) {
                        case 'acp' : obj_string = 'checkin_items.copy'; break;
                        case 'circ' : obj_string = 'checkin_items.circ'; break;
index e3eb97d..4a5813f 100755 (executable)
@@ -5,7 +5,9 @@
 
        <script>mw.sdump('D_TRACE','Loading checkin_overlay.xul\n');</script>
 
+       <?xul-overlay href="chrome://evergreen/content/main/clam_shell_overlay.xul"?>
        <?xul-overlay href="chrome://evergreen/content/circ/checkin_items_overlay.xul"?>
+       <?xul-overlay href="chrome://evergreen/content/patron/patron_display_status_overlay.xul"?>
 
 <commandset id="universal_cmds">
 
 </box>
 
 <deck id="ClamShell_first_deck">
+       <box id="PatronDisplayStatus_main" />
+       <spacer id="csfds" flex="1" />
 </deck>
 
 <deck id="ClamShell_second_deck">
-       <box id="CheckinItems_main"/>
+       <groupbox id="cssdgb">
+               <caption id="cssdgbc" label="&circ.checkin.caption;"/>
+               <box id="CheckinItems_main"/>
+       </groupbox>
 </deck>
 
 <hbox id="CheckinItems_insert1">
        <label id="checkin_scan_barcode_label" value="&circ.checkin.scan_label;" accesskey="&circ.checkin.scan_label.accesskey;" control="checkin_scan_textbox"/>
         <textbox id="checkin_barcode_entry_textbox"/>
-        <button id="checkin_submit_barcode_button" value="&circ.checkin.submit_label;" accesskey="&circ.checkin.submit_label.accesskey;"/>
+        <button id="checkin_submit_barcode_button" label="&circ.checkin.submit_label;" accesskey="&circ.checkin.submit_label.accesskey;"/>
 </hbox>
 
 <hbox id="CheckinItems_insert2" />
 <hbox id="CheckinItems_insert3" />
 <hbox id="CheckinItems_insert4" />
 
+<hbox id="PatronDisplayStatus_insert2">
+       <label id="PatronSearch_patron_name" class="patronNameMedium"
+               tooltiptext="&checkin_patron.name.label;"
+               value=" "
+               render="true" fm_class="au" 
+               render_value="patron_get_full_name($$)" />
+</hbox>
+<hbox id="PatronDisplayStatus_insert4">
+       <button id="PatronSearch_retrieve_button" 
+               disabled="true"
+               label="&checkin_patron.retrieve;" 
+               accesskey="&checkin_patron.retrieve.accesskey;"/>
+</hbox>
+
+<hbox id="CheckinItems_insert3">
+       <button id="checkin_print" label="&checkin.print_receipt_label;" accesskey="&checkin.print_receipt_label.accesskey;"/>
+       <button id="checkin_reprint" label="&checkin.reprint_receipt_label;" accesskey="&checkin.reprint_receipt_label.accesskey;"/>
+       <spacer id="cii3s" flex="1"/>
+       <checkbox id="checkin_auto" label="&checkin.auto_print_label;" accesskey="&checkin.auto_print_label.accesskey;"/> 
+       <button id="checkin_done" label="&checkin.done_label;" accesskey="&checkin.done_label.accesskey;"/>
+</hbox>
+
 
 <!-- Accelerator Keys (Accessor Keys are in DTD's) -->
 <keyset id="Checkin_keys">
index 0f842e0..312104d 100644 (file)
@@ -71,6 +71,28 @@ function renew_by_circ_id(id) {
        }
 }
 
+function checkin_cols() {
+       var cols = [
+               {
+                       'id' : 'checkin_status', 'label' : getString('checkin_label_status'), 'flex' : 1,
+                       'primary' : false, 'hidden' : false, 'fm_class' : '', 'fm_field_render' : '.status.toString()'
+               },
+               {
+                       'id' : 'checkin_route_to', 'label' : getString('checkin_label_route_to'), 'flex' : 1,
+                       'primary' : false, 'hidden' : false, 'fm_class' : '', 'fm_field_render' : '.route_to.toString()'
+               },
+               {
+                       'id' : 'checkin_text', 'label' : getString('checkin_label_text'), 'flex' : 1,
+                       'primary' : false, 'hidden' : false, 'fm_class' : '', 'fm_field_render' : '.text.toString()'
+               }
+       ];
+       var std_cols = map_list( 
+               circ_cols(), 
+               function(o){ if ((o.fm_class == 'acp')||(o.fm_class == 'circ')) o.hidden = true; return o; }
+       );
+       return merge_arrays( cols, std_cols );
+}
+
 function circ_cols() {
        return  [
                {
index 1b99081..526eea4 100644 (file)
@@ -34,7 +34,7 @@
                mw.spawn_circ_display(document,'replace_tab','main_tabbox',{}); "/>
 
        <command id="cmd_circ_checkin" oncommand="
-               mw.spawn_check_in(document,'replace_tab','main_tabbox',{}); "/> 
+               mw.spawn_checkin(document,'replace_tab','main_tabbox',{}); "/>  
 
        <command id="cmd_search_opac" oncommand="
                mw.spawn_opac_navigator(document,'replace_tab','main_tabbox',{}); "/>   
index 677d777..8ed1756 100644 (file)
@@ -37,8 +37,8 @@ var sdump_levels = {
        'D_PATRON_ITEMS' : false,
        'D_PATRON_CHECKOUT_ITEMS' : false,
 
-       'D_CHECKIN' : false,
-       'D_CHECKIN_ITEMS' : false,
+       'D_CHECKIN' : true,
+       'D_CHECKIN_ITEMS' : true,
 
        'D_PATRON_UTILS' : false,
        'D_CIRC_UTILS' : false,
index 5f83d81..01cbd17 100644 (file)
@@ -99,26 +99,28 @@ function render_fm(d,obj) {
                if ( !fm_class ) continue;
                if ( obj[ fm_class ] ) {
                        sdump('D_FM_UTILS',"We're in:\n\trender_value = " + render_value + "\n\trender_css_style = " + render_css_style + "\n\trender_css_class = " + render_css_class + "\n");
-                       var result = '';
                        if (render_value) {
-                               var cmd = parse_render_string( 'obj[ fm_class ]', render_value );
-                               result = eval( cmd );
-                               sdump('D_FM_UTILS','<'+cmd+'> renders <'+result+'>\n');
+                               var result = ''; var cmd = '';
+                               cmd = parse_render_string( 'obj[ fm_class ]', render_value );
+                               try { result = eval( cmd ); } catch(E) { sdump('D_ERROR',E); }
                                set_widget_value_for_display( node, result );
+                               sdump('D_FM_UTILS','\t<'+cmd+'> renders <'+result+'>\n');
                        }
                        if (render_css_style) {
-                               var cmd = parse_render_string( 'obj[ fm_class ]', render_css_style );
+                               var result = ''; var cmd = '';
+                               cmd = parse_render_string( 'obj[ fm_class ]', render_css_style );
                                cmd = parse_render_string( 'result', cmd, /\%\%/g );
-                               var result = eval(cmd);
-                               sdump('D_FM_UTILS','\t<'+cmd+'> renders <'+result+'>\n');
+                               try { result = eval(cmd); } catch(E) { sdump('D_ERROR',E); }
                                node.setAttribute('style',result);
+                               sdump('D_FM_UTILS','\t<'+cmd+'> renders <'+result+'>\n');
                        }
                        if (render_css_class) {
-                               var cmd = parse_render_string( 'obj[ fm_class ]', render_css_class );
+                               var result = ''; var cmd = '';
+                               cmd = parse_render_string( 'obj[ fm_class ]', render_css_class );
                                cmd = cmd.replace( /\%\%/g, 'result' );
-                               var result = eval(cmd);
-                               sdump('D_FM_UTILS','\t<'+cmd+'> renders <'+result+'>\n');
+                               try { result = eval(cmd); } catch(E) { sdump('D_ERROR',E); }
                                node.setAttribute('class',result);
+                               sdump('D_FM_UTILS','\t<'+cmd+'> renders <'+result+'>\n');
                        }
                }
        }
index 8b6a04f..8905a11 100644 (file)
@@ -28,6 +28,10 @@ circ.context_opac=Show Title in OPAC
 circ.context_edit=Edit Copy
 patron.context_display=Retrieve Patron
 
+checkin_label_status=Status
+checkin_label_route_to=Route To
+checkin_label_text=Message
+
 au_label_id=Record ID
 au_label_prefix=Prefix
 au_label_family_name=Family Name
diff --git a/Evergreen/staff_client/chrome/locale/en-US/evergreen/checkin.dtd b/Evergreen/staff_client/chrome/locale/en-US/evergreen/checkin.dtd
new file mode 100644 (file)
index 0000000..500ac01
--- /dev/null
@@ -0,0 +1,20 @@
+<!ENTITY circ.checkin.caption 'Check In'>
+<!ENTITY circ.checkin.scan_label 'Enter barcode:'>
+<!ENTITY circ.checkin.scan_label.accesskey 'E'>
+<!ENTITY circ.checkin.submit_label 'Submit'>
+<!ENTITY circ.checkin.submit_label.accesskey 'S'>
+
+<!ENTITY checkin_patron.retrieve 'Retrieve Patron'>
+<!ENTITY checkin_patron.retrieve.accesskey 'R'>
+<!ENTITY checkin_patron.name.label 'Patron Name'>
+
+<!ENTITY checkin.print_receipt_label 'Print List'>
+<!ENTITY checkin.print_receipt_label.accesskey ''>
+<!ENTITY checkin.reprint_receipt_label 'Re-Print Last List'>
+<!ENTITY checkin.reprint_receipt_label.accesskey 'L'>
+<!ENTITY checkin.auto_print_label 'Auto-Print'>
+<!ENTITY checkin.auto_print_label.accesskey 'A'>
+<!ENTITY checkin.done_label 'Done'>
+<!ENTITY checkin.done_label.accesskey 'D'>
+
+