From 4b8bf8dbf3c0416bdf0f1f024d019c84833f4bfa Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 25 Jul 2012 17:03:00 -0400 Subject: [PATCH] acq invoice : totals are read-only; update cost after async LI retrieval returns Signed-off-by: Bill Erickson --- Open-ILS/src/templates/acq/invoice/view.tt2 | 9 +++------ Open-ILS/web/css/skin/default/acq.css | 2 +- Open-ILS/web/js/ui/default/acq/invoice/view.js | 21 ++++++++++----------- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/Open-ILS/src/templates/acq/invoice/view.tt2 b/Open-ILS/src/templates/acq/invoice/view.tt2 index 2503964fde..59c5bb0542 100644 --- a/Open-ILS/src/templates/acq/invoice/view.tt2 +++ b/Open-ILS/src/templates/acq/invoice/view.tt2 @@ -161,13 +161,10 @@ dojoType='dijit.form.Button' onclick='saveChanges({reopen:true});'>[% l('Reopen') %] - -
+
-
-
+
+
diff --git a/Open-ILS/web/css/skin/default/acq.css b/Open-ILS/web/css/skin/default/acq.css index 6d03933675..07fccb8865 100644 --- a/Open-ILS/web/css/skin/default/acq.css +++ b/Open-ILS/web/css/skin/default/acq.css @@ -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; } diff --git a/Open-ILS/web/js/ui/default/acq/invoice/view.js b/Open-ILS/web/js/ui/default/acq/invoice/view.js index 16f16256d4..3848b22c0d 100644 --- a/Open-ILS/web/js/ui/default/acq/invoice/view.js +++ b/Open-ILS/web/js/ui/default/acq/invoice/view.js @@ -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) { -- 2.11.0