4 <ng-container *ngIf="summary">
5 <div class="row border-bottom border-secondary pb-2 pt-2 mb-4">
6 <div class="col-lg-3 pr-0 mr-0 border-right">
7 <div class="d-flex pt-1 pb-1 striped">
8 <div class="flex-4" i18n>Total Owed:</div>
10 [ngClass]="{'font-weight-bold' : summary.balance_owed() > 0}">
11 {{summary.balance_owed() | currency}}</div>
13 <div class="d-flex pt-1 pb-1">
14 <div class="flex-4" i18n>Total Billed:</div>
15 <div class="flex-1">{{summary.total_owed() | currency}}</div>
17 <div class="d-flex pt-1 pb-1 striped">
18 <div class="flex-4" i18n>Total Paid/Credited:</div>
19 <div class="flex-1">{{summary.total_paid() | currency}}</div>
23 <div class="col-lg-3 pr-0 mr-0 border-right">
24 <div class="d-flex pt-1 pb-1 striped">
25 <div class="flex-4" i18n>Owed for Selected:</div>
26 <div class="flex-1">{{owedSelected() | currency}}</div>
28 <div class="d-flex pt-1 pb-1">
29 <div class="flex-4" i18n>Billed for Selected:</div>
30 <div class="flex-1">{{billedSelected() | currency}}</div>
32 <div class="d-flex pt-1 pb-1 striped">
33 <div class="flex-4" i18n>Paid/Credited for Selected:</div>
34 <div class="flex-1">{{paidSelected() | currency}}</div>
38 <div class="col-lg-3 pr-0 mr-0 border-right">
39 <div class="d-flex pt-1 pb-1 striped">
40 <div class="flex-4" i18n>Refunds Available:</div>
41 <div class="flex-1">{{refundsAvailable() | currency}}</div>
43 <div class="d-flex pt-1 pb-1">
44 <div class="flex-4" i18n>Credit Available:</div>
45 <div class="flex-1">{{patron().credit_forward_balance() | currency}}</div>
47 <div class="d-flex pt-1 pb-1 striped">
48 <div class="flex-4" i18n>Session Voided:</div>
49 <div class="flex-1">{{sessionVoided | currency}}</div>
53 <div class="col-lg-3 pr-0 mr-0">
54 <div class="d-flex pt-1 pb-1 striped">
55 <div class="flex-4"> </div>
56 <div class="flex-1"> </div>
58 <div class="d-flex pt-1 pb-1">
59 <div class="flex-4" i18n>Pending Payment:</div>
60 <div class="flex-1 font-weight-bold">{{pendingPayment() | currency}}</div>
62 <div class="d-flex pt-1 pb-1 striped">
63 <div class="flex-4" i18n>Pending Change:</div>
64 <div class="flex-1 font-weight-bold">{{pendingChange() | currency}}</div>
70 <!-- BILL PAY FORM -->
72 <h3 i18n>Pay Bill</h3>
74 <div class="row bg-light border border-dark rounded pt-2 pb-2 mt-2 mb-4 payment-form">
75 <div class="col-lg-12 d-flex form-inline form-validated">
76 <div class="flex-1"></div>
77 <div class="ml-2"><label for="payment-type" i18n>Payment Type:</label></div>
79 <select [(ngModel)]="paymentType" class="form-control" id="payment-type">
80 <option value="cash_payment" i18n>Cash</option>
81 <option value="check_payment" i18n>Check</option>
82 <option value="credit_card_payment" i18n>Credit Card</option>
83 <option value="debit_card_payment" i18n>Debit Card</option>
84 <option value="credit_payment" i18n>Patron Credit</option>
85 <option value="work_payment" i18n>Work</option>
86 <option value="forgive_payment" i18n>Forgive</option>
87 <option value="goods_payment" i18n>Goods</option>
90 <div class="ml-2"><label for="check-number" i18n>Check Number:</label></div>
92 <input type="text" class="form-control" [(ngModel)]="checkNumber"
93 id="check-number" [disabled]="paymentType !== 'check_payment'"/>
95 <div class="ml-2"><label for="pay-amount" i18n>Payment Received:</label></div>
97 <input type="number" class="form-control" [(ngModel)]="payAmount"
98 id="pay-amount" [min]="0"/>
100 <div class="ml-2 form-check form-check-inline">
101 <input class="form-check-input" type="checkbox" id="annotate" [(ngModel)]="annotatePayment"/>
102 <label class="form-check-label" for="annotate" i18n>Annotate</label>
105 <button class="btn btn-outline-dark" (click)="applyPayment()"
106 [disabled]="disablePayment()" i18n>Apply Payment</button>
113 <ng-template #titleTemplate let-r="row">
114 <ng-container *ngIf="r.record">
115 <a routerLink="/staff/catalog/record/{{r.record.id()}}">{{r.title}}</a>
117 <ng-container *ngIf="!r.record">{{r.title}}</ng-container>
120 <ng-template #barcodeTemplate let-r="row">
121 <ng-container *ngIf="r.copy">
122 <a href="/eg/staff/cat/item/{{r.copy.id()}}">{{r.copy.barcode()}}</a>
126 <ng-template #callNumberTemplate let-r="row">
127 <ng-container *ngIf="r.volume">
128 {{r.volume.prefix().label()}} {{r.volume.label()}} {{r.volume.suffix().label()}}
130 <ng-container *ngIf="!r.volume" i18n>UNCATALOGED</ng-container>
133 <eg-grid #billGrid [dataSource]="gridDataSource"
134 [sortable]="true" [useLocalSort]="true"
135 [cellTextGenerator]="cellTextGenerator">
137 <eg-grid-column path="xact.id" [index]="true" label="Bill #" i18n-label>
140 <eg-grid-column path="xact.xact_start" datatype="timestamp" [datePlusTime]="true"
141 label="Start" i18n-label></eg-grid-column>
143 <eg-grid-column path="xact.summary.xact_type"
144 label="Type" i18n-label></eg-grid-column>
146 <eg-grid-column path="xact.summary.last_billing_type"
147 label="Last Billing Type" i18n-label></eg-grid-column>
149 <eg-grid-column path="billingLocation"
150 label="Billing Location" i18n-label></eg-grid-column>
152 <eg-grid-column path="call_number" label="Call Number" i18n-label
153 [cellTemplate]="callNumberTemplate"></eg-grid-column>
155 <eg-grid-column name="copy_barcode" label="Item Barcode" i18n-label
156 [cellTemplate]="barcodeTemplate"></eg-grid-column>
158 <eg-grid-column path="copy.location.name" label="Shelving Location"
159 i18n-label></eg-grid-column>
161 <eg-grid-column name="title" label="Title" i18n-label
162 [cellTemplate]="titleTemplate"></eg-grid-column>
164 <eg-grid-column path="xact.summary.balance_owed" datatype="money"
165 label="Balance Owed" i18n-label></eg-grid-column>
167 <eg-grid-column path="xact.summary.total_owed" datatype="money"
168 label="Total Billed" i18n-label></eg-grid-column>
170 <eg-grid-column path="xact.summary.total_paid" datatype="money"
171 label="Total Paid" i18n-label></eg-grid-column>
173 <eg-grid-column name="paymentPending" datatype="money"
174 label="Payment Pending" i18n-label></eg-grid-column>
176 <eg-grid-column name="author" [hidden]="true"
177 label="Author" i18n-label></eg-grid-column>
178 <eg-grid-column path="usr" [hidden]="true"></eg-grid-column>
179 <eg-grid-column path="unrecovered" [hidden]="true"></eg-grid-column>