diff --git a/app/config/__init__.py b/app/config/__init__.py index 24b564c..ca1ad95 100644 --- a/app/config/__init__.py +++ b/app/config/__init__.py @@ -11,7 +11,7 @@ class TaskEnv: CLN_MONITOR_RIAL = 'monitor_rial' CLN_MONITOR_SECONDARY = 'monitor_secondary' CLN_FINANCIAL_PRE_PAYMENT = 'financial_pre_payment' - # CLN_FINANCIAL_STATUS = 'financial_status' + CLN_FINANCIAL_STATUS = 'financial_status' # CLN_FINANCIAL_ADJUST = 'financial_adjust' CLN_DELIVERY = 'delivery' diff --git a/app/models/financial_status.py b/app/models/financial_status.py new file mode 100644 index 0000000..2f45a07 --- /dev/null +++ b/app/models/financial_status.py @@ -0,0 +1,21 @@ +import uuid +from datetime import datetime +from typing import Optional + +from pydantic import Field + +from core.models.base import BaseModel + + +class StatusFinancialModel(BaseModel): + id: Optional[uuid.UUID] = Field(alias='_id') + project_id: Optional[uuid.UUID] = Field(description="کد شناسایی پروژه در این فیلد قرار می گیرد") + number: Optional[float] = Field(description='شماره صورت وضعیت/N') + date_contractor: Optional[datetime] = Field(description="تاریخ ارسال پیمانکار/M") + amount_contractor: Optional[int] = Field(description=" مبلغ ادعایی پیمانکار/A") + amount_project_manager: Optional[int] = Field(description=" مبلغ تجمعی تائید نظارت کارگاهی/مدیر طرح/B") + amount_cycle_supervisor: Optional[int] = Field(description=" مبلغ تجمعی تائید نظارت عالیه/D") + amount: Optional[int] = Field(description='مبلغ') + date_at: Optional[datetime] = Field(description='تاریخ پرداخت') + is_assign: bool = Field(description='آیا پروژه تفویضی است؟', default=0) + status_id = Optional[uuid.UUID]= Field(description='کد شناسایی صورت وضعیت در قسمت رسیدگی') diff --git a/app/repositories/financial_status.py b/app/repositories/financial_status.py new file mode 100644 index 0000000..771478e --- /dev/null +++ b/app/repositories/financial_status.py @@ -0,0 +1,12 @@ +import uuid + +from app.config import TaskEnv +from app.models.financial_status import StatusFinancialModel +from core.repositories.base import BaseRepository + + +class FinancialStatusRepository(BaseRepository): + def __init__(self): + super().__init__(collection=TaskEnv.CLN_FINANCIAL_STATUS, model=StatusFinancialModel) + + diff --git a/app/urls/__init__.py b/app/urls/__init__.py index f19734e..df263ff 100644 --- a/app/urls/__init__.py +++ b/app/urls/__init__.py @@ -13,6 +13,6 @@ from .monitor_physical import * from .monitor_rial import * from .monitor_secondary import * from .financial_pre_payment import * -# from .financial_status import * +from .financial_status import * # from .financial_adjust import * from .delivery import * \ No newline at end of file diff --git a/app/urls/financial_status.py b/app/urls/financial_status.py new file mode 100644 index 0000000..2d4d411 --- /dev/null +++ b/app/urls/financial_status.py @@ -0,0 +1,45 @@ +from uuid import UUID + +from fastapi import Body + +from app.models.financial_status import StatusFinancialModel +from app.repositories.financial_status import FinancialStatusRepository +from core.app import app +from core.utils.router import generate_router, shrink +from core.utils.table_engine import TableEngineExport, TableEngineRequestType + +ThisModel = StatusFinancialModel +router_base_url = 'financial_status' +_tag_base = [router_base_url] +router = generate_router(router_base_url, auth_dependencies=False, version='v2') +repo = FinancialStatusRepository() + + + +@router.post('/create', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت') +@shrink(repo.create) +def create(coding: ThisModel = Body(...)): + pass + + +@router.put('/{_id}', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت') +@shrink(repo.update) +def update(_id: UUID, coding: ThisModel = Body(...)): + pass + +@router.get('/{_id}', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت') +@shrink(repo.get) +def get(_id: UUID): + pass + +@router.delete('/{_id}', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت') +@shrink(repo.delete) +def delete(_id: UUID): + pass + +@router.post('', response_model=TableEngineExport[ThisModel], tags=_tag_base, description='صورت وضعیت') +@shrink(repo.fetch) +def fetch(body: TableEngineRequestType = Body(...)): + pass + +app.include_router(router) \ No newline at end of file diff --git a/app/urls/register_status.py b/app/urls/register_status.py index 9f8452e..e74245d 100644 --- a/app/urls/register_status.py +++ b/app/urls/register_status.py @@ -15,29 +15,29 @@ _tag_base = [router_base_url] router = generate_router(router_base_url, auth_dependencies=False, version='v2') repo = RegisterStatusRepository() -@router.post('/create', response_model=ThisModel, tags=_tag_base) +@router.post('/create', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت در قسمت رسیدگی') @shrink(repo.create) def create(coding: ThisModel = Body(...)): pass -@router.get('/last/{project_id}', response_model=ThisModel, tags=_tag_base) +@router.get('/last/{project_id}', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت در قسمت رسیدگی') @shrink(repo.get_last) def get_last(project_id: UUID): pass -@router.put('/{_id}', response_model=ThisModel, tags=_tag_base) +@router.put('/{_id}', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت در قسمت رسیدگی') @shrink(repo.update) def update(_id: UUID, coding: ThisModel = Body(...)): pass -@router.get('/{_id}', response_model=ThisModel, tags=_tag_base) +@router.get('/{_id}', response_model=ThisModel, tags=_tag_base, description='صورت وضعیت در قسمت رسیدگی') @shrink(repo.get) def get(_id: UUID): pass -@router.post('', response_model=TableEngineExport[ThisModel], tags=_tag_base) +@router.post('', response_model=TableEngineExport[ThisModel], tags=_tag_base, description='صورت وضعیت در قسمت رسیدگی') @shrink(repo.fetch) def fetch(body: TableEngineRequestType = Body(...)): pass