barker/bookie/src/app/sales/bill-number/bill-number.component.ts

58 lines
1.5 KiB
TypeScript

import { Component, Inject, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
@Component({
selector: 'app-bill-number',
templateUrl: './bill-number.component.html',
styleUrls: ['./bill-number.component.css'],
})
export class BillNumberComponent implements OnInit {
form: FormGroup;
constructor(public dialogRef: MatDialogRef<BillNumberComponent>, private fb: FormBuilder) {
// Create form
this.form = this.fb.group({
billType: '',
billNumber: '',
});
}
ngOnInit() {
this.form.setValue({
billType: '1',
billNumber: '',
});
}
accept(): void {
const formValue = this.form.value;
const billNumber = parseInt(formValue.billNumber.replace('-', ''), 10);
if (isNaN(billNumber)) {
this.dialogRef.close(undefined);
} else {
let billId: string;
switch (formValue.billType) {
case '0': // KOT
billId = 'K-' + billNumber;
break;
case '1': // Regular Bill
billId = Math.floor(billNumber / 10000) + '-' + (billNumber % 10000);
break;
case '4': // Staff
billId = 'ST-' + billNumber;
break;
case '2': // No Charge
billId = 'NC-' + billNumber;
break;
case '8': // Void
billId = 'V-' + billNumber;
break;
default:
throw new Error('Unknown Bill Type');
}
this.dialogRef.close(billId);
}
}
}