acq invoice : totals are read-only; update cost after async LI retrieval returns
authorBill Erickson <berick@esilibrary.com>
Wed, 25 Jul 2012 21:03:00 +0000 (17:03 -0400)
committerBill Erickson <berick@esilibrary.com>
Wed, 25 Jul 2012 21:03:00 +0000 (17:03 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/acq/invoice/view.tt2
Open-ILS/web/css/skin/default/acq.css
Open-ILS/web/js/ui/default/acq/invoice/view.js

index 2503964..59c5bb0 100644 (file)
                                         dojoType='dijit.form.Button' onclick='saveChanges({reopen:true});'>[% l('Reopen') %]</button>
                                 </span>
                             </td>
-                            <!--
-                            <td class='acq-invoice-center-col'><div jsId='totalInvoicedBox' readOnly='true'  dojoType='dijit.form.CurrencyTextBox' style='width:9em;'></div></td>
-                            -->
-                            <td class='acq-invoice-center-col'><div id='acq-total-invoiced-box' jsId='totalInvoicedBox' style='width:9em;'></div></td>
+                            <td class='acq-invoice-center-col'><div id='acq-total-invoiced-box'></div></td>
                             <td/>
-                            <td class='acq-invoice-paid-col'><div jsId='totalPaidBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'></div></td>
-                            <td class='acq-invoice-center-col'><div jsId='balanceOwedBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'></div></td>
+                            <td class='acq-invoice-paid-col'><div id='acq-total-paid-box'></div></td>
+                            <td class='acq-invoice-center-col'><div id='acq-total-balance-box'></div></td>
                         </tr>
                     </tbody>
                 </table>
index 6d03933..07fccb8 100644 (file)
@@ -211,7 +211,7 @@ span[name="notes_alert_flag"] {color: #c00;font-weight: bold;font-size: 110%;mar
 .acq-inoice-item-extra-info { padding-left: 10px; }
 .acq-inoice-item-info { font-weight: bold; }
 .acq-invoice-row td { border-bottom: 1px solid #e0e0e0; }
-.acq-invoice-invalid-amount input { color: red; font-weight: bold; }
+.acq-invoice-invalid-amount  { color: red; font-weight: bold; }
 .acq-link-invoice-dialog td,.acq-link-invoice-dialog th {padding-top: 10px;}
 .acq-invoice-paid-col {background : #E0E0E0; text-align: center;}
 .acq-invoice-center-col { text-align: center; }
index 16f1625..3848b22 100644 (file)
@@ -58,6 +58,10 @@ function init() {
 
     focusLineitem = new openils.CGI().param('focus_li');
 
+    totalInvoicedBox = dojo.byId('acq-total-invoiced-box');
+    totalPaidBox = dojo.byId('acq-total-paid-box');
+    balanceOwedBox = dojo.byId('acq-total-balance-box');
+
     itemTypes = pcrud.retrieveAll('aiit');
 
     dojo.byId('acq-invoice-summary-toggle-off').onclick = function() {
@@ -398,9 +402,7 @@ function updateTotalCost() {
     for(var id in widgetRegistry.acqie) 
         if(!widgetRegistry.acqie[id]._object.isdeleted())
             totalCost += Number(widgetRegistry.acqie[id].cost_billed.getFormattedValue());
-    totalInvoicedBox = dojo.byId('acq-total-invoiced-box');
-    //totalInvoicedBox.attr('value', totalCost);
-    totalInvoicedBox.innerHTML = totalCost;
+    totalInvoicedBox.innerHTML = totalCost.toFixed(2);
 
     totalPaid = 0;    
     for(var id in widgetRegistry.acqii) 
@@ -409,29 +411,26 @@ function updateTotalCost() {
     for(var id in widgetRegistry.acqie) 
         if(!widgetRegistry.acqie[id]._object.isdeleted())
             totalPaid += Number(widgetRegistry.acqie[id].amount_paid.getFormattedValue());
-    totalPaidBox.attr('value', totalPaid);
+    totalPaidBox.innerHTML = totalPaid.toFixed(2);
 
     var buttonsDisabled = false;
 
     if(totalPaid > totalCost || totalPaid < 0) {
-        openils.Util.addCSSClass(totalPaidBox.domNode, 'acq-invoice-invalid-amount');
+        openils.Util.addCSSClass(totalPaidBox, 'acq-invoice-invalid-amount');
         invoiceSaveButton.attr('disabled', true);
         invoiceProrateButton.attr('disabled', true);
         buttonsDisabled = true;
     } else {
-        openils.Util.removeCSSClass(totalPaidBox.domNode, 'acq-invoice-invalid-amount');
+        openils.Util.removeCSSClass(totalPaidBox, 'acq-invoice-invalid-amount');
         invoiceSaveButton.attr('disabled', false);
         invoiceProrateButton.attr('disabled', false);
     }
 
     if(totalCost < 0) {
-        //openils.Util.addCSSClass(totalInvoicedBox.domNode, 'acq-invoice-invalid-amount');
-        console.log('here totalCost < 0');
         openils.Util.addCSSClass(totalInvoicedBox, 'acq-invoice-invalid-amount');
         invoiceSaveButton.attr('disabled', true);
         invoiceProrateButton.attr('disabled', true);
     } else {
-        //openils.Util.removeCSSClass(totalInvoicedBox.domNode, 'acq-invoice-invalid-amount');
         openils.Util.removeCSSClass(totalInvoicedBox, 'acq-invoice-invalid-amount');
         if(!buttonsDisabled) {
             invoiceSaveButton.attr('disabled', false);
@@ -445,7 +444,7 @@ function updateTotalCost() {
         invoiceCloseButton.attr('disabled', true);
     }
 
-    balanceOwedBox.attr('value', (totalCost - totalPaid));
+    balanceOwedBox.innerHTML = (totalCost - totalPaid).toFixed(2);
 }
 
 
@@ -763,6 +762,7 @@ function addInvoiceEntry(entry) {
                 }
             );
 
+            updateTotalCost();
             if (focusLineitem == li.id())
                 focusLi();
         }
@@ -795,7 +795,6 @@ function addInvoiceEntry(entry) {
     }
 
     entryTbody.appendChild(row);
-    updateTotalCost();
 }
 
 function setPerCopyPrice(row, entry) {