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 operator import or_
from fastapi import APIRouter, Depends, HTTPException, Security, status 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 ...db.session import SessionLocal
from ...models import Inventory, Kot, ProductVersion, Voucher, VoucherType from ...models import Inventory, Kot, ProductVersion, Voucher, VoucherType
from ...schemas.auth import UserToken from ...schemas.auth import UserToken
from . import report_finish_date, report_start_date
router = APIRouter() router = APIRouter()
@ -26,13 +27,11 @@ def get_db() -> Session:
@router.get("") @router.get("")
def beer_consumption( def beer_consumption(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["beer-consumption-report"]), 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, 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 typing import List
from fastapi import APIRouter, Depends, HTTPException, Security, status 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 ...models import Reprint, Settlement, SettleOption, Voucher, VoucherType
from ...schemas.auth import UserToken from ...schemas.auth import UserToken
from ...schemas.bill_settlement_report import BillSettlement, BillSettlementItem from ...schemas.bill_settlement_report import BillSettlement, BillSettlementItem
from . import report_finish_date, report_start_date
router = APIRouter() router = APIRouter()
@ -26,13 +27,11 @@ def get_db() -> Session:
@router.get("", response_model=BillSettlement) @router.get("", response_model=BillSettlement)
def bill_details( def bill_details(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["bill-settlement-report"]), user: UserToken = Security(get_user, scopes=["bill-settlement-report"]),
) -> BillSettlement: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, status_code=status.HTTP_403_FORBIDDEN,

View File

@ -1,6 +1,6 @@
import uuid import uuid
from datetime import date, datetime, timedelta from datetime import date, timedelta
from typing import Dict, List from typing import Dict, List
from fastapi import APIRouter, Cookie, Depends, HTTPException, Security, status from fastapi import APIRouter, Cookie, Depends, HTTPException, Security, status
@ -19,6 +19,7 @@ from ...schemas.cashier_report import (
NameAmount, NameAmount,
SettleOptionSchema, SettleOptionSchema,
) )
from . import report_finish_date, report_start_date
router = APIRouter() router = APIRouter()
@ -35,13 +36,12 @@ def get_db() -> Session:
@router.get("/active") @router.get("/active")
def active_cashiers( def active_cashiers(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["cashier-report"]), 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, 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) @router.get("/{id_}", response_model=CashierReport)
def show_id( def show_id(
id_: uuid.UUID, id_: uuid.UUID,
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["cashier-report"]), user: UserToken = Security(get_user, scopes=["cashier-report"]),
) -> CashierReport: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, 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) @router.get("/print/{id_}", response_model=bool)
def print_report( def print_report(
id_: uuid.UUID, id_: uuid.UUID,
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
device_id: uuid.UUID = Cookie(None), device_id: uuid.UUID = Cookie(None),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["cashier-report"]), user: UserToken = Security(get_user, scopes=["cashier-report"]),
) -> bool: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, status_code=status.HTTP_403_FORBIDDEN,
@ -152,13 +148,11 @@ def print_report(
@router.get("", response_model=CashierReport) @router.get("", response_model=CashierReport)
def show_blank( def show_blank(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["cashier-report"]), user: UserToken = Security(get_user, scopes=["cashier-report"]),
) -> CashierReport: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, status_code=status.HTTP_403_FORBIDDEN,

View File

@ -1,6 +1,6 @@
import uuid import uuid
from datetime import date, datetime, timedelta from datetime import date, timedelta
from typing import List from typing import List
from fastapi import APIRouter, Cookie, Depends, HTTPException, Security, status 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 ...printing.discount_report import print_discount_report
from ...schemas.auth import UserToken from ...schemas.auth import UserToken
from ...schemas.discount_report import DiscountReport, DiscountReportItem from ...schemas.discount_report import DiscountReport, DiscountReportItem
from . import report_finish_date, report_start_date
router = APIRouter() router = APIRouter()
@ -30,13 +31,11 @@ def get_db() -> Session:
@router.get("", response_model=DiscountReport) @router.get("", response_model=DiscountReport)
def discount_report( def discount_report(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["discount-report"]), user: UserToken = Security(get_user, scopes=["discount-report"]),
) -> DiscountReport: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, 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) @router.get("/print", response_model=bool)
def print_report( def print_report(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
device_id: uuid.UUID = Cookie(None), device_id: uuid.UUID = Cookie(None),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["discount-report"]), user: UserToken = Security(get_user, scopes=["discount-report"]),
) -> bool: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, 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 fastapi import APIRouter, Depends, HTTPException, Security, status
from sqlalchemy import func, or_ from sqlalchemy import func, or_
@ -18,6 +18,7 @@ from ...models import (
) )
from ...schemas import to_camel from ...schemas import to_camel
from ...schemas.auth import UserToken from ...schemas.auth import UserToken
from . import report_finish_date, report_start_date
router = APIRouter() router = APIRouter()
@ -34,13 +35,11 @@ def get_db() -> Session:
@router.get("") @router.get("")
def product_sale_report_view( def product_sale_report_view(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["product-sale-report"]), 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, status_code=status.HTTP_403_FORBIDDEN,

View File

@ -1,6 +1,6 @@
import uuid import uuid
from datetime import date, datetime, timedelta from datetime import date, timedelta
from typing import List from typing import List
from fastapi import APIRouter, Cookie, Depends, HTTPException, Security, status 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 ...printing.sale_report import print_sale_report
from ...schemas.auth import UserLink, UserToken from ...schemas.auth import UserLink, UserToken
from ...schemas.sale_report import SaleReport, SaleReportItem from ...schemas.sale_report import SaleReport, SaleReportItem
from . import report_finish_date, report_start_date
from .tax_report import get_tax from .tax_report import get_tax
@ -40,13 +41,11 @@ def get_db() -> Session:
@router.get("", response_model=SaleReport) @router.get("", response_model=SaleReport)
def get_sale_analysis( def get_sale_analysis(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["sale-report"]), user: UserToken = Security(get_user, scopes=["sale-report"]),
) -> SaleReport: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, 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) @router.get("/print", response_model=bool)
def print_report( def print_report(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
device_id: uuid.UUID = Cookie(None), device_id: uuid.UUID = Cookie(None),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["discount-report"]), user: UserToken = Security(get_user, scopes=["discount-report"]),
) -> bool: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, 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 typing import List
from fastapi import APIRouter, Depends, HTTPException, Security, status 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 ...models import Inventory, Kot, Tax, Voucher, VoucherType
from ...schemas.auth import UserToken from ...schemas.auth import UserToken
from ...schemas.tax_report import TaxReport, TaxReportItem from ...schemas.tax_report import TaxReport, TaxReportItem
from . import report_finish_date, report_start_date
router = APIRouter() router = APIRouter()
@ -27,13 +28,11 @@ def get_db() -> Session:
@router.get("", response_model=TaxReport) @router.get("", response_model=TaxReport)
def get_tax_report( def get_tax_report(
s: str = None, start_date: date = Depends(report_start_date),
f: str = None, finish_date: date = Depends(report_finish_date),
db: Session = Depends(get_db), db: Session = Depends(get_db),
user: UserToken = Security(get_user, scopes=["tax-report"]), user: UserToken = Security(get_user, scopes=["tax-report"]),
) -> TaxReport: ) -> 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: if (date.today() - start_date).days > 5 and "accounts-audit" not in user.permissions:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN, status_code=status.HTTP_403_FORBIDDEN,