Select FYs based on the calendar of the ordering agency (or WS to start) and make...
authorMike Rylander <mrylander@gmail.com>
Tue, 8 Feb 2022 19:17:04 +0000 (14:17 -0500)
committerMike Rylander <mrylander@gmail.com>
Tue, 8 Feb 2022 19:17:04 +0000 (14:17 -0500)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/eg2/src/app/staff/acq/picklist/upload.component.ts
Open-ILS/src/eg2/src/app/staff/acq/picklist/upload.service.ts

index f862c83..5421e99 100644 (file)
@@ -212,7 +212,11 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
             this.vlagent.getAllQueues('bib'),
             this.vlagent.getMatchSets('bib'),
             this.vlagent.getBibSources(),
-            this.vlagent.getFiscalYears(),
+            this.vlagent.getFiscalYears(this.auth.user().ws_ou()).then( years => {
+                this.vlagent.getDefaultFiscalYear(this.auth.user().ws_ou()).then(
+                    y => { this.selectedFiscalYear = y.id(); this.fiscalYearSelector.applyEntryId(this.selectedFiscalYear); }
+                )
+            }),
             this.vlagent.getSelectionLists(),
             this.vlagent.getItemImportDefs(),
            this.org.settings(['vandelay.default_match_set']).then(
@@ -226,6 +230,11 @@ export class UploadComponent implements OnInit, AfterViewInit, OnDestroy {
 
     orgOnChange(org: IdlObject) {
         this.orderingAgency = org.id();
+        this.vlagent.getFiscalYears(this.orderingAgency).then( years => {
+            this.vlagent.getDefaultFiscalYear(this.orderingAgency).then(
+                y => { this.selectedFiscalYear = y.id(); this.fiscalYearSelector.applyEntryId(this.selectedFiscalYear); }
+            )
+        });
     }
 
     loadTemplates() {
index 15e78f7..9352422 100644 (file)
@@ -25,6 +25,7 @@ export class PicklistUploadService {
     mergeProfiles: IdlObject[];
     providersList: IdlObject[];
     fiscalYears: IdlObject[];
+    defaultFiscalYear: IdlObject;
     selectionLists: IdlObject[];
     queueType: string;
     recordType: string;
@@ -123,17 +124,25 @@ export class PicklistUploadService {
         });
     }
 
-    getFiscalYears(): Promise<IdlObject[]> {
-        if (this.fiscalYears) {
-            return Promise.resolve(this.fiscalYears);
-        }
+    getDefaultFiscalYear(org: number): Promise<IdlObject> {
+        return this.net.request(
+            'open-ils.acq',
+            'open-ils.acq.org_unit.current_fiscal_year',
+            this.auth.token(), org
+        ).pipe(tap(afy => {
+            this.defaultFiscalYear = this.fiscalYears.filter(fy => Number(fy.year()) === Number(afy))[0];
+        })).toPromise().then(() => {
+            return this.defaultFiscalYear;
+        });
+    }
 
+    getFiscalYears(org: number): Promise<IdlObject[]> {
         return this.pcrud.retrieveAll('acqfy',
           {order_by: {acqfy: 'year'}},
           {atomic: true}
         ).toPromise().then(years => {
-            this.fiscalYears = years;
-            return years;
+            this.fiscalYears = years.filter( y => y.calendar() == this.org.get(org).fiscal_calendar())
+            return this.fiscalYears;
         });
     }