diff --git a/barker/views/modifier_category.py b/barker/views/modifier_category.py index 1f73895..2289d8f 100644 --- a/barker/views/modifier_category.py +++ b/barker/views/modifier_category.py @@ -1,10 +1,11 @@ import uuid +from functools import reduce import transaction from pyramid.view import view_config -from barker.models import ModifierCategory, Product +from barker.models import ModifierCategory, Product, MenuCategory from barker.models.validation_exception import ValidationError @@ -73,12 +74,12 @@ def update(request): item.maximum = json.get("maximum", None) if item.maximum is not None: item.maximum = int(item.maximum) - if item.maximum < 0: - raise ValidationError( - "Maximum must be an integer and cannot be less than zero" - ) - elif item.maximum == 0: - item.maximum = None + if item.maximum < 0: + raise ValidationError( + "Maximum must be an integer and cannot be less than zero" + ) + elif item.maximum == 0: + item.maximum = None except ValueError: raise ValidationError("Maximum must be an integer and cannot be less than zero") item.is_active = json["isActive"] @@ -139,18 +140,41 @@ def show_list(request): .order_by(ModifierCategory.name) .all() ) + menu_categories = ( + request.dbsession.query(MenuCategory) + .join(MenuCategory.products) + .filter(Product.is_active == True) + .order_by(MenuCategory.sort_order, Product.sort_order, Product.name) + .all() + ) modifier_categories = [] for item in list_: - modifier_categories.append( - { - "id": item.id, - "name": item.name, - "minimum": item.minimum, - "maximum": item.maximum, - "isActive": item.is_active, - "products": [p.name for p in item.products], - } - ) + modifier_category = { + "id": item.id, + "name": item.name, + "minimum": item.minimum, + "maximum": item.maximum, + "isActive": item.is_active, + "menuCategories": [ + { + "id": mc.id, + "name": mc.name, + "enabled": reduce( + lambda x, y: x and (y in item.products), mc.products, True + ), + "products": [ + {"id": p.id, "name": p.name} + for p in mc.products + if p in item.products + ], + } + for mc in menu_categories + ], + } + modifier_category["menuCategories"] = [ + i for i in modifier_category["menuCategories"] if len(i["products"]) > 0 + ] + modifier_categories.append(modifier_category) return modifier_categories @@ -173,21 +197,17 @@ def show_for_pg(request): "maximum": item.maximum, "isActive": item.is_active, "modifiers": [ - { - "id": m.id, - "name": m.name, - "prince": m.price - } - for m in item.modifiers if m.is_active == True + {"id": m.id, "name": m.name, "prince": m.price} + for m in item.modifiers + if m.is_active == True ], } - for item in product.modifier_categories if item.is_active == True + for item in product.modifier_categories + if item.is_active == True ] def modifier_category_info(item, dbsession): - from barker.models import MenuCategory - menu_categories = ( dbsession.query(MenuCategory) .join(MenuCategory.products) diff --git a/bookie/src/app/app-routing.module.ts b/bookie/src/app/app-routing.module.ts index ce04244..f02e956 100644 --- a/bookie/src/app/app-routing.module.ts +++ b/bookie/src/app/app-routing.module.ts @@ -1,8 +1,8 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; -import {LoginComponent} from "./auth/login/login.component"; -import {LogoutComponent} from "./auth/logout/logout.component"; -import {HomeComponent} from "./home/home.component"; +import {LoginComponent} from './auth/login/login.component'; +import {LogoutComponent} from './auth/logout/logout.component'; +import {HomeComponent} from './home/home.component'; const routes: Routes = [ { diff --git a/bookie/src/app/app.module.ts b/bookie/src/app/app.module.ts index 51c487e..20c6822 100644 --- a/bookie/src/app/app.module.ts +++ b/bookie/src/app/app.module.ts @@ -15,12 +15,12 @@ import { MatInputModule } from '@angular/material/input'; import { MatMenuModule } from '@angular/material/menu'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { LayoutModule } from '@angular/cdk/layout'; -import { LogoutComponent } from "./auth/logout/logout.component"; -import { LoginComponent } from "./auth/login/login.component"; -import { HomeComponent } from "./home/home.component"; -import {CoreModule} from "./core/core.module"; -import {ReactiveFormsModule} from "@angular/forms"; -import {SharedModule} from "./shared/shared.module"; +import { LogoutComponent } from './auth/logout/logout.component'; +import { LoginComponent } from './auth/login/login.component'; +import { HomeComponent } from './home/home.component'; +import {CoreModule} from './core/core.module'; +import {ReactiveFormsModule} from '@angular/forms'; +import {SharedModule} from './shared/shared.module'; @NgModule({ declarations: [ diff --git a/bookie/src/app/auth/auth.service.ts b/bookie/src/app/auth/auth.service.ts index 9e6a6e4..c21e7c3 100644 --- a/bookie/src/app/auth/auth.service.ts +++ b/bookie/src/app/auth/auth.service.ts @@ -33,7 +33,7 @@ export class AuthService { set user(user: User) { this._user = user; - this.log.handleError('AuthService','Set User', user); + this.log.handleError('AuthService', 'Set User', user); this.userObservable.next(user); } diff --git a/bookie/src/app/core/device.ts b/bookie/src/app/core/device.ts index 330cf75..f23f1aa 100644 --- a/bookie/src/app/core/device.ts +++ b/bookie/src/app/core/device.ts @@ -1,4 +1,4 @@ -import {Section} from "./section"; +import {Section} from './section'; export class Device { id: string; diff --git a/bookie/src/app/core/menu-category.ts b/bookie/src/app/core/menu-category.ts index 349aff7..40c4de8 100644 --- a/bookie/src/app/core/menu-category.ts +++ b/bookie/src/app/core/menu-category.ts @@ -1,4 +1,4 @@ -import {Product} from "./product"; +import {Product} from './product'; export class MenuCategory { id: string; diff --git a/bookie/src/app/core/modifier-category.ts b/bookie/src/app/core/modifier-category.ts index 77ef40c..009ffad 100644 --- a/bookie/src/app/core/modifier-category.ts +++ b/bookie/src/app/core/modifier-category.ts @@ -1,5 +1,5 @@ -import {MenuCategory} from "./menu-category"; -import {Modifier} from "./modifier"; +import {MenuCategory} from './menu-category'; +import {Modifier} from './modifier'; export class ModifierCategory { id: string; diff --git a/bookie/src/app/core/modifier.ts b/bookie/src/app/core/modifier.ts index 2740808..2f1e44a 100644 --- a/bookie/src/app/core/modifier.ts +++ b/bookie/src/app/core/modifier.ts @@ -1,4 +1,4 @@ -import {ModifierCategory} from "./modifier-category"; +import {ModifierCategory} from './modifier-category'; export class Modifier { id: string; @@ -7,4 +7,5 @@ export class Modifier { price: number; modifierCategory: ModifierCategory; isActive: boolean; + billPrice?: number; } diff --git a/bookie/src/app/core/product.ts b/bookie/src/app/core/product.ts index 97821db..d93919f 100644 --- a/bookie/src/app/core/product.ts +++ b/bookie/src/app/core/product.ts @@ -1,5 +1,5 @@ import {MenuCategory} from './menu-category'; -import {SaleCategory} from "./sale-category"; +import {SaleCategory} from './sale-category'; export class Product { id: string; diff --git a/bookie/src/app/core/sale-category.ts b/bookie/src/app/core/sale-category.ts index 51cd361..e6635fb 100644 --- a/bookie/src/app/core/sale-category.ts +++ b/bookie/src/app/core/sale-category.ts @@ -1,4 +1,4 @@ -import {Tax} from "./tax"; +import {Tax} from './tax'; export class SaleCategory { id: string; diff --git a/bookie/src/app/core/section-printer.ts b/bookie/src/app/core/section-printer.ts index 55a3008..29d9fe8 100644 --- a/bookie/src/app/core/section-printer.ts +++ b/bookie/src/app/core/section-printer.ts @@ -1,5 +1,5 @@ -import {MenuCategory} from "./menu-category"; -import {Printer} from "./printer"; +import {MenuCategory} from './menu-category'; +import {Printer} from './printer'; export class SectionPrinter { id: string; diff --git a/bookie/src/app/core/table.ts b/bookie/src/app/core/table.ts index 6514bd5..195824d 100644 --- a/bookie/src/app/core/table.ts +++ b/bookie/src/app/core/table.ts @@ -1,4 +1,4 @@ -import {Section} from "./section"; +import {Section} from './section'; export class Table { id: string; diff --git a/bookie/src/app/devices/device-detail/device-detail.component.ts b/bookie/src/app/devices/device-detail/device-detail.component.ts index 24de3d8..5ff44d5 100644 --- a/bookie/src/app/devices/device-detail/device-detail.component.ts +++ b/bookie/src/app/devices/device-detail/device-detail.component.ts @@ -1,13 +1,13 @@ import { AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; -import { MatDialog} from "@angular/material/dialog"; +import { MatDialog} from '@angular/material/dialog'; import { DeviceService } from '../device.service'; import { Device } from '../../core/device'; import { ToasterService } from '../../core/toaster.service'; -import { ConfirmDialogComponent } from "../../shared/confirm-dialog/confirm-dialog.component"; -import { Section } from "../../core/section"; +import { ConfirmDialogComponent } from '../../shared/confirm-dialog/confirm-dialog.component'; +import { Section } from '../../core/section'; @Component({ selector: 'app-device-detail', diff --git a/bookie/src/app/devices/devices-routing.module.ts b/bookie/src/app/devices/devices-routing.module.ts index bbb5795..3a5ea25 100644 --- a/bookie/src/app/devices/devices-routing.module.ts +++ b/bookie/src/app/devices/devices-routing.module.ts @@ -6,7 +6,7 @@ import {DeviceResolver} from './device-resolver.service'; import {DeviceListComponent} from './device-list/device-list.component'; import {DeviceDetailComponent} from './device-detail/device-detail.component'; import {AuthGuard} from '../auth/auth-guard.service'; -import {SectionListResolver} from "../sections/section-list-resolver.service"; +import {SectionListResolver} from '../sections/section-list-resolver.service'; const devicesRoutes: Routes = [ { diff --git a/bookie/src/app/guest-book/guest-book-detail/guest-book-detail.component.ts b/bookie/src/app/guest-book/guest-book-detail/guest-book-detail.component.ts index ec20ff0..c32f4c6 100644 --- a/bookie/src/app/guest-book/guest-book-detail/guest-book-detail.component.ts +++ b/bookie/src/app/guest-book/guest-book-detail/guest-book-detail.component.ts @@ -1,9 +1,9 @@ import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { GuestBookService } from "../guest-book.service"; -import { ToasterService } from "../../core/toaster.service"; -import { GuestBook } from "../guest-book"; -import { ActivatedRoute, Router } from "@angular/router"; +import { GuestBookService } from '../guest-book.service'; +import { ToasterService } from '../../core/toaster.service'; +import { GuestBook } from '../guest-book'; +import { ActivatedRoute, Router } from '@angular/router'; @Component({ selector: 'app-guest-book-detail', diff --git a/bookie/src/app/guest-book/guest-book-list-resolver.service.ts b/bookie/src/app/guest-book/guest-book-list-resolver.service.ts index fc8ac6f..9699130 100644 --- a/bookie/src/app/guest-book/guest-book-list-resolver.service.ts +++ b/bookie/src/app/guest-book/guest-book-list-resolver.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; import { Observable } from 'rxjs/internal/Observable'; -import { GuestBookList } from "./guest-book"; +import { GuestBookList } from './guest-book'; import { GuestBookService } from './guest-book.service'; @Injectable({ diff --git a/bookie/src/app/guest-book/guest-book-list/guest-book-list-datasource.ts b/bookie/src/app/guest-book/guest-book-list/guest-book-list-datasource.ts index 9000bf2..6cd81a8 100644 --- a/bookie/src/app/guest-book/guest-book-list/guest-book-list-datasource.ts +++ b/bookie/src/app/guest-book/guest-book-list/guest-book-list-datasource.ts @@ -1,6 +1,6 @@ import { DataSource } from '@angular/cdk/collections'; import { Observable } from 'rxjs'; -import { GuestBook } from "../guest-book"; +import { GuestBook } from '../guest-book'; export class GuestBookListDataSource extends DataSource { diff --git a/bookie/src/app/guest-book/guest-book-list/guest-book-list.component.html b/bookie/src/app/guest-book/guest-book-list/guest-book-list.component.html index fad5c27..6a1b752 100644 --- a/bookie/src/app/guest-book/guest-book-list/guest-book-list.component.html +++ b/bookie/src/app/guest-book/guest-book-list/guest-book-list.component.html @@ -47,7 +47,7 @@ Action - + + + + + + + + diff --git a/bookie/src/app/sales/bills/bills.component.ts b/bookie/src/app/sales/bills/bills.component.ts index 948bd60..440f8f2 100644 --- a/bookie/src/app/sales/bills/bills.component.ts +++ b/bookie/src/app/sales/bills/bills.component.ts @@ -1,6 +1,9 @@ import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from "@angular/router"; -import { Table } from "../../core/table"; +import { ActivatedRoute } from '@angular/router'; +import {Bill, Inventory, Kot} from './bill'; +import {ModifierCategoryListDatasource} from '../../modifier-categories/modifier-category-list/modifier-category-list-datasource'; +import {BillsDataSource} from './bills-datasource'; +import {BillService} from "../bill.service"; @Component({ selector: 'app-bills', @@ -8,15 +11,50 @@ import { Table } from "../../core/table"; styleUrls: ['./bills.component.css'] }) export class BillsComponent implements OnInit { - list: Table[]; + dataSource: BillsDataSource; + item: Bill; + view: any[]; + /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */ + displayedColumns: string[] = ['info', 'quantity']; - constructor(private route: ActivatedRoute) { + constructor( + private route: ActivatedRoute, + private bs: BillService + ) { } ngOnInit() { this.route.data - .subscribe((data: { list: Table[] }) => { - this.list = data.list; + .subscribe((data: { item: Bill }) => { + this.updateView(data.item); }); + this.dataSource = new BillsDataSource(this.bs.dataObs); + } + + updateView(item) { + this.item = item; + // this.view = item.kots.reduce((p: Kot, c:Kot) => { + // + // }, []) + } + + addOne(item: any): void { + this.bs.addOne(item); + } + + quantity(item: any): void { + this.bs.quantity(item); + } + + subtractOne(item: any): void { + this.bs.subtractOne(item); + } + + removeItem(item: any): void { + this.bs.removeItem(item); + } + + modifier(item: any): void { + this.bs.modifier(item); } } diff --git a/bookie/src/app/sales/home/sales-home.component.css b/bookie/src/app/sales/home/sales-home.component.css new file mode 100644 index 0000000..853dc56 --- /dev/null +++ b/bookie/src/app/sales/home/sales-home.component.css @@ -0,0 +1,5 @@ +.square-button { + min-width: 150px; + max-width: 150px; + min-height: 150px; +} diff --git a/bookie/src/app/sales/home/sales-home.component.html b/bookie/src/app/sales/home/sales-home.component.html new file mode 100644 index 0000000..36f7048 --- /dev/null +++ b/bookie/src/app/sales/home/sales-home.component.html @@ -0,0 +1,5 @@ + + + + + diff --git a/bookie/src/app/sales/home/sales-home.component.spec.ts b/bookie/src/app/sales/home/sales-home.component.spec.ts new file mode 100644 index 0000000..9fb564e --- /dev/null +++ b/bookie/src/app/sales/home/sales-home.component.spec.ts @@ -0,0 +1,25 @@ +import {async, ComponentFixture, TestBed} from '@angular/core/testing'; + +import {SalesHomeComponent} from './sales-home.component'; + +describe('SalesHomeComponent', () => { + let component: SalesHomeComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [SalesHomeComponent] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SalesHomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/bookie/src/app/sales/home/sales-home.component.ts b/bookie/src/app/sales/home/sales-home.component.ts new file mode 100644 index 0000000..f1cea5e --- /dev/null +++ b/bookie/src/app/sales/home/sales-home.component.ts @@ -0,0 +1,25 @@ +import {Component, OnInit} from '@angular/core'; +import {Subject} from 'rxjs'; +import {AuthService} from '../../auth/auth.service'; + +@Component({ + selector: 'app-sales-home', + templateUrl: './sales-home.component.html', + styleUrls: ['./sales-home.component.css'] +}) +export class SalesHomeComponent implements OnInit { + public nameObject = new Subject(); + + constructor(private auth: AuthService) { + } + + ngOnInit() { + this.auth.userObservable.subscribe((user) => { + if (user.isAuthenticated) { + this.nameObject.next(user.name); + } else { + this.nameObject.next(null); + } + }); + } +} diff --git a/bookie/src/app/sales/menu-categories/menu-categories-resolver.service.ts b/bookie/src/app/sales/menu-categories/menu-categories-resolver.service.ts index 6e94a04..bfb9a7a 100644 --- a/bookie/src/app/sales/menu-categories/menu-categories-resolver.service.ts +++ b/bookie/src/app/sales/menu-categories/menu-categories-resolver.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router'; import { MenuCategory } from '../../core/menu-category'; import { Observable } from 'rxjs/internal/Observable'; -import { MenuCategoryService } from "../../menu-category/menu-category.service"; +import { MenuCategoryService } from '../../menu-category/menu-category.service'; @Injectable({ providedIn: 'root' diff --git a/bookie/src/app/sales/menu-categories/menu-categories.component.html b/bookie/src/app/sales/menu-categories/menu-categories.component.html index e6fa4f1..538f6da 100644 --- a/bookie/src/app/sales/menu-categories/menu-categories.component.html +++ b/bookie/src/app/sales/menu-categories/menu-categories.component.html @@ -1,6 +1,7 @@ + *ngFor="let item of list" [routerLink]="['../products', item.id]">{{item.name}} + diff --git a/bookie/src/app/sales/menu-categories/menu-categories.component.ts b/bookie/src/app/sales/menu-categories/menu-categories.component.ts index 336f6a0..6096e9b 100644 --- a/bookie/src/app/sales/menu-categories/menu-categories.component.ts +++ b/bookie/src/app/sales/menu-categories/menu-categories.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from "@angular/router"; -import { MenuCategory } from "../../core/menu-category"; +import { Location } from '@angular/common'; +import { ActivatedRoute } from '@angular/router'; +import { MenuCategory } from '../../core/menu-category'; @Component({ selector: 'app-menu-category', @@ -10,7 +11,10 @@ import { MenuCategory } from "../../core/menu-category"; export class MenuCategoriesComponent implements OnInit { list: MenuCategory[]; - constructor(private route: ActivatedRoute) { + constructor( + private route: ActivatedRoute, + private location: Location, + ) { } ngOnInit() { @@ -20,4 +24,8 @@ export class MenuCategoriesComponent implements OnInit { }); } + goBack(): void { + this.location.back(); + } + } diff --git a/bookie/src/app/sales/modifiers/modifiers.component.html b/bookie/src/app/sales/modifiers/modifiers.component.html index c1f5b26..c66e293 100644 --- a/bookie/src/app/sales/modifiers/modifiers.component.html +++ b/bookie/src/app/sales/modifiers/modifiers.component.html @@ -8,10 +8,12 @@ - {{m.name}} + + {{m.name}} + - + diff --git a/bookie/src/app/sales/modifiers/modifiers.component.ts b/bookie/src/app/sales/modifiers/modifiers.component.ts index 8246522..4512b29 100644 --- a/bookie/src/app/sales/modifiers/modifiers.component.ts +++ b/bookie/src/app/sales/modifiers/modifiers.component.ts @@ -1,8 +1,8 @@ import { Component, Inject } from '@angular/core'; -import { ModifierCategory } from "../../core/modifier-category"; -import { Modifier } from "../../core/modifier"; -import { MAT_DIALOG_DATA } from "@angular/material"; -import {Observable} from "rxjs"; +import { ModifierCategory } from '../../core/modifier-category'; +import { Modifier } from '../../core/modifier'; +import { MAT_DIALOG_DATA } from '@angular/material'; +import {Observable} from 'rxjs'; @Component({ selector: 'app-modifiers', @@ -11,16 +11,24 @@ import {Observable} from "rxjs"; }) export class ModifiersComponent { list: ModifierCategory[]; + selected: Modifier[]; + selectedIds: string[]; - constructor(@Inject(MAT_DIALOG_DATA) public data: Observable) { - this.data.subscribe((list: ModifierCategory[]) => { + constructor(@Inject(MAT_DIALOG_DATA) public data: { list: Observable, selected: Modifier[] }) { + this.data.list.subscribe((list: ModifierCategory[]) => { this.list = list; - console.log(this.list); }); - console.log(this.list); + this.selected = data.selected; + this.selectedIds = this.selected.map(e => e.id); } select(m: Modifier) { - console.log(m); + let index = this.selectedIds.indexOf(m.id); + if (index === -1) { + this.selected.push(m); + } else { + this.selected.splice(index, 1); + } + this.selectedIds = this.selected.map(e => e.id); } } diff --git a/bookie/src/app/sales/products/products-resolver.service.ts b/bookie/src/app/sales/products/products-resolver.service.ts index 7185f21..1e3fe9b 100644 --- a/bookie/src/app/sales/products/products-resolver.service.ts +++ b/bookie/src/app/sales/products/products-resolver.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from "@angular/router"; -import { Observable } from "rxjs"; -import { Product } from "../../core/product"; -import { ProductService } from "../../product/product.service"; +import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router'; +import { Observable } from 'rxjs'; +import { Product } from '../../core/product'; +import { ProductService } from '../../product/product.service'; @Injectable({ providedIn: 'root' diff --git a/bookie/src/app/sales/products/products.component.html b/bookie/src/app/sales/products/products.component.html index 3ac89ac..ad8e149 100644 --- a/bookie/src/app/sales/products/products.component.html +++ b/bookie/src/app/sales/products/products.component.html @@ -1,6 +1,7 @@ + *ngFor="let item of list" (click)="addProduct(item)">{{item.name}} + diff --git a/bookie/src/app/sales/products/products.component.ts b/bookie/src/app/sales/products/products.component.ts index 72adb40..e2f6aab 100644 --- a/bookie/src/app/sales/products/products.component.ts +++ b/bookie/src/app/sales/products/products.component.ts @@ -1,9 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from "@angular/router"; -import { MatDialog } from "@angular/material"; -import { Product } from "../../core/product"; -import {ModifiersComponent} from "../modifiers/modifiers.component"; -import {ModifierCategoryService} from "../../modifier-categories/modifier-category.service"; +import { Location } from '@angular/common'; +import { ActivatedRoute } from '@angular/router'; +import { Product } from '../../core/product'; +import { BillService } from '../bill.service'; @Component({ selector: 'app-products', @@ -13,7 +12,11 @@ import {ModifierCategoryService} from "../../modifier-categories/modifier-catego export class ProductsComponent implements OnInit { list: Product[]; - constructor(private route: ActivatedRoute, private dialog: MatDialog, private modifierCategoryService: ModifierCategoryService) { + constructor( + private route: ActivatedRoute, + private location: Location, + private bs: BillService + ) { } ngOnInit() { @@ -23,17 +26,12 @@ export class ProductsComponent implements OnInit { }); } - showModifier(product: Product): void { - // [routerLink]="['/sales', 'modifiers', item.id]" - let dialogRef = this.dialog.open(ModifiersComponent, { - position: { - top: '10vh' - }, - data: this.modifierCategoryService.listIsActiveOfProduct(product.id) - }); - - dialogRef.afterClosed().subscribe(result => { - console.log('The dialog was closed'); - }); + addProduct(product: Product): void { + this.bs.addProduct(product); } + + goBack(): void { + this.location.back(); + } + } diff --git a/bookie/src/app/sales/running-tables/running-tables-resolver.service.ts b/bookie/src/app/sales/running-tables/running-tables-resolver.service.ts index 0a82c8f..b03d1db 100644 --- a/bookie/src/app/sales/running-tables/running-tables-resolver.service.ts +++ b/bookie/src/app/sales/running-tables/running-tables-resolver.service.ts @@ -1,8 +1,8 @@ import {Injectable} from '@angular/core'; import {ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot} from '@angular/router'; import {Observable} from 'rxjs/internal/Observable'; -import {Table} from "../../core/table"; -import {TableService} from "../../tables/table.service"; +import {Table} from '../../core/table'; +import {TableService} from '../../tables/table.service'; @Injectable({ providedIn: 'root' diff --git a/bookie/src/app/sales/running-tables/running-tables.component.html b/bookie/src/app/sales/running-tables/running-tables.component.html index f28d2a9..d138b14 100644 --- a/bookie/src/app/sales/running-tables/running-tables.component.html +++ b/bookie/src/app/sales/running-tables/running-tables.component.html @@ -3,8 +3,7 @@ Running Tables - + *ngFor="let table of list" [routerLink]="['../bill']" [queryParams]="{table: table.id}" queryParamsHandling="merge">{{table.name}} diff --git a/bookie/src/app/sales/running-tables/running-tables.component.ts b/bookie/src/app/sales/running-tables/running-tables.component.ts index 61e1c6b..e9d6a76 100644 --- a/bookie/src/app/sales/running-tables/running-tables.component.ts +++ b/bookie/src/app/sales/running-tables/running-tables.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from "@angular/router"; -import { Table } from "../../core/table"; +import { ActivatedRoute } from '@angular/router'; +import { Table } from '../../core/table'; @Component({ selector: 'app-running-tables', diff --git a/bookie/src/app/sales/sales-routing.module.ts b/bookie/src/app/sales/sales-routing.module.ts index d8045f9..cf12e8b 100644 --- a/bookie/src/app/sales/sales-routing.module.ts +++ b/bookie/src/app/sales/sales-routing.module.ts @@ -1,14 +1,15 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; -import { AuthGuard } from "../auth/auth-guard.service"; -import { RunningTablesResolver } from "./running-tables/running-tables-resolver.service"; -import { RunningTablesComponent } from "./running-tables/running-tables.component"; -import { MenuCategoriesComponent } from "./menu-categories/menu-categories.component"; -import { MenuCategoriesResolver } from "./menu-categories/menu-categories-resolver.service"; -import { ProductsComponent } from "./products/products.component"; -import { ProductsResolver } from "./products/products-resolver.service"; -import { BillsComponent } from "./bills/bills.component"; -import { BillResolver } from "./bills/bill-resolver.service"; +import { AuthGuard } from '../auth/auth-guard.service'; +import { RunningTablesResolver } from './running-tables/running-tables-resolver.service'; +import { RunningTablesComponent } from './running-tables/running-tables.component'; +import { MenuCategoriesComponent } from './menu-categories/menu-categories.component'; +import { MenuCategoriesResolver } from './menu-categories/menu-categories-resolver.service'; +import { ProductsComponent } from './products/products.component'; +import { ProductsResolver } from './products/products-resolver.service'; +import { BillsComponent } from './bills/bills.component'; +import { BillResolver } from './bills/bill-resolver.service'; +import { SalesHomeComponent } from './home/sales-home.component'; const routes: Routes = [ { @@ -45,6 +46,17 @@ const routes: Routes = [ list: BillResolver }, children: [ + { + path: '', + component: SalesHomeComponent, + canActivate: [AuthGuard], + data: { + permission: 'Guest Book' + }, + resolve: { + list: MenuCategoriesResolver + } + }, { path: 'menu-categories', component: MenuCategoriesComponent, diff --git a/bookie/src/app/sales/sales.module.ts b/bookie/src/app/sales/sales.module.ts index e3ef2fe..56aeed2 100644 --- a/bookie/src/app/sales/sales.module.ts +++ b/bookie/src/app/sales/sales.module.ts @@ -6,17 +6,32 @@ import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { MatCardModule } from '@angular/material/card'; import { MatChipsModule } from '@angular/material/chips'; import { MatDialogModule } from '@angular/material/dialog'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTableModule } from '@angular/material/table'; import { MatTabsModule } from '@angular/material/tabs'; import { FlexLayoutModule } from '@angular/flex-layout'; import { SalesRoutingModule } from './sales-routing.module'; -import { RunningTablesComponent } from "./running-tables/running-tables.component"; +import { RunningTablesComponent } from './running-tables/running-tables.component'; import { MenuCategoriesComponent } from './menu-categories/menu-categories.component'; import { ProductsComponent } from './products/products.component'; import { ModifiersComponent } from './modifiers/modifiers.component'; +import { BillsComponent } from './bills/bills.component'; +import { SalesHomeComponent } from './home/sales-home.component'; +import { BillService } from './bill.service'; @NgModule({ - declarations: [RunningTablesComponent, MenuCategoriesComponent, ProductsComponent, ModifiersComponent], + providers: [ + BillService + ], + declarations: [ + RunningTablesComponent, + MenuCategoriesComponent, + ProductsComponent, + ModifiersComponent, + BillsComponent, + SalesHomeComponent + ], imports: [ CommonModule, FlexLayoutModule, @@ -26,6 +41,8 @@ import { ModifiersComponent } from './modifiers/modifiers.component'; MatCardModule, MatChipsModule, MatDialogModule, + MatIconModule, + MatTableModule, MatTabsModule, SalesRoutingModule ], diff --git a/bookie/src/app/section-printers/section-printer-datasource.ts b/bookie/src/app/section-printers/section-printer-datasource.ts index 88fa68d..0646e93 100644 --- a/bookie/src/app/section-printers/section-printer-datasource.ts +++ b/bookie/src/app/section-printers/section-printer-datasource.ts @@ -1,6 +1,6 @@ import { DataSource } from '@angular/cdk/collections'; import { Observable } from 'rxjs'; -import { SectionPrinterItem } from "../core/section-printer"; +import { SectionPrinterItem } from '../core/section-printer'; export class SectionPrinterDataSource extends DataSource { diff --git a/bookie/src/app/section-printers/section-printer.component.ts b/bookie/src/app/section-printers/section-printer.component.ts index d4f0a08..f0f3a25 100644 --- a/bookie/src/app/section-printers/section-printer.component.ts +++ b/bookie/src/app/section-printers/section-printer.component.ts @@ -2,15 +2,15 @@ import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router} from '@angular/router'; import { MatDialog } from '@angular/material/dialog'; import { FormArray, FormBuilder, FormGroup } from '@angular/forms'; -import { BehaviorSubject, Observable } from "rxjs"; +import { BehaviorSubject, Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { SectionPrinter } from '../core/section-printer'; import { ToasterService } from '../core/toaster.service'; import { ConfirmDialogComponent } from '../shared/confirm-dialog/confirm-dialog.component'; -import { Section } from "../core/section"; -import { Printer } from "../core/printer"; +import { Section } from '../core/section'; +import { Printer } from '../core/printer'; import { SectionPrinterService } from './section-printer.service'; -import { SectionPrinterDataSource } from "./section-printer-datasource"; +import { SectionPrinterDataSource } from './section-printer-datasource'; @Component({ selector: 'app-section-printer', @@ -65,7 +65,7 @@ export class SectionPrinterComponent implements OnInit { x => this.fb.group({ menuCategory: x.menuCategory.name, printer: x.printer.id, - copies: "" + x.copies + copies: '' + x.copies }) ) )); diff --git a/bookie/src/app/section-printers/section-printers-routing.module.ts b/bookie/src/app/section-printers/section-printers-routing.module.ts index 55cb14e..3b64786 100644 --- a/bookie/src/app/section-printers/section-printers-routing.module.ts +++ b/bookie/src/app/section-printers/section-printers-routing.module.ts @@ -4,8 +4,8 @@ import {RouterModule, Routes} from '@angular/router'; import {SectionPrinterResolver} from './section-printer-resolver.service'; import {SectionPrinterComponent} from './section-printer.component'; import {AuthGuard} from '../auth/auth-guard.service'; -import {SectionListResolver} from "../sections/section-list-resolver.service"; -import {PrinterListResolver} from "../printers/printer-list-resolver.service"; +import {SectionListResolver} from '../sections/section-list-resolver.service'; +import {PrinterListResolver} from '../printers/printer-list-resolver.service'; const sectionPrinterRoutes: Routes = [ { diff --git a/bookie/src/app/sections/section-detail/section-detail.component.ts b/bookie/src/app/sections/section-detail/section-detail.component.ts index 9f7eec1..42c5d6c 100644 --- a/bookie/src/app/sections/section-detail/section-detail.component.ts +++ b/bookie/src/app/sections/section-detail/section-detail.component.ts @@ -1,12 +1,12 @@ import { AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; -import { MatDialog} from "@angular/material/dialog"; +import { MatDialog} from '@angular/material/dialog'; import { SectionService } from '../section.service'; import { Section } from '../../core/section'; import { ToasterService } from '../../core/toaster.service'; -import { ConfirmDialogComponent } from "../../shared/confirm-dialog/confirm-dialog.component"; +import { ConfirmDialogComponent } from '../../shared/confirm-dialog/confirm-dialog.component'; @Component({ selector: 'app-section-detail', diff --git a/bookie/src/app/tables/table-detail/table-detail.component.ts b/bookie/src/app/tables/table-detail/table-detail.component.ts index 463cc05..3055c9d 100644 --- a/bookie/src/app/tables/table-detail/table-detail.component.ts +++ b/bookie/src/app/tables/table-detail/table-detail.component.ts @@ -5,9 +5,9 @@ import {Table} from '../../core/table'; import {ActivatedRoute, Router} from '@angular/router'; import {ToasterService} from '../../core/toaster.service'; import {FormBuilder, FormGroup} from '@angular/forms'; -import {ConfirmDialogComponent} from "../../shared/confirm-dialog/confirm-dialog.component"; -import {MatDialog} from "@angular/material"; -import {Section} from "../../core/section"; +import {ConfirmDialogComponent} from '../../shared/confirm-dialog/confirm-dialog.component'; +import {MatDialog} from '@angular/material'; +import {Section} from '../../core/section'; @Component({ selector: 'app-table-detail', diff --git a/bookie/src/app/tables/table-list/table-list.component.ts b/bookie/src/app/tables/table-list/table-list.component.ts index bd7fba8..adf425d 100644 --- a/bookie/src/app/tables/table-list/table-list.component.ts +++ b/bookie/src/app/tables/table-list/table-list.component.ts @@ -2,12 +2,12 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { TableListDataSource } from './table-list-datasource'; import { Table } from '../../core/table'; import { ActivatedRoute, Router } from '@angular/router'; -import { MatTable } from "@angular/material"; -import { MenuCategory } from "../../core/menu-category"; -import { BehaviorSubject } from "rxjs"; -import { CdkDragDrop, moveItemInArray } from "@angular/cdk/drag-drop"; -import { ToasterService } from "../../core/toaster.service"; -import { TableService } from "../table.service"; +import { MatTable } from '@angular/material'; +import { MenuCategory } from '../../core/menu-category'; +import { BehaviorSubject } from 'rxjs'; +import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'; +import { ToasterService } from '../../core/toaster.service'; +import { TableService } from '../table.service'; @Component({ selector: 'app-table-list', @@ -31,7 +31,7 @@ export class TableListComponent implements OnInit { this.data = new BehaviorSubject([]); this.data.subscribe((data: Table[]) => { this.list = data; - }) + }); } ngOnInit() { diff --git a/bookie/src/app/tables/tables-routing.module.ts b/bookie/src/app/tables/tables-routing.module.ts index 63bf7d3..99095fb 100644 --- a/bookie/src/app/tables/tables-routing.module.ts +++ b/bookie/src/app/tables/tables-routing.module.ts @@ -6,7 +6,7 @@ import { TableResolver } from './table-resolver.service'; import { TableListComponent } from './table-list/table-list.component'; import { TableDetailComponent } from './table-detail/table-detail.component'; import { AuthGuard } from '../auth/auth-guard.service'; -import { SectionListResolver } from "../sections/section-list-resolver.service"; +import { SectionListResolver } from '../sections/section-list-resolver.service'; const tablesRoutes: Routes = [ { diff --git a/bookie/src/app/tables/tables.module.ts b/bookie/src/app/tables/tables.module.ts index 9fed495..dcd8c4c 100644 --- a/bookie/src/app/tables/tables.module.ts +++ b/bookie/src/app/tables/tables.module.ts @@ -11,7 +11,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; import { MatTableModule } from '@angular/material/table'; import { CdkTableModule } from '@angular/cdk/table'; -import { DragDropModule } from "@angular/cdk/drag-drop"; +import { DragDropModule } from '@angular/cdk/drag-drop'; import { FlexLayoutModule } from '@angular/flex-layout'; import { TableListComponent } from './table-list/table-list.component'; import { TableDetailComponent } from './table-detail/table-detail.component'; diff --git a/bookie/src/app/taxes/tax-detail/tax-detail.component.ts b/bookie/src/app/taxes/tax-detail/tax-detail.component.ts index 996643d..df000b0 100644 --- a/bookie/src/app/taxes/tax-detail/tax-detail.component.ts +++ b/bookie/src/app/taxes/tax-detail/tax-detail.component.ts @@ -1,12 +1,12 @@ import { AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; -import { MatDialog} from "@angular/material/dialog"; +import { MatDialog} from '@angular/material/dialog'; import { TaxService } from '../tax.service'; import { Tax } from '../../core/tax'; import { ToasterService } from '../../core/toaster.service'; -import { ConfirmDialogComponent } from "../../shared/confirm-dialog/confirm-dialog.component"; +import { ConfirmDialogComponent } from '../../shared/confirm-dialog/confirm-dialog.component'; @Component({ selector: 'app-tax-detail',