From 11cef46f8c2c9cc6b683a204c3b494e7a61a2b77 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 22 May 2008 02:28:09 +0000 Subject: [PATCH] added rudimentary po creation from lineitem search. git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9662 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/dojo/openils/acq/Lineitems.js | 13 +++++++ Open-ILS/web/js/dojo/openils/acq/PO.js | 18 +++++++++ .../media/ui_js/oils/default/acq/po/li_search.js | 43 +++++++++++++++++++-- .../templates/oils/default/acq/po/li_search.html | 44 +++++++++++++++++++++- 4 files changed, 113 insertions(+), 5 deletions(-) diff --git a/Open-ILS/web/js/dojo/openils/acq/Lineitems.js b/Open-ILS/web/js/dojo/openils/acq/Lineitems.js index 47ddbe084a..729f744263 100644 --- a/Open-ILS/web/js/dojo/openils/acq/Lineitems.js +++ b/Open-ILS/web/js/dojo/openils/acq/Lineitems.js @@ -22,6 +22,7 @@ dojo.require('dojo.data.ItemFileWriteStore'); dojo.require('dojox.grid.Grid'); dojo.require('dojox.grid._data.model'); dojo.require('fieldmapper.dojoData'); +dojo.require('openils.User'); /** Declare the Lineitems class with dojo */ dojo.declare('openils.acq.Lineitems', null, { @@ -39,6 +40,18 @@ dojo.declare('openils.acq.Lineitems', null, { if (attr.attr_type() == type && attr.attr_name() == name) return attr.attr_value(); } + }, + + update: function(oncomplete) { + fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.lineitem.update'], + { async: true, + params: [openils.User.authtoken, this.lineitem], + oncomplete: function(r) { + oncomplete(r.recv().content()) + } + } + ); } }); diff --git a/Open-ILS/web/js/dojo/openils/acq/PO.js b/Open-ILS/web/js/dojo/openils/acq/PO.js index f536a6b6d7..6e92d8c774 100644 --- a/Open-ILS/web/js/dojo/openils/acq/PO.js +++ b/Open-ILS/web/js/dojo/openils/acq/PO.js @@ -49,6 +49,24 @@ if(!dojo._hasResource['openils.acq.PO']) { fieldmapper.standardRequest(req, par); } } + + openils.acq.PO.create = function(po, oncomplete) { + var req = ['open-ils.acq', 'open-ils.acq.purchase_order.create']; + var par = [openils.User.authtoken, po]; + + fieldmapper.standardRequest( + req, + { params: par, + async: true, + oncomplete: function(r) { + var po_id = r.recv().content(); + po.id(po_id); + openils.acq.PO.cache[po_id] = po; + oncomplete(po_id); + } + } + ); + } }; 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 b41d98c994..22ee466686 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 @@ -3,9 +3,13 @@ dojo.require('dijit.ProgressBar'); dojo.require('dijit.form.Form'); dojo.require('dijit.form.TextBox'); 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.Provider'); +dojo.require('openils.acq.PO'); +dojo.require('openils.widget.OrgUnitFilteringSelect'); var recvCount = 0; var user = new openils.User(); @@ -13,10 +17,15 @@ var user = new openils.User(); var lineitems = []; function drawForm() { + buildProviderSelect(providerSelector); +} + +function buildProviderSelect(sel, oncomplete) { openils.acq.Provider.createStore( function(store) { - providerSelector.store = - new dojo.data.ItemFileReadStore({data:store}); + sel.store = new dojo.data.ItemFileReadStore({data:store}); + if(oncomplete) + oncomplete(); }, 'MANAGE_PROVIDER' ); @@ -31,7 +40,8 @@ function doSearch(values) { search[v] = val; } - search = [search, {limit:searchLimit, offset:searchOffset}]; + //search = [search, {limit:searchLimit, offset:searchOffset}]; + search = [search, {}]; options = {clear_marc:1, flesh_attrs:1}; liReceived = 0; @@ -106,4 +116,31 @@ function getJUBPrice(rowIndex) { {lineitem:getLi(data.id)}).findAttr('price', 'lineitem_marc_attr_definition') } +function createPOFromLineitems() { + var po = new acqpo() + po.provider(newPOProviderSelector.getValue()); + openils.acq.PO.create(po, + function(poId) { + updateLiList(poId); + } + ); +} + +function updateLiList(poId) { + _updateLiList(poId, 0); +} + +function _updateLiList(poId, idx) { + if(idx >= lineitems.length) + return location.href = 'view/' + poId; + var li = lineitems[idx]; + li.purchase_order(poId); + new openils.acq.Lineitems({lineitem:li}).update( + function(stat) { + _updateLiList(poId, ++idx); + } + ); +} + + dojo.addOnLoad(drawForm); 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 43b2a27ea2..920100b25f 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 @@ -25,13 +25,53 @@ labalAttr='code' searchAttr='code' jsId='providerSelector'>
${_("Search")}
- - + + +
+
+ ${('Create PO')} +
+ + + + + + + + + + + + + + + + +
+ +
+ +
more creation options...
+ +
+
+
+ +