From: erickson Date: Mon, 23 Jun 2008 04:29:20 +0000 (+0000) Subject: added option to generate bibs/volumes/copies at PO creation time. needs more error... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3b59b2031e6b1ccfe652a00fc709953dc63bb0cc;p=Evergreen.git added option to generate bibs/volumes/copies at PO creation time. needs more error handling also not very useful until we can add barcodes, callnumber labels, and shelving locations via UI or automatically fixed typo state => state() git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9917 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- 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 f8bcbdde7f..c9e27bab42 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 @@ -2,6 +2,7 @@ dojo.require('fieldmapper.Fieldmapper'); dojo.require('dijit.ProgressBar'); dojo.require('dijit.form.Form'); dojo.require('dijit.form.TextBox'); +dojo.require('dijit.form.CheckBox'); dojo.require('dijit.form.FilteringSelect'); dojo.require('dijit.form.Button'); dojo.require("dijit.Dialog"); @@ -13,6 +14,7 @@ dojo.require('openils.widget.OrgUnitFilteringSelect'); var recvCount = 0; var user = new openils.User(); +var createAssetsSelected = false; var lineitems = []; @@ -77,9 +79,10 @@ function viewList() { JUBGrid.populate(liGrid, model, lineitems) } -function createPOFromLineitems() { +function createPOFromLineitems(fields) { var po = new acqpo() po.provider(newPOProviderSelector.getValue()); + createAssetsSelected = fields.create_assets; // find the selected lineitems var selected = liGrid.selection.getSelected(); @@ -89,7 +92,7 @@ function createPOFromLineitems() { var id = liGrid.model.getRow(rowIdx).id; for(var i = 0; i < lineitems.length; i++) { var li = lineitems[i]; - if(li.id() == id && !li.purchase_order() && li.state == 'approved') + if(li.id() == id && !li.purchase_order() && li.state() == 'approved') selList.push(lineitems[i]); } } @@ -98,6 +101,10 @@ function createPOFromLineitems() { openils.acq.PO.create(po, function(poId) { + if(e = openils.Event.parse(poId)) { + alert(e); + return; + } updateLiList(poId, selList); } ); @@ -107,17 +114,43 @@ function updateLiList(poId, selList) { _updateLiList(poId, selList, 0); } +function viewPO(poId) { + location.href = 'view/' + poId; +} + function _updateLiList(poId, selList, idx) { - if(idx >= selList.length) - return location.href = 'view/' + poId; + if(idx >= selList.length) { + if(createAssetsSelected) + return createAssets(poId); + else + return viewPo(poId); + } var li = selList[idx]; li.purchase_order(poId); + li.state('in-process'); new openils.acq.Lineitems({lineitem:li}).update( function(stat) { _updateLiList(poId, selList, ++idx); } ); } + +function createAssets(poId) { + fieldmapper.standardRequest( + ['open-ils.acq','open-ils.acq.purchase_order.assets.create'], + { + async: true, + params: [user.authtoken, poId], + oncomplete : function(r) { + if(e = openils.Event.parse(r.recv().content())) + alert(e); + else + viewPO(poId); + } + } + ); +} 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 340a3039f4..7f7d4a7995 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 @@ -76,17 +76,12 @@ searchAttr="shortname" name="ordering_agency" autocomplete="true" labelAttr='shortname'> - - - more creation options... -