+++ /dev/null
-dojo.require("dijit.Dialog");
-dojo.require('dijit.form.FilteringSelect');
-dojo.require('dijit.layout.TabContainer');
-dojo.require('dijit.layout.ContentPane');
-dojo.require('dojox.grid.DataGrid');
-dojo.require('dijit.form.CurrencyTextBox');
-dojo.require("dijit.form.CheckBox");
-dojo.require('dojo.data.ItemFileReadStore');
-dojo.require("fieldmapper.OrgUtils");
-dojo.require('openils.acq.Fund');
-dojo.require('openils.acq.FundingSource');
-dojo.require('openils.Event');
-dojo.require('openils.User');
-dojo.require('openils.Util');
-dojo.require("openils.widget.AutoFieldWidget");
-dojo.require("openils.widget.AutoGrid");
-
-var fund = null;
-var tagManager;
-var xferManager;
-
-function getSummaryInfo(rowIndex, item) {
- if(!item) return'';
- return new String(fund.summary()[this.field]);
-}
-
-function createAllocation(fields) {
- fields.fund = fundID;
- if(isNaN(fields.amount)) fields.amount = null;
- openils.acq.Fund.createAllocation(fields,
- function(r){location.href = location.href;});
-}
-function getOrgInfo(rowIndex, item) {
- if(!item) return '';
- var owner = this.grid.store.getValue(item, 'org');
- return fieldmapper.aou.findOrgUnit(owner).shortname();
-
-}
-
-
-function getFundingSource(rowIndex, item) {
- if(item) {
- var fsId = this.grid.store.getValue(item, 'funding_source');
- return openils.acq.FundingSource.retrieve(fsId);
- }
-}
-
-function formatFundingSource(fs) {
- if(fs) {
- return '<a href="' + oilsBasePath + '/acq/funding_source/view/'+fs.id()+'">'+fs.code()+'</a>';
- }
-}
-
-function getXferDest(rowIndex, item) {
- if(!item) return '';
- var xfer_destination = this.grid.store.getValue(item, 'xfer_destination');
- if(!(item && xfer_destination)) return '';
- return xfer_destination;
-}
-
-function loadFundGrid() {
- var store = new dojo.data.ItemFileReadStore({data:acqf.toStoreData([fund])});
- fundGrid.setStore(store);
- fundGrid.render();
-}
-
-function loadAllocationGrid() {
- if(fundAllocationGrid.isLoaded) return;
- /* XXX If we want to show allocating user with a username instead of just
- * ID#, the following pcrud search will have to be replaced with an API
- * call. */
- fundAllocationGrid.loadAll({order_by : {acqfa : 'create_time DESC'}}, {fund : fundID});
- fundAllocationGrid.isLoaded = true;
-}
-
-function loadDebitGrid() {
- if(fundDebitGrid.isLoaded) return;
- fundDebitGrid.loadAll({order_by : {acqfdeb : 'create_time DESC'}}, {fund : fundID});
- fundDebitGrid.isLoaded = true;
-}
-
-function fetchFund() {
- fieldmapper.standardRequest(
- ['open-ils.acq', 'open-ils.acq.fund.retrieve'],
- { async: true,
- params: [
- openils.User.authtoken, fundID,
- {flesh_summary:1, flesh_tags:1}
- ],
- oncomplete: function(r) {
- fund = r.recv().content();
- loadFundGrid(fund);
- }
- }
- );
-}
-
-function TransferManager() {
- var self = this;
-
- this._init = function() {
- new openils.widget.AutoFieldWidget({
- "fmField": "fund",
- /* We're not really using LIDs here, we just need some class
- * that has a fund field to take advantage of AutoFieldWidget's
- * magic. */
- "fmClass": "acqlid",
- "labelFormat": ["${0} (${1})", "code", "year"],
- "searchFormat": ["${0} (${1})", "code", "year"],
- "searchFilter": {"active": "t"}, /* consider making it possible
- to select inactive? */
- "parentNode": dojo.byId("oils-acq-fund-xfer-d-selector"),
- "orgLimitPerms": ["ADMIN_ACQ_FUND"], /* XXX is there a more
- appropriate permission
- for this? */
- "dijitArgs": {
- "onChange": function() {
- openils.Util[
- this.item.currency_type == fund.currency_type() ?
- "hide" : "show"
- ]("oils-acq-fund-xfer-dest-amount", "table-row");
- }
- },
- "forceSync": true
- }).build(function(w, ww) { self.fundSelector = w; });
-
- dijit.byId("oils-acq-fund-xfer-same-o-d").onChange = function() {
- dijit.byId("oils-acq-fund-xfer-d-amount").attr(
- "disabled", this.attr("checked")
- );
- }
- };
-
- this._init();
-
- this.clearFundSelector = function() {
- if (this.fundSelector.attr("value"))
- this.fundSelector.attr("value", "");
- };
-
- this.setFundName = function(fund) {
- dojo.byId("oils-acq-fund-xfer-name-fund").innerHTML =
- fund.code() + " (" + fund.year() + ") / " + fund.name();
- };
-
- this.submit = function() {
- var values = xferDialog.getValues();
- var dfund = this.fundSelector.item;
- var dfund_id = typeof(dfund.id) == "object" ? dfund.id[0] : dfund.id;
-
- if (dfund_id == fund.id()) {
- alert(localeStrings.FUND_XFER_SAME_SOURCE_AND_DEST);
- return false;
- }
- if (confirm(localeStrings.FUND_XFER_CONFIRM)) {
- fieldmapper.standardRequest(
- ["open-ils.acq", "open-ils.acq.funds.transfer_money"], {
- "params": [
- openils.User.authtoken,
- fund.id(),
- values.o_amount,
- dfund_id,
- (dfund.currency_type != fund.currency_type() &&
- values.same_o_d.length) ? null : values.d_amount,
- values.note
- ],
- "async": true,
- "oncomplete": function(r) {
- if (openils.Util.readResponse(r) == 1) {
- location.href = location.href;
- }
- }
- }
- );
- }
- };
-}
-
-function load() {
- tagManager = new TagManager(dojo.byId("oils-acq-tag-manager-display"));
- tagManager.prepareTagSelector(tagSelector);
-
- xferManager = new TransferManager();
-
- fetchFund();
-}
-
-openils.Util.addOnLoad(load);