]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/acq/po/view_po.js
Merging acq-experiment to trunk, since rel_1_4 has been branched.
[working/Evergreen.git] / Open-ILS / web / js / ui / default / acq / po / view_po.js
1 dojo.require("dijit.Dialog");
2 dojo.require('dijit.form.FilteringSelect');
3 dojo.require('dijit.layout.TabContainer');
4 dojo.require('dijit.layout.ContentPane');
5 dojo.require('dojox.grid.Grid');
6 dojo.require('openils.acq.PO');
7 dojo.require('openils.Event');
8 dojo.require('openils.User');
9 dojo.require('openils.Util');
10 dojo.require('fieldmapper.OrgUtils');
11 dojo.require('openils.acq.Provider');
12 dojo.require('openils.acq.Lineitem');
13 dojo.require('dojo.date.locale');
14 dojo.require('dojo.date.stamp');
15
16 var PO = null;
17 var lineitems = [];
18
19 function getOrgInfo(rowIndex) {
20     data = poGrid.model.getRow(rowIndex);
21     if(!data) return;
22     return fieldmapper.aou.findOrgUnit(data.owner).shortname();
23 }
24
25 function getProvider(rowIndex) {
26     data = poGrid.model.getRow(rowIndex);
27     if(!data) return;
28     return openils.acq.Provider.retrieve(data.provider).code();
29 }
30
31 function getPOOwner(rowIndex) {
32     data = poGrid.model.getRow(rowIndex);
33     if(!data) return;
34     return new openils.User({id:data.owner}).user.usrname();
35 }
36
37 function getDateTimeField(rowIndex) {
38     data = poGrid.model.getRow(rowIndex);
39     if(!data) return;
40     var date = dojo.date.stamp.fromISOString(data[this.field]);
41     return dojo.date.locale.format(date, {formatLength:'medium'});
42 }
43
44 function loadPOGrid() {
45     if(!PO) return;
46     var store = new dojo.data.ItemFileReadStore({data:acqpo.toStoreData([PO])});
47     var model = new dojox.grid.data.DojoData(
48         null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}});
49     poGrid.setModel(model);
50     poGrid.update();
51 }
52
53 function loadLIGrid() {
54     if(liGrid.isLoaded) return;
55
56     function load(po) {
57         lineitems = po.lineitems();
58         var store = new dojo.data.ItemFileReadStore({data:jub.toStoreData(lineitems)});
59         var model = new dojox.grid.data.DojoData(
60             null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}});
61         JUBGrid.populate(liGrid, model, lineitems)
62     }
63
64     openils.acq.PO.retrieve(poId, load, {flesh_lineitems:1, clear_marc:1});
65     liGrid.isLoaded = true;
66 }
67
68 function loadPage() {
69     fetchPO();
70 }
71
72 function fetchPO() {
73     openils.acq.PO.retrieve(poId, 
74         function(po) {
75             PO = po;
76             loadPOGrid();
77         },
78         {flesh_lineitem_count:1}
79     );
80 }
81
82 openils.Util.addOnLoad(loadPage);