From 5d59b1eb7deb3151eb0c35f1e3a2c905869cf970 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Mon, 29 Nov 2021 11:11:02 -0500 Subject: [PATCH] LP#1942220: hook up claim policies - Display claim policy (if set) in the LI table - Add the 'Apply Claim Policy to Selected Lineitems' action Signed-off-by: Galen Charlton --- .../lineitem/claim-policy-dialog.component.html | 24 +++++++++++++++++++ .../acq/lineitem/claim-policy-dialog.component.ts | 15 ++++++++++++ .../acq/lineitem/lineitem-list.component.html | 8 ++++++- .../staff/acq/lineitem/lineitem-list.component.ts | 27 ++++++++++++++++++++++ .../src/app/staff/acq/lineitem/lineitem.module.ts | 5 +++- .../src/app/staff/acq/lineitem/lineitem.service.ts | 1 + 6 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.html create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.ts diff --git a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.html b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.html new file mode 100644 index 0000000000..a1f8ce9c74 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.html @@ -0,0 +1,24 @@ + +
+ + + +
+
+ diff --git a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.ts new file mode 100644 index 0000000000..419fbc439d --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/claim-policy-dialog.component.ts @@ -0,0 +1,15 @@ +import {Component, Input, ViewChild, TemplateRef, OnInit} from '@angular/core'; +import {NgbModal} from '@ng-bootstrap/ng-bootstrap'; +import {DialogComponent} from '@eg/share/dialog/dialog.component'; +import {IdlService, IdlObject} from '@eg/core/idl.service'; +import {ComboboxEntry} from '@eg/share/combobox/combobox.component'; + +@Component({ + selector: 'eg-acq-claim-policy-dialog', + templateUrl: './claim-policy-dialog.component.html' +}) + +export class ClaimPolicyDialogComponent extends DialogComponent { + claimPolicy: number; + constructor(private modal: NgbModal) { super(modal); } +} diff --git a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.html b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.html index c471adef0c..397fc60f2d 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.html +++ b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.html @@ -1,6 +1,7 @@ +
@@ -25,6 +26,8 @@ [disabled]="!poId" i18n>Un-Receive Selected Lineitems +
@@ -257,7 +260,10 @@ Invoice(s) - + + | + Claim policy: {{li.claim_policy().name()}} + | diff --git a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.ts index 941bc9f07a..c0690d99cf 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem-list.component.ts @@ -12,6 +12,7 @@ import {LineitemService} from './lineitem.service'; import {ComboboxEntry} from '@eg/share/combobox/combobox.component'; import {HoldingsService} from '@eg/staff/share/holdings/holdings.service'; import {CancelDialogComponent} from './cancel-dialog.component'; +import {ClaimPolicyDialogComponent} from './claim-policy-dialog.component'; const DELETABLE_STATES = [ 'new', 'selector-ready', 'order-ready', 'approved', 'pending-order' @@ -58,6 +59,7 @@ export class LineitemListComponent implements OnInit { focusLi: number; @ViewChild('cancelDialog') cancelDialog: CancelDialogComponent; + @ViewChild('claimPolicyDialog') claimPolicyDialog: ClaimPolicyDialogComponent; constructor( private router: Router, @@ -488,6 +490,31 @@ export class LineitemListComponent implements OnInit { }); } + applyClaimPolicyToSelected() { + const liIds = this.selectedIds(); + if (liIds.length === 0) { return; } + + this.claimPolicyDialog.open().subscribe(claimPolicy => { + if (!claimPolicy) { return; } + + const lis: IdlObject[] = []; + this.liService.getFleshedLineitems(liIds, { fromCache: true }).subscribe( + liStruct => { + liStruct.lineitem.claim_policy(claimPolicy); + lis.push(liStruct.lineitem); + }, + err => { }, + () => { + this.net.request( + 'open-ils.acq', + 'open-ils.acq.lineitem.update', + this.auth.token(), lis + ).toPromise().then(resp => this.postBatchAction(resp, liIds)); + } + ); + }); + } + markReceived(liIds: number[]) { if (liIds.length === 0) { return; } diff --git a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.module.ts b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.module.ts index 888830f9dc..e86b6afeec 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.module.ts @@ -16,6 +16,7 @@ import {LineitemCopyAttrsComponent} from './copy-attrs.component'; import {LineitemHistoryComponent} from './history.component'; import {BriefRecordComponent} from './brief-record.component'; import {CancelDialogComponent} from './cancel-dialog.component'; +import {ClaimPolicyDialogComponent} from './claim-policy-dialog.component'; import {MarcEditModule} from '@eg/staff/share/marc-edit/marc-edit.module'; @NgModule({ @@ -30,12 +31,14 @@ import {MarcEditModule} from '@eg/staff/share/marc-edit/marc-edit.module'; LineitemCopyAttrsComponent, LineitemHistoryComponent, CancelDialogComponent, + ClaimPolicyDialogComponent, BriefRecordComponent, LineitemWorksheetComponent ], exports: [ LineitemListComponent, - CancelDialogComponent + CancelDialogComponent, + ClaimPolicyDialogComponent ], imports: [ StaffCommonModule, diff --git a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.service.ts b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.service.ts index e3202947ef..fd48a56a58 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.service.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/lineitem/lineitem.service.ts @@ -101,6 +101,7 @@ export class LineitemService { flesh_pl: true, flesh_formulas: true, flesh_copies: true, + flesh_claim_policy: true, clear_marc: false, apply_order_identifiers: true }, params.fleshMore || {}); -- 2.11.0