From 0c0a2990a8b428f131e5aad3f74b7553d1ac478a Mon Sep 17 00:00:00 2001 From: Amritanshu Date: Mon, 26 Aug 2019 15:11:28 +0530 Subject: [PATCH] In case of a table with no guest, it will ask for pax --- barker/views/voucher/save.py | 8 +--- bookie/src/app/sales/bills/bill.ts | 2 + bookie/src/app/sales/bills/bills.component.ts | 21 +++++++++-- bookie/src/app/sales/pax/pax.component.css | 0 bookie/src/app/sales/pax/pax.component.html | 16 ++++++++ .../src/app/sales/pax/pax.component.spec.ts | 25 +++++++++++++ bookie/src/app/sales/pax/pax.component.ts | 37 +++++++++++++++++++ bookie/src/app/sales/sales.module.ts | 3 ++ 8 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 bookie/src/app/sales/pax/pax.component.css create mode 100644 bookie/src/app/sales/pax/pax.component.html create mode 100644 bookie/src/app/sales/pax/pax.component.spec.ts create mode 100644 bookie/src/app/sales/pax/pax.component.ts diff --git a/barker/views/voucher/save.py b/barker/views/voucher/save.py index 7a1a3fe..2175c7a 100644 --- a/barker/views/voucher/save.py +++ b/barker/views/voucher/save.py @@ -36,12 +36,6 @@ def save(request): voucher_type = VoucherType[request.GET["p"]] guest_book = get_guest_book(request.GET.get("g", None), request.dbsession) - table = ( - request.dbsession.query(FoodTable) - .filter(FoodTable.id == uuid.UUID(json["table"]["id"])) - .first() - ) - check_permissions(None, voucher_type, request.effective_principals) bill_id = get_bill_id(voucher_type, request.dbsession) @@ -51,7 +45,7 @@ def save(request): item = Voucher( now, - guest_book.pax if guest_book is not None else table.seats, + guest_book.pax if guest_book is not None else json["pax"], bill_id, kot_id, json["table"]["id"], diff --git a/bookie/src/app/sales/bills/bill.ts b/bookie/src/app/sales/bills/bill.ts index 706bc5b..d693f08 100644 --- a/bookie/src/app/sales/bills/bill.ts +++ b/bookie/src/app/sales/bills/bill.ts @@ -37,6 +37,8 @@ export class Kot { export class Bill { id: string; date: string; + pax: number; + customer?: {id: string, name: string}; user: User; creationDate: string; lastEditDate: string; diff --git a/bookie/src/app/sales/bills/bills.component.ts b/bookie/src/app/sales/bills/bills.component.ts index 85cdff7..b19ce0a 100644 --- a/bookie/src/app/sales/bills/bills.component.ts +++ b/bookie/src/app/sales/bills/bills.component.ts @@ -13,7 +13,7 @@ import { TablesDialogComponent } from '../tables-dialog/tables-dialog.component' import { TableService } from '../../tables/table.service'; import { ToasterService } from '../../core/toaster.service'; import { AuthService } from '../../auth/auth.service'; -import { SelectionModel } from '@angular/cdk/collections'; +import { PaxComponent } from "../pax/pax.component"; @Component({ selector: 'app-bills', @@ -22,7 +22,6 @@ import { SelectionModel } from '@angular/cdk/collections'; }) export class BillsComponent implements OnInit { dataSource: BillsDataSource; - item: Bill; /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */ displayedColumns: string[] = ['select', 'info', 'quantity']; @@ -40,12 +39,28 @@ export class BillsComponent implements OnInit { ngOnInit() { this.route.data .subscribe((data: { item: Bill }) => { - this.item = data.item; this.bs.loadData(data.item); }); + this.getPax(); this.dataSource = new BillsDataSource(this.bs.dataObs); } + getPax(): void { + if (this.bs.bill.id || this.bs.bill.customer.id) { + return + } + const dialogRef = this.dialog.open(PaxComponent, { + // width: '750px', + data: this.bs.bill.pax + }); + + dialogRef.afterClosed().subscribe((result: boolean | number) => { + if (!result) { + return; + } + this.bs.bill.pax = result as number; + }); + } isAllSelected(kot: Kot) { return this.bs.data.filter( x => x.kotId === kot.id diff --git a/bookie/src/app/sales/pax/pax.component.css b/bookie/src/app/sales/pax/pax.component.css new file mode 100644 index 0000000..e69de29 diff --git a/bookie/src/app/sales/pax/pax.component.html b/bookie/src/app/sales/pax/pax.component.html new file mode 100644 index 0000000..1dd34f3 --- /dev/null +++ b/bookie/src/app/sales/pax/pax.component.html @@ -0,0 +1,16 @@ + +
+
+ + Pax + + +
+
+
+ + + + diff --git a/bookie/src/app/sales/pax/pax.component.spec.ts b/bookie/src/app/sales/pax/pax.component.spec.ts new file mode 100644 index 0000000..1985cff --- /dev/null +++ b/bookie/src/app/sales/pax/pax.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PaxComponent } from './pax.component'; + +describe('PaxComponent', () => { + let component: PaxComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PaxComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PaxComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/bookie/src/app/sales/pax/pax.component.ts b/bookie/src/app/sales/pax/pax.component.ts new file mode 100644 index 0000000..a2aef13 --- /dev/null +++ b/bookie/src/app/sales/pax/pax.component.ts @@ -0,0 +1,37 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material'; +import { FormBuilder, FormGroup } from '@angular/forms'; + +@Component({ + selector: 'app-pax', + templateUrl: './pax.component.html', + styleUrls: ['./pax.component.css'] +}) +export class PaxComponent implements OnInit { + form: FormGroup; + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: number, + private fb: FormBuilder, + ) { + this.createForm(); + } + + ngOnInit() { + this.form.setValue({ + pax: this.data + }); + } + + createForm() { + this.form = this.fb.group({ + pax: '' + }); + } + + accept(): void { + const pax = this.form.value.pax; + this.dialogRef.close(pax); + } +} diff --git a/bookie/src/app/sales/sales.module.ts b/bookie/src/app/sales/sales.module.ts index fc26c90..2c33da4 100644 --- a/bookie/src/app/sales/sales.module.ts +++ b/bookie/src/app/sales/sales.module.ts @@ -31,6 +31,7 @@ import { BillTypeComponent } from './bill-type/bill-type.component'; import { ReceivePaymentComponent } from './receive-payment/receive-payment.component'; import { TablesDialogComponent } from './tables-dialog/tables-dialog.component'; import { ReasonComponent } from './reason/reason.component'; +import { PaxComponent } from "./pax/pax.component"; @NgModule({ providers: [ @@ -42,6 +43,7 @@ import { ReasonComponent } from './reason/reason.component'; DiscountComponent, MenuCategoriesComponent, ModifiersComponent, + PaxComponent, ProductsComponent, QuantityComponent, ReceivePaymentComponent, @@ -75,6 +77,7 @@ import { ReasonComponent } from './reason/reason.component'; BillTypeComponent, DiscountComponent, ModifiersComponent, + PaxComponent, QuantityComponent, ReceivePaymentComponent, TablesDialogComponent,