diff --git a/barker/barker/routers/reports/__init__.py b/barker/barker/routers/reports/__init__.py index e69de29..b7392f4 100644 --- a/barker/barker/routers/reports/__init__.py +++ b/barker/barker/routers/reports/__init__.py @@ -0,0 +1,9 @@ +from datetime import date, datetime + + +def report_start_date(s: str = None) -> date: + return date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() + + +def report_finish_date(f: str = None) -> date: + return date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() diff --git a/barker/barker/routers/reports/beer_consumption_report.py b/barker/barker/routers/reports/beer_consumption_report.py index 0683fc6..e2cba42 100644 --- a/barker/barker/routers/reports/beer_consumption_report.py +++ b/barker/barker/routers/reports/beer_consumption_report.py @@ -1,4 +1,4 @@ -from datetime import date, datetime, timedelta +from datetime import date, timedelta from operator import or_ from fastapi import APIRouter, Depends, HTTPException, Security, status @@ -10,6 +10,7 @@ from ...core.security import get_current_active_user as get_user from ...db.session import SessionLocal from ...models import Inventory, Kot, ProductVersion, Voucher, VoucherType from ...schemas.auth import UserToken +from . import report_finish_date, report_start_date router = APIRouter() @@ -26,13 +27,11 @@ def get_db() -> Session: @router.get("") def beer_consumption( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["beer-consumption-report"]), ): - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, diff --git a/barker/barker/routers/reports/bill_settlement_report.py b/barker/barker/routers/reports/bill_settlement_report.py index de5a43f..4f3de70 100644 --- a/barker/barker/routers/reports/bill_settlement_report.py +++ b/barker/barker/routers/reports/bill_settlement_report.py @@ -1,4 +1,4 @@ -from datetime import date, datetime, timedelta +from datetime import date, timedelta from typing import List from fastapi import APIRouter, Depends, HTTPException, Security, status @@ -10,6 +10,7 @@ from ...db.session import SessionLocal from ...models import Reprint, Settlement, SettleOption, Voucher, VoucherType from ...schemas.auth import UserToken from ...schemas.bill_settlement_report import BillSettlement, BillSettlementItem +from . import report_finish_date, report_start_date router = APIRouter() @@ -26,13 +27,11 @@ def get_db() -> Session: @router.get("", response_model=BillSettlement) def bill_details( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["bill-settlement-report"]), ) -> BillSettlement: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, diff --git a/barker/barker/routers/reports/cashier_report.py b/barker/barker/routers/reports/cashier_report.py index 601158c..f595d3f 100644 --- a/barker/barker/routers/reports/cashier_report.py +++ b/barker/barker/routers/reports/cashier_report.py @@ -1,6 +1,6 @@ import uuid -from datetime import date, datetime, timedelta +from datetime import date, timedelta from typing import Dict, List from fastapi import APIRouter, Cookie, Depends, HTTPException, Security, status @@ -19,6 +19,7 @@ from ...schemas.cashier_report import ( NameAmount, SettleOptionSchema, ) +from . import report_finish_date, report_start_date router = APIRouter() @@ -35,13 +36,12 @@ def get_db() -> Session: @router.get("/active") def active_cashiers( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["cashier-report"]), ): - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() + if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, @@ -70,13 +70,11 @@ def get_active_cashiers(start_date: date, finish_date: date, db: Session) -> Lis @router.get("/{id_}", response_model=CashierReport) def show_id( id_: uuid.UUID, - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["cashier-report"]), ) -> CashierReport: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, @@ -132,14 +130,12 @@ def get_id(id_: uuid.UUID, start_date: date, finish_date: date, user: UserLink, @router.get("/print/{id_}", response_model=bool) def print_report( id_: uuid.UUID, - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), device_id: uuid.UUID = Cookie(None), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["cashier-report"]), ) -> bool: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, @@ -152,13 +148,11 @@ def print_report( @router.get("", response_model=CashierReport) def show_blank( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["cashier-report"]), ) -> CashierReport: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, diff --git a/barker/barker/routers/reports/discount_report.py b/barker/barker/routers/reports/discount_report.py index 7579b04..071827b 100644 --- a/barker/barker/routers/reports/discount_report.py +++ b/barker/barker/routers/reports/discount_report.py @@ -1,6 +1,6 @@ import uuid -from datetime import date, datetime, timedelta +from datetime import date, timedelta from typing import List from fastapi import APIRouter, Cookie, Depends, HTTPException, Security, status @@ -14,6 +14,7 @@ from ...models import Inventory, Kot, ProductVersion, SaleCategory, Voucher, Vou from ...printing.discount_report import print_discount_report from ...schemas.auth import UserToken from ...schemas.discount_report import DiscountReport, DiscountReportItem +from . import report_finish_date, report_start_date router = APIRouter() @@ -30,13 +31,11 @@ def get_db() -> Session: @router.get("", response_model=DiscountReport) def discount_report( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["discount-report"]), ) -> DiscountReport: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, @@ -85,14 +84,12 @@ def get_discount_report(s: date, f: date, db: Session) -> List[DiscountReportIte @router.get("/print", response_model=bool) def print_report( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), device_id: uuid.UUID = Cookie(None), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["discount-report"]), ) -> bool: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, diff --git a/barker/barker/routers/reports/product_sale_report.py b/barker/barker/routers/reports/product_sale_report.py index 7c43493..bb16111 100644 --- a/barker/barker/routers/reports/product_sale_report.py +++ b/barker/barker/routers/reports/product_sale_report.py @@ -1,4 +1,4 @@ -from datetime import date, datetime, timedelta +from datetime import date, timedelta from fastapi import APIRouter, Depends, HTTPException, Security, status from sqlalchemy import func, or_ @@ -18,6 +18,7 @@ from ...models import ( ) from ...schemas import to_camel from ...schemas.auth import UserToken +from . import report_finish_date, report_start_date router = APIRouter() @@ -34,13 +35,11 @@ def get_db() -> Session: @router.get("") def product_sale_report_view( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["product-sale-report"]), ): - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, diff --git a/barker/barker/routers/reports/sale_report.py b/barker/barker/routers/reports/sale_report.py index 7af42ee..49c82ff 100644 --- a/barker/barker/routers/reports/sale_report.py +++ b/barker/barker/routers/reports/sale_report.py @@ -1,6 +1,6 @@ import uuid -from datetime import date, datetime, timedelta +from datetime import date, timedelta from typing import List from fastapi import APIRouter, Cookie, Depends, HTTPException, Security, status @@ -23,6 +23,7 @@ from ...models import ( from ...printing.sale_report import print_sale_report from ...schemas.auth import UserLink, UserToken from ...schemas.sale_report import SaleReport, SaleReportItem +from . import report_finish_date, report_start_date from .tax_report import get_tax @@ -40,13 +41,11 @@ def get_db() -> Session: @router.get("", response_model=SaleReport) def get_sale_analysis( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["sale-report"]), ) -> SaleReport: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, @@ -126,14 +125,12 @@ def get_settlements(s: date, f: date, db: Session) -> List[SaleReportItem]: @router.get("/print", response_model=bool) def print_report( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), device_id: uuid.UUID = Cookie(None), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["discount-report"]), ) -> bool: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, diff --git a/barker/barker/routers/reports/tax_report.py b/barker/barker/routers/reports/tax_report.py index 654d028..850e636 100644 --- a/barker/barker/routers/reports/tax_report.py +++ b/barker/barker/routers/reports/tax_report.py @@ -1,4 +1,4 @@ -from datetime import date, datetime, timedelta +from datetime import date, timedelta from typing import List from fastapi import APIRouter, Depends, HTTPException, Security, status @@ -11,6 +11,7 @@ from ...db.session import SessionLocal from ...models import Inventory, Kot, Tax, Voucher, VoucherType from ...schemas.auth import UserToken from ...schemas.tax_report import TaxReport, TaxReportItem +from . import report_finish_date, report_start_date router = APIRouter() @@ -27,13 +28,11 @@ def get_db() -> Session: @router.get("", response_model=TaxReport) def get_tax_report( - s: str = None, - f: str = None, + start_date: date = Depends(report_start_date), + finish_date: date = Depends(report_finish_date), db: Session = Depends(get_db), user: UserToken = Security(get_user, scopes=["tax-report"]), ) -> TaxReport: - start_date = date.today() if s is None else datetime.strptime(s, "%d-%b-%Y").date() - finish_date = date.today() if f is None else datetime.strptime(f, "%d-%b-%Y").date() if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN,