--- /dev/null
+<ng-template #dialogContent>
+ <form class="form-validated">
+ <div class="modal-header bg-info">
+ <h3 class="modal-title" i18n>Apply Claim Policy</h3>
+ <button type="button" class="close"
+ i18n-aria-label aria-label="Close" (click)="close()">
+ <span aria-hidden="true">×</span>
+ </button>
+ </div>
+ <div class="modal-body">
+ <h4 i18n>Select a claim policy:</h4>
+ <eg-combobox domId="acq-claim-policy-dialog" name="acq-claim-policy-dialog"
+ [asyncSupportsEmptyTermClick]="true"
+ idlClass="acqclp" [(ngModel)]="claimPolicy"></eg-combobox>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-success" [disabled]="!claimPolicy"
+ (click)="close(claimPolicy.id)" i18n>Apply</button>
+ <button type="button" class="btn btn-warning"
+ (click)="close()" i18n>Exit Dialog</button>
+ </div>
+ </form>
+</ng-template>
+
--- /dev/null
+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); }
+}
<!-- BATCH ACTIONS -->
<eg-acq-cancel-dialog #cancelDialog></eg-acq-cancel-dialog>
+<eg-acq-claim-policy-dialog #claimPolicyDialog></eg-acq-claim-policy-dialog>
<div class="row mt-3" *ngIf="poId || picklistId">
<div class="col-lg-1">
[disabled]="!poId" i18n>Un-Receive Selected Lineitems</button>
<button ngbDropdownItem (click)="cancelSelected()"
[disabled]="!poId" i18n>Cancel Selected Lineitems</button>
+ <button ngbDropdownItem (click)="applyClaimPolicyToSelected()"
+ [disabled]="!poId || !selectedIds().length" i18n>Apply Claim Policy to Selected Lineitems</button>
</div>
</div>
</div>
<span i18n>Invoice(s)</span>
</a>
- <!-- TODO: claim policy -->
+ <ng-container *ngIf="li.claim_policy()">
+ <span class="ml-1 mr-1" i18n> | </span>
+ <span i18n>Claim policy: {{li.claim_policy().name()}}</span>
+ </ng-container>
<ng-container *ngIf="li.provider()">
<span class="ml-1 mr-1" i18n> | </span>
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'
focusLi: number;
@ViewChild('cancelDialog') cancelDialog: CancelDialogComponent;
+ @ViewChild('claimPolicyDialog') claimPolicyDialog: ClaimPolicyDialogComponent;
constructor(
private router: Router,
});
}
+ 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; }
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({
LineitemCopyAttrsComponent,
LineitemHistoryComponent,
CancelDialogComponent,
+ ClaimPolicyDialogComponent,
BriefRecordComponent,
LineitemWorksheetComponent
],
exports: [
LineitemListComponent,
- CancelDialogComponent
+ CancelDialogComponent,
+ ClaimPolicyDialogComponent
],
imports: [
StaffCommonModule,
flesh_pl: true,
flesh_formulas: true,
flesh_copies: true,
+ flesh_claim_policy: true,
clear_marc: false,
apply_order_identifiers: true
}, params.fleshMore || {});