return undef;
}
+__PACKAGE__->register_method(
+ method => 'org_fiscal_year',
+ api_name => 'open-ils.acq.org_unit.current_fiscal_year',
+ signature => {
+ desc => q/
+ Returns the current fiscal year for the given org unit.
+ If no fiscal year is configured, the current calendar
+ year is returned.
+ /,
+ params => [
+ {desc => 'Authentication token', type => 'string'},
+ {desc => 'Org unit ID', type => 'number'}
+ ],
+ return => {desc => 'Year as a string (e.g. "2012")'}
+ }
+);
+
+sub org_fiscal_year {
+ my($self, $conn, $auth, $org_id) = @_;
+
+ my $e = new_editor(authtoken => $auth);
+ return $e->event unless $e->checkauth;
+
+ my $year = $e->json_query({
+ select => {acqfy => ['year']},
+ from => {acqfy => {acqfc => {join => 'aou'}}},
+ where => {
+ '+acqfy' => {
+ year_begin => {'<=' => 'now'},
+ year_end => {'>=' => 'now'},
+ },
+ '+aou' => {id => $org_id}
+ }
+ })->[0];
+
+ return $year ? $year->{year} : DateTime->now->year;
+}
1;
orgLimitPerms : ['CREATE_PICKLIST', 'CREATE_PURCHASE_ORDER'],
parentNode : dojo.byId('acq-pl-upload-agency'),
}).build(
- function(w) { orderAgencyWidget = w }
+ function(w) {
+ orderAgencyWidget = w
+ dojo.connect(orderAgencyWidget, 'onChange', setDefaultFiscalYear);
+ }
);
vlAgent = new VLAgent();
);
}
+function setDefaultFiscalYear(org) {
+ org = org || orderAgencyWidget.attr('value');
+
+ if (org) {
+
+ fieldmapper.standardRequest(
+ ['open-ils.acq', 'open-ils.acq.org_unit.current_fiscal_year'],
+ { params : [openils.User.authtoken, org],
+ async : true,
+ oncomplete : function(r) {
+ var year = openils.Util.readResponse(r);
+ acqUploadYearSelector.attr('value', year);
+ }
+ }
+ );
+ }
+}
+
function acqUploadRecords() {
openils.Util.show('acq-pl-upload-progress');
var picklist = acqPlUploadPlSelector.attr('value');
yearStore.items = yearStore.items.sort().reverse();
acqUploadYearSelector.store = new dojo.data.ItemFileReadStore({data:yearStore});
- // default to this year
- // TODO: current fiscal year
- acqUploadYearSelector.setValue(new Date().getFullYear().toString());
+ // until an ordering agency is selected, default to the
+ // fiscal year of the workstation
+ setDefaultFiscalYear(new openils.User().user.ws_ou());
}
}
);