From 5312981d3d22173bde7b89873018a5432faac5ab Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 24 Jul 2008 14:59:53 +0000 Subject: [PATCH] changed openils.acq.Lineitems to openils.acq.Lineitem to match the object name (and singular case-ness of the other objects). added some initial fund encumberance UI code git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10110 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/dojo/openils/acq/Lineitems.js | 40 +++++++++++----------- Open-ILS/web/js/dojo/openils/acq/Picklist.js | 2 +- .../ui_js/oils/default/acq/picklist/bib_search.js | 4 +-- .../media/ui_js/oils/default/acq/po/li_search.js | 32 +++++++++++++---- .../media/ui_js/oils/default/acq/po/view_po.js | 2 +- .../media/ui_js/oils/default/common/jubgrid.js | 18 +++++----- .../templates/oils/default/acq/po/li_search.html | 6 ++++ .../templates/oils/default/acq/po/view_po.html | 2 +- 8 files changed, 66 insertions(+), 40 deletions(-) diff --git a/Open-ILS/web/js/dojo/openils/acq/Lineitems.js b/Open-ILS/web/js/dojo/openils/acq/Lineitems.js index ff99054a03..eda88026dc 100644 --- a/Open-ILS/web/js/dojo/openils/acq/Lineitems.js +++ b/Open-ILS/web/js/dojo/openils/acq/Lineitems.js @@ -14,9 +14,9 @@ * --------------------------------------------------------------------------- */ -if(!dojo._hasResource['openils.acq.Lineitems']) { -dojo._hasResource['openils.acq.Lineitems'] = true; -dojo.provide('openils.acq.Lineitems'); +if(!dojo._hasResource['openils.acq.Lineitem']) { +dojo._hasResource['openils.acq.Lineitem'] = true; +dojo.provide('openils.acq.Lineitem'); dojo.require('dojo.data.ItemFileWriteStore'); dojo.require('dojox.grid.Grid'); @@ -25,8 +25,8 @@ dojo.require('fieldmapper.dojoData'); dojo.require('openils.User'); dojo.require('openils.Event'); -/** Declare the Lineitems class with dojo */ -dojo.declare('openils.acq.Lineitems', null, { +/** Declare the Lineitem class with dojo */ +dojo.declare('openils.acq.Lineitem', null, { /* add instance methods here if necessary */ constructor: function(args) { @@ -102,10 +102,10 @@ dojo.declare('openils.acq.Lineitems', null, { }, }); -openils.acq.Lineitems.ModelCache = {}; -openils.acq.Lineitems.acqlidCache = {}; +openils.acq.Lineitem.ModelCache = {}; +openils.acq.Lineitem.acqlidCache = {}; -openils.acq.Lineitems.createStore = function(li_id, onComplete) { +openils.acq.Lineitem.createStore = function(li_id, onComplete) { // Fetches the details of a lineitem and builds a grid function mkStore(r) { @@ -116,7 +116,7 @@ openils.acq.Lineitems.createStore = function(li_id, onComplete) { for (i in data.lineitem_details()) { var lid = data.lineitem_details()[i]; items.push(lid); - openils.acq.Lineitems.acqlidCache[lid.id()] = lid; + openils.acq.Lineitem.acqlidCache[lid.id()] = lid; } } @@ -132,7 +132,7 @@ openils.acq.Lineitems.createStore = function(li_id, onComplete) { }); }; -openils.acq.Lineitems.alertOnLIDSet = function(griditem, attr, oldVal, newVal) { +openils.acq.Lineitem.alertOnLIDSet = function(griditem, attr, oldVal, newVal) { var item; var updateDone = function(r) { var stat = r.recv().content(); @@ -155,7 +155,7 @@ openils.acq.Lineitems.alertOnLIDSet = function(griditem, attr, oldVal, newVal) { return; } - item = openils.acq.Lineitems.acqlidCache[griditem.id]; + item = openils.acq.Lineitem.acqlidCache[griditem.id]; if (attr == "fund") { item.fund(newVal); @@ -168,7 +168,7 @@ openils.acq.Lineitems.alertOnLIDSet = function(griditem, attr, oldVal, newVal) { } else if (attr == "location") { item.location(newVal); } else { - alert("Unexpected attr in Lineitems.alertOnSet: '"+attr+"'"); + alert("Unexpected attr in Lineitem.alertOnSet: '"+attr+"'"); return; } @@ -179,7 +179,7 @@ openils.acq.Lineitems.alertOnLIDSet = function(griditem, attr, oldVal, newVal) { }); }; -openils.acq.Lineitems.deleteLID = function(id, onComplete) { +openils.acq.Lineitem.deleteLID = function(id, onComplete) { fieldmapper.standardRequest( ['open-ils.acq', 'open-ils.acq.lineitem_detail.delete'], { async: true, @@ -192,7 +192,7 @@ openils.acq.Lineitems.deleteLID = function(id, onComplete) { }); }; -openils.acq.Lineitems.createLID = function(fields, onCreateComplete) { +openils.acq.Lineitem.createLID = function(fields, onCreateComplete) { var lid = new acqlid() for (var field in fields) { lid[field](fields[field]); @@ -213,24 +213,24 @@ openils.acq.Lineitems.createLID = function(fields, onCreateComplete) { }); }; -openils.acq.Lineitems.loadGrid = function(domNode, id, layout) { - if (!openils.acq.Lineitems.ModelCache[id]) { - openils.acq.Lineitems.createStore(id, +openils.acq.Lineitem.loadGrid = function(domNode, id, layout) { + if (!openils.acq.Lineitem.ModelCache[id]) { + openils.acq.Lineitem.createStore(id, function(storeData) { var store = new dojo.data.ItemFileWriteStore({data:storeData}); var model = new dojox.grid.data.DojoData(null, store, {rowsPerPage: 20, clientSort:true, query:{id:'*'}}); dojo.connect(store, "onSet", - openils.acq.Lineitems.alertOnLIDSet); - openils.acq.Lineitems.ModelCache[id] = model; + openils.acq.Lineitem.alertOnLIDSet); + openils.acq.Lineitem.ModelCache[id] = model; domNode.setStructure(layout); domNode.setModel(model); domNode.update(); }); } else { - domNode.setModel(openils.acq.Lineitems.ModelCache[id]); + domNode.setModel(openils.acq.Lineitem.ModelCache[id]); domNode.setStructure(layout); domNode.update(); domNode.refresh(); diff --git a/Open-ILS/web/js/dojo/openils/acq/Picklist.js b/Open-ILS/web/js/dojo/openils/acq/Picklist.js index 489c1f060a..3d814e9417 100644 --- a/Open-ILS/web/js/dojo/openils/acq/Picklist.js +++ b/Open-ILS/web/js/dojo/openils/acq/Picklist.js @@ -113,7 +113,7 @@ dojo.declare('openils.acq.Picklist', null, { var res = r.recv().content(); if(e = openils.Event.parse(res)) return alert(e); - var oldVal = new openils.acq.Lineitems( + var oldVal = new openils.acq.Lineitem( {lineitem:item}).findAttr(attr, 'lineitem_local_attr_definition'); if(oldVal) { // if this attr already exists on the object, just update the value diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/picklist/bib_search.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/picklist/bib_search.js index dbebe48909..ff9453b30a 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/picklist/bib_search.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/picklist/bib_search.js @@ -6,7 +6,7 @@ dojo.require('dijit.form.TextBox'); dojo.require('dijit.form.NumberSpinner'); dojo.require('openils.Event'); dojo.require('openils.acq.Picklist'); -dojo.require('openils.acq.Lineitems'); +dojo.require('openils.acq.Lineitem'); dojo.require('openils.User'); var searchFields = []; @@ -194,7 +194,7 @@ function updateLiList(pl, list, idx, oncomplete) { return oncomplete(); var li = selectedLIs[idx]; li.picklist(pl); - new openils.acq.Lineitems({lineitem:li}).update( + new openils.acq.Lineitem({lineitem:li}).update( function(r) { updateLiList(pl, list, ++idx, oncomplete); } diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js index c9e27bab42..99ec94f89f 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js @@ -7,14 +7,14 @@ dojo.require('dijit.form.FilteringSelect'); dojo.require('dijit.form.Button'); dojo.require("dijit.Dialog"); dojo.require('openils.Event'); -dojo.require('openils.acq.Lineitems'); +dojo.require('openils.acq.Lineitem'); dojo.require('openils.acq.Provider'); dojo.require('openils.acq.PO'); dojo.require('openils.widget.OrgUnitFilteringSelect'); var recvCount = 0; -var user = new openils.User(); var createAssetsSelected = false; +var createDebitsSelected = false; var lineitems = []; @@ -57,7 +57,7 @@ function doSearch(values) { fieldmapper.standardRequest( ['open-ils.acq', 'open-ils.acq.lineitem.search'], { async: true, - params: [user.authtoken, search, options], + params: [openils.User.authtoken, search, options], onresponse: handleResult, oncomplete: viewList } @@ -73,7 +73,9 @@ function handleResult(r) { function viewList() { dojo.style('searchProgress', 'visibility', 'hidden'); dojo.style('oils-acq-li-search-result-grid', 'visibility', 'visible'); - var store = new dojo.data.ItemFileReadStore({data:jub.toStoreData(lineitems)}); + var store = new dojo.data.ItemFileReadStore( + {data:jub.toStoreData(lineitems, null, + {virtualFields:['estimated_price', 'actual_price']})}); var model = new dojox.grid.data.DojoData( null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}}); JUBGrid.populate(liGrid, model, lineitems) @@ -83,6 +85,7 @@ function createPOFromLineitems(fields) { var po = new acqpo() po.provider(newPOProviderSelector.getValue()); createAssetsSelected = fields.create_assets; + createDebitsSelected = fields.create_debits; // find the selected lineitems var selected = liGrid.selection.getSelected(); @@ -114,6 +117,23 @@ function updateLiList(poId, selList) { _updateLiList(poId, selList, 0); } +function checkCreateDebits(poId) { + if(!createDebitsSelected) + return viewPO(poId); + fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.purchase_order.debits.create'], + { async: true, + params: [openils.User.authtoken, poId, {encumbrance:1}], + oncomplete : function(r) { + var total = r.recv().content(); + if(e = openils.Event.parse(total)) + return alert(e); + viewPO(poId); + } + } + ); +} + function viewPO(poId) { location.href = 'view/' + poId; } @@ -128,7 +148,7 @@ function _updateLiList(poId, selList, idx) { var li = selList[idx]; li.purchase_order(poId); li.state('in-process'); - new openils.acq.Lineitems({lineitem:li}).update( + new openils.acq.Lineitem({lineitem:li}).update( function(stat) { _updateLiList(poId, selList, ++idx); } @@ -140,7 +160,7 @@ function createAssets(poId) { ['open-ils.acq','open-ils.acq.purchase_order.assets.create'], { async: true, - params: [user.authtoken, poId], + params: [openils.User.authtoken, poId], oncomplete : function(r) { if(e = openils.Event.parse(r.recv().content())) alert(e); diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/view_po.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/view_po.js index b3eed3feb8..0a8e3621c4 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/view_po.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/view_po.js @@ -8,7 +8,7 @@ dojo.require('openils.Event'); dojo.require('openils.User'); dojo.require('fieldmapper.OrgUtils'); dojo.require('openils.acq.Provider'); -dojo.require('openils.acq.Lineitems'); +dojo.require('openils.acq.Lineitem'); dojo.require('dojo.date.locale'); dojo.require('dojo.date.stamp'); diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js index 492d12a019..e7572ec83c 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js @@ -7,7 +7,7 @@ dojo.require('dojox.grid.Grid'); dojo.require("openils.User"); dojo.require("openils.acq.Fund"); -dojo.require("openils.acq.Lineitems"); +dojo.require("openils.acq.Lineitem"); dojo.require('openils.acq.Provider'); dojo.require("openils.widget.FundSelector"); dojo.require('openils.editors'); @@ -33,7 +33,7 @@ var JUBGrid = { _getMARCAttr : function(rowIndex, attr) { var data = JUBGrid.jubGrid.model.getRow(rowIndex); if (!data) return ''; - return new openils.acq.Lineitems( + return new openils.acq.Lineitem( {lineitem:JUBGrid.getLi(data.id)}).findAttr(attr, 'lineitem_marc_attr_definition') }, getJUBTitle : function(rowIndex) { @@ -48,7 +48,7 @@ var JUBGrid = { getJUBActualPrice : function(rowIndex) { var data = JUBGrid.jubGrid.model.getRow(rowIndex); if (!data) return ''; - var price = new openils.acq.Lineitems( + var price = new openils.acq.Lineitem( {lineitem:JUBGrid.getLi(data.id)}).getActualPrice(); if(price) return price.price; return '' @@ -56,7 +56,7 @@ var JUBGrid = { getJUBEstimatedPrice : function(rowIndex) { var data = JUBGrid.jubGrid.model.getRow(rowIndex); if (!data) return ''; - var price = new openils.acq.Lineitems( + var price = new openils.acq.Lineitem( {lineitem:JUBGrid.getLi(data.id)}).getEstimatedPrice(); if(price) return price.price; return '' @@ -122,7 +122,7 @@ var JUBGrid = { } else { grid = JUBGrid.jubDetailGridLayout; } - openils.acq.Lineitems.loadGrid( + openils.acq.Lineitem.loadGrid( JUBGrid.jubDetailGrid, JUBGrid.jubGrid.model.getRow(evt.rowIndex).id, grid); } @@ -138,7 +138,7 @@ var JUBGrid = { for (var idx = 0; idx < selected.length; idx++) { var rowIdx = selected[idx]; var jub = JUBGrid.jubGrid.model.getRow(rowIdx); - var li = new openils.acq.Lineitems({lineitem:JUBGrid.getLi(jub.id)}); + var li = new openils.acq.Lineitem({lineitem:JUBGrid.getLi(jub.id)}); var approveStore = function(evt) { if (evt) { // something bad happened @@ -152,7 +152,7 @@ var JUBGrid = { "approved"); JUBGrid.jubGrid.update(); // Reload lineitem details, read-only - openils.acq.Lineitems.loadGrid( + openils.acq.Lineitem.loadGrid( JUBGrid.jubDetailGrid, li.id(), JUBGrid.jubDetailGridLayoutReadOnly); }; @@ -243,7 +243,7 @@ var JUBGrid = { JUBGrid.jubDetailGrid.update(); }; - openils.acq.Lineitems.deleteLID(lid.id, deleteFromStore); + openils.acq.Lineitem.deleteLID(lid.id, deleteFromStore); } }, @@ -255,7 +255,7 @@ var JUBGrid = { JUBGrid.jubGrid.update(); JUBGrid.jubGrid.refresh(); } - openils.acq.Lineitems.createLID(fields, addToStore); + openils.acq.Lineitem.createLID(fields, addToStore); }, }; diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html index 7f7d4a7995..638af6e881 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html @@ -83,6 +83,12 @@ + + + + + + diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html index 0c354b1de7..7db83d1704 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html @@ -9,7 +9,7 @@ var poId = ${c.oils.acq.po_id.value}; - +
${_('PO Details')}
-- 2.11.0