1 dojo.require("dijit.Dialog");
2 dojo.require("dijit.form.FilteringSelect");
3 dojo.require('dijit.form.Button');
4 dojo.require('dijit.TooltipDialog');
5 dojo.require('dijit.form.DropDownButton');
6 dojo.require('dijit.form.CheckBox');
7 dojo.require('dojox.grid.DataGrid');
8 dojo.require('dojo.data.ItemFileWriteStore');
9 dojo.require('openils.widget.OrgUnitFilteringSelect');
10 dojo.require('openils.acq.CurrencyType');
11 dojo.require('openils.Event');
12 dojo.require('openils.Util');
13 dojo.require('openils.User');
14 dojo.require('openils.acq.Fund');
15 dojo.require('openils.widget.AutoGrid');
16 dojo.require('openils.widget.ProgressDialog');
20 function getBalanceInfo(rowIndex, item) {
22 var id = this.grid.store.getValue( item, 'id');
23 var fund = openils.acq.Fund.cache[id];
24 if(fund && fund.summary())
25 return fund.summary().combined_balance;
31 var connect = function() {
32 dojo.connect(contextOrgSelector, 'onChange',
34 contextOrg = this.attr('value');
36 loadFundGrid(fundFilterYearSelect.attr('value'));
41 new openils.User().buildPermOrgSelector(
42 'ADMIN_ACQ_FUND', contextOrgSelector, null, connect);
47 tagManager = new TagManager(lfGrid);
50 function loadFundGrid(year) {
53 year = year || new Date().getFullYear().toString();
54 lfGrid.dataLoader = function() { loadFundGrid(year); };
56 if(contextOrg == null)
57 contextOrg = openils.User.user.ws_ou();
59 fieldmapper.standardRequest(
60 [ 'open-ils.acq', 'open-ils.acq.fund.org.retrieve'],
64 openils.User.authtoken,
65 {year : year, org : fieldmapper.aou.descendantNodeList(contextOrg, true)},
68 limit: lfGrid.displayLimit,
69 offset: lfGrid.displayOffset
73 onresponse : function(r) {
74 if(lf = openils.Util.readResponse(r)) {
75 openils.acq.Fund.cache[lf.id()] = lf;
76 lfGrid.store.newItem(acqf.toStoreItem(lf));
80 oncomplete : function(r) {
81 lfGrid.hideLoadProgressIndicator();
87 function loadYearSelector() {
89 fieldmapper.standardRequest(
90 ['open-ils.acq', 'open-ils.acq.fund.org.years.retrieve'],
92 params : [openils.User.authtoken],
93 oncomplete : function(r) {
95 var yearList = openils.Util.readResponse(r);
97 yearList = yearList.map(function(year){return {year:year+''};}); // dojo wants strings
99 var yearStore = {identifier:'year', name:'year', items:yearList};
100 yearStore.items = yearStore.items.sort().reverse();
101 fundFilterYearSelect.store = new dojo.data.ItemFileReadStore({data:yearStore});
103 // default to this year
104 fundFilterYearSelect.setValue(new Date().getFullYear().toString());
107 fundFilterYearSelect,
110 loadFundGrid(fundFilterYearSelect.attr('value'));
118 function performRollover(args) {
119 progressDialog.show(true, "Processing...");
121 var method = 'open-ils.acq.fiscal_rollover';
123 if(args.rollover[0] == 'on') {
124 method += '.combined';
126 method += '.propagate';
129 if(args.dry_run[0] == 'on')
130 method += '.dry_run';
133 fieldmapper.standardRequest(
134 ['open-ils.acq', method],
139 openils.User.authtoken,
140 fundFilterYearSelect.attr('value'),
142 false, // TODO: checkbox in dialog
145 onresponse : function(r) {
146 var resp = openils.Util.readResponse(r);
147 responses.push(resp);
150 oncomplete : function() {
151 alert(responses.length);
152 progressDialog.hide();
158 openils.Util.addOnLoad(initPage);