Chore: Start and Finish date in reports extracted to function

This commit is contained in:
2020-11-11 10:09:07 +05:30
parent 8db9a7d757
commit 6f9394dc8d
8 changed files with 48 additions and 55 deletions

View File

@ -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()

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,