diff --git a/barker/barker/routers/__init__.py b/barker/barker/routers/__init__.py index 2a4f24b..ab31af0 100644 --- a/barker/barker/routers/__init__.py +++ b/barker/barker/routers/__init__.py @@ -1,5 +1,10 @@ from datetime import date, datetime +from typing import Optional def query_date(d: str = None) -> date: return date.today() if d is None else datetime.strptime(d, "%d-%b-%Y").date() + + +def optional_query_date(d: str = None) -> Optional[date]: + return None if d is None else datetime.strptime(d, "%d-%b-%Y").date() diff --git a/barker/barker/routers/product.py b/barker/barker/routers/product.py index 67c35de..78c0b83 100644 --- a/barker/barker/routers/product.py +++ b/barker/barker/routers/product.py @@ -366,7 +366,7 @@ def show_id( def query_product_info(item: ProductVersion, happy_hour: bool): return { - "id": item.id, + "id": item.product_id, "name": ("H H " if happy_hour else "") + item.full_name, "saleCategory": { "id": item.sale_category_id, diff --git a/barker/barker/routers/update_product_prices.py b/barker/barker/routers/update_product_prices.py index 6819924..335c7b0 100644 --- a/barker/barker/routers/update_product_prices.py +++ b/barker/barker/routers/update_product_prices.py @@ -13,7 +13,7 @@ from ..db.session import SessionLocal from ..models import MenuCategory, ProductVersion from ..schemas.auth import UserToken from ..schemas.update_product_prices import UpdateProductPrices, UpdateProductPricesItem -from . import query_date +from . import optional_query_date router = APIRouter() @@ -30,10 +30,15 @@ def get_db() -> Session: @router.get("", response_model=UpdateProductPrices) def get_update_product_prices( - date_: date = Depends(query_date), + date_: Optional[date] = Depends(optional_query_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["products"]), ) -> UpdateProductPrices: + if date_ is None: + return UpdateProductPrices( + date=date.today(), + items=[], + ) return UpdateProductPrices( date=date_, items=update_product_prices_list(None, date_, db), @@ -43,10 +48,16 @@ def get_update_product_prices( @router.get("/{id_}", response_model=UpdateProductPrices) def get_update_product_prices_id( id_: uuid.UUID, - date_: date = Depends(query_date), + date_: Optional[date] = Depends(optional_query_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["products"]), ) -> UpdateProductPrices: + if date_ is None: + return UpdateProductPrices( + date=date.today(), + menuCategoryId=id_, + items=[], + ) return UpdateProductPrices( date=date_, menuCategoryId=id_, diff --git a/barker/barker/routers/voucher/save.py b/barker/barker/routers/voucher/save.py index 00a352a..155c5d3 100644 --- a/barker/barker/routers/voucher/save.py +++ b/barker/barker/routers/voucher/save.py @@ -85,7 +85,7 @@ def do_save( user: UserToken, ): now = datetime.now() - product_date = (now - timedelta(days=settings.NEW_DAY_OFFSET_MINUTES)).date() + product_date = (now - timedelta(minutes=settings.NEW_DAY_OFFSET_MINUTES)).date() check_permissions(None, voucher_type, user.permissions) bill_id = get_bill_id(voucher_type, db) diff --git a/barker/barker/routers/voucher/update.py b/barker/barker/routers/voucher/update.py index eadcec6..a5361d6 100644 --- a/barker/barker/routers/voucher/update.py +++ b/barker/barker/routers/voucher/update.py @@ -57,7 +57,7 @@ def update( ): try: now = datetime.now() - product_date = (now - timedelta(days=settings.NEW_DAY_OFFSET_MINUTES)).date() + product_date = (now - timedelta(minutes=settings.NEW_DAY_OFFSET_MINUTES)).date() update_table = u voucher_type = VoucherType[p] guest_book = get_guest_book(g, db) diff --git a/bookie/src/app/core/menu-category.ts b/bookie/src/app/core/menu-category.ts index f11149d..b502dbb 100644 --- a/bookie/src/app/core/menu-category.ts +++ b/bookie/src/app/core/menu-category.ts @@ -10,4 +10,8 @@ export class MenuCategory { sortOrder: number; products: Product[]; enabled?: boolean; + + public constructor(init?: Partial) { + Object.assign(this, init); + } } diff --git a/bookie/src/app/update-product-prices/update-product-prices-resolver.service.ts b/bookie/src/app/update-product-prices/update-product-prices-resolver.service.ts index 727a838..d211a2e 100644 --- a/bookie/src/app/update-product-prices/update-product-prices-resolver.service.ts +++ b/bookie/src/app/update-product-prices/update-product-prices-resolver.service.ts @@ -12,9 +12,8 @@ export class UpdateProductPricesResolver implements Resolve constructor(private ser: UpdateProductPricesService) {} resolve(route: ActivatedRouteSnapshot): Observable { - const startDate = route.queryParamMap.get('startDate') || null; - const finishDate = route.queryParamMap.get('finishDate') || null; + const date = route.queryParamMap.get('date') || null; const id = route.paramMap.get('id'); - return this.ser.get(id, startDate, finishDate); + return this.ser.get(id, date); } } diff --git a/bookie/src/app/update-product-prices/update-product-prices.component.html b/bookie/src/app/update-product-prices/update-product-prices.component.html index a4c9ffa..eab2b16 100644 --- a/bookie/src/app/update-product-prices/update-product-prices.component.html +++ b/bookie/src/app/update-product-prices/update-product-prices.component.html @@ -27,8 +27,8 @@ - Section - + Menu Category + {{ s.name }} diff --git a/bookie/src/app/update-product-prices/update-product-prices.component.ts b/bookie/src/app/update-product-prices/update-product-prices.component.ts index ea4c914..85f6817 100644 --- a/bookie/src/app/update-product-prices/update-product-prices.component.ts +++ b/bookie/src/app/update-product-prices/update-product-prices.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { FormArray, FormBuilder, FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import * as moment from 'moment'; +import { map } from 'rxjs/operators'; import { MenuCategory } from '../core/menu-category'; import { ToasterService } from '../core/toaster.service'; @@ -37,12 +38,17 @@ export class UpdateProductPricesComponent implements OnInit { } ngOnInit() { - this.route.data.subscribe( - (data: { menuCategories: MenuCategory[]; info: UpdateProductPrices }) => { + this.route.data + .pipe( + map((data: { menuCategories: MenuCategory[]; info: UpdateProductPrices }) => { + data.menuCategories.unshift(new MenuCategory({ id: null, name: '-- All Categories --' })); + return data; + }), + ) + .subscribe((data: { menuCategories: MenuCategory[]; info: UpdateProductPrices }) => { this.menuCategories = data.menuCategories; this.loadData(data.info); - }, - ); + }); } loadData(info: UpdateProductPrices) { @@ -67,7 +73,7 @@ export class UpdateProductPricesComponent implements OnInit { show() { const info = this.getInfo(); const route = ['update-product-prices']; - if (info.menuCategoryId !== undefined) route.push(info.menuCategoryId); + if (info.menuCategoryId !== null) route.push(info.menuCategoryId); this.router.navigate(route, { queryParams: { date: info.date, diff --git a/bookie/src/app/update-product-prices/update-product-prices.service.ts b/bookie/src/app/update-product-prices/update-product-prices.service.ts index 69cb440..3f3cc6c 100644 --- a/bookie/src/app/update-product-prices/update-product-prices.service.ts +++ b/bookie/src/app/update-product-prices/update-product-prices.service.ts @@ -17,14 +17,11 @@ const serviceName = 'UpdateProductPricesService'; export class UpdateProductPricesService { constructor(private http: HttpClient, private log: ErrorLoggerService) {} - get(id: string, startDate: string, finishDate): Observable { + get(id: string, date: string): Observable { const getUrl: string = id === null ? url : `${url}/${id}`; const options = { params: new HttpParams() }; - if (startDate !== null) { - options.params = options.params.set('s', startDate); - } - if (finishDate !== null) { - options.params = options.params.set('f', finishDate); + if (date !== null) { + options.params = options.params.set('d', date); } return >( this.http