feat:add price audit
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import uuid
|
import uuid
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
import pydantic
|
||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
|
|
||||||
from core.models.base import BaseModel
|
from core.models.base import BaseModel
|
||||||
@@ -9,7 +10,7 @@ from core.models.base import BaseModel
|
|||||||
class NewPriceModel(BaseModel):
|
class NewPriceModel(BaseModel):
|
||||||
id: Optional[uuid.UUID] = Field(alias='_id')
|
id: Optional[uuid.UUID] = Field(alias='_id')
|
||||||
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
|
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
|
||||||
number: Optional[int] = Field(description=" شماره آیتم")
|
number: Optional[str] = Field(description=" شماره آیتم")
|
||||||
description: Optional[str] = Field(description='موضوع قیمت جدید')
|
description: Optional[str] = Field(description='موضوع قیمت جدید')
|
||||||
unit: Optional[str] = Field(description='واحد')
|
unit: Optional[str] = Field(description='واحد')
|
||||||
count: Optional[int] = Field(description='تعداد')
|
count: Optional[int] = Field(description='تعداد')
|
||||||
@@ -25,3 +26,7 @@ class NewPriceModel(BaseModel):
|
|||||||
""")
|
""")
|
||||||
location: Optional[str] = Field(description='موقعیت')
|
location: Optional[str] = Field(description='موقعیت')
|
||||||
|
|
||||||
|
class CheckModel(pydantic.BaseModel):
|
||||||
|
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
|
||||||
|
number: Optional[str] = Field(description=" شماره آیتم")
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,20 @@
|
|||||||
from app.config import TaskEnv
|
from fastapi import HTTPException
|
||||||
from app.models.price_audit import NewPriceModel
|
|
||||||
from core.repositories.base import BaseRepository
|
|
||||||
|
|
||||||
|
from app.config import TaskEnv
|
||||||
|
from app.models.price_audit import *
|
||||||
|
from core.repositories.base import BaseRepository
|
||||||
|
from core.service.mongo_db import use_collection
|
||||||
|
|
||||||
|
|
||||||
class PriceRepository(BaseRepository):
|
class PriceRepository(BaseRepository):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__(collection=TaskEnv.CLN_AUDIT_PRICE, model=NewPriceModel)
|
super().__init__(collection=TaskEnv.CLN_AUDIT_PRICE, model=NewPriceModel)
|
||||||
|
|
||||||
|
async def check(self,_inp:CheckModel):
|
||||||
|
check_price = await use_collection(TaskEnv.CLN_AUDIT_PRICE).find_one({
|
||||||
|
"project_id":_inp.project_id,"number":_inp.number
|
||||||
|
})
|
||||||
|
if check_price:
|
||||||
|
raise HTTPException(status_code=422,detail="this item number is exist")
|
||||||
|
else:
|
||||||
|
return False
|
||||||
@@ -2,7 +2,7 @@ from uuid import UUID
|
|||||||
|
|
||||||
from fastapi import Body
|
from fastapi import Body
|
||||||
|
|
||||||
from app.models.price_audit import NewPriceModel
|
from app.models.price_audit import NewPriceModel, CheckModel
|
||||||
from app.repositories.price_audit import PriceRepository
|
from app.repositories.price_audit import PriceRepository
|
||||||
from core.app import app
|
from core.app import app
|
||||||
from core.utils.router import generate_router, shrink
|
from core.utils.router import generate_router, shrink
|
||||||
@@ -19,6 +19,11 @@ repo = PriceRepository()
|
|||||||
def create(coding: ThisModel = Body(...)):
|
def create(coding: ThisModel = Body(...)):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@router.post('/check', response_model=bool, tags=_tag_base)
|
||||||
|
@shrink(repo.check)
|
||||||
|
def create(coding: CheckModel = Body(...)):
|
||||||
|
pass
|
||||||
|
|
||||||
@router.put('/{_id}', response_model=ThisModel, tags=_tag_base)
|
@router.put('/{_id}', response_model=ThisModel, tags=_tag_base)
|
||||||
@shrink(repo.update)
|
@shrink(repo.update)
|
||||||
def update(_id: UUID, coding: ThisModel = Body(...)):
|
def update(_id: UUID, coding: ThisModel = Body(...)):
|
||||||
|
|||||||
Reference in New Issue
Block a user