Initial dev repository
[kcls-web.git] / js / ui / default / acq / financial / view_provider.js
diff --git a/js/ui/default/acq/financial/view_provider.js b/js/ui/default/acq/financial/view_provider.js
new file mode 100644 (file)
index 0000000..58bee4c
--- /dev/null
@@ -0,0 +1,99 @@
+dojo.require("dijit.Dialog");
+dojo.require('dijit.layout.TabContainer');
+dojo.require('dijit.layout.ContentPane');
+dojo.require('dijit.form.FilteringSelect');
+dojo.require('dojox.grid.DataGrid');
+dojo.require('dojo.data.ItemFileReadStore');
+dojo.require("fieldmapper.OrgUtils");
+dojo.require('openils.acq.Provider');
+dojo.require('openils.Event');
+dojo.require('openils.User');
+dojo.require('openils.Util');
+
+var provider = null;
+var marcRegex = /^\/\/\*\[@tag="(\d+)"]\/\*\[@code="(\w)"]$/;
+
+function getOrgInfo(rowIndex, item) {
+    if(!item) return ''; 
+    var owner = this.grid.store.getValue(item, 'owner'); 
+    return fieldmapper.aou.findOrgUnit(owner).shortname();
+
+}
+
+function getTag(rowIdx, item) {
+    if(!item) return '';
+    var xpath = this.grid.store.getValue(item, 'xpath');
+    return xpath.replace(marcRegex, '$1');
+}
+
+function getSubfield(rowIdx, item) {
+    if(!item) return '';
+    var xpath = this.grid.store.getValue(item, 'xpath');
+    return xpath.replace(marcRegex, '$2');
+}
+
+function loadProviderGrid() {
+    var store = new dojo.data.ItemFileReadStore({data:acqpro.toStoreData([provider])});
+   
+    providerGrid.setStore(store);
+    providerGrid.render();
+}
+
+function loadPADGrid() {
+    openils.acq.Provider.retrieveLineitemProviderAttrDefs(providerId, 
+        function(attrs) {
+            var store = new dojo.data.ItemFileReadStore({data:acqlipad.toStoreData(attrs)});
+            var model = new dojox.grid.data.DojoData(
+                null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}});
+            padGrid.setModel(model);
+            padGrid.update();
+        }
+    );
+}
+
+
+function fetchProvider() {
+    fieldmapper.standardRequest(
+        ['open-ils.acq', 'open-ils.acq.provider.retrieve'],
+        {   async: true,
+            params: [ openils.User.authtoken, providerId ],
+            oncomplete: function(r) {
+                provider = r.recv().content();
+                loadProviderGrid(provider);
+            }
+        }
+    );
+}
+
+function createOrderRecordField(fields) {
+    fields.provider = providerId;
+    if(!fields.xpath) 
+        fields.xpath = '//*[@tag="'+fields.tag+'"]/*[@code="'+fields.subfield+'"]';
+    delete fields.tag;
+    delete fields.subfield;
+    openils.acq.Provider.createLineitemProviderAttrDef(fields, 
+        function(id) {
+            loadPADGrid();
+        }
+    );
+}
+
+function setORDesc() {
+    var code = dijit.byId('oils-acq-provider-or-code');
+    var desc = dijit.byId('oils-acq-provider-or-desc');
+    desc.setValue(code.getDisplayedValue());
+}
+
+function deleteORDataFields() {
+    var list = []
+    var selected = padGrid.selection.getSelected();
+    for(var idx = 0; idx < selected.length; idx++) 
+        list.push(padGrid.model.getRow(selected[idx]).id);
+    openils.acq.Provider.lineitemProviderAttrDefDeleteList(
+        list, function(){loadPADGrid();});
+}
+
+
+openils.Util.addOnLoad(fetchProvider);
+
+