feat:add price audit

This commit is contained in:
shahzeydyfah
2024-03-23 11:49:00 +03:30
parent 917d50e249
commit 11cd291ca9
3 changed files with 27 additions and 6 deletions
+6 -1
View File
@@ -1,6 +1,7 @@
import uuid
from typing import Optional
import pydantic
from pydantic import Field
from core.models.base import BaseModel
@@ -9,7 +10,7 @@ from core.models.base import BaseModel
class NewPriceModel(BaseModel):
id: Optional[uuid.UUID] = Field(alias='_id')
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
number: Optional[int] = Field(description=" شماره آیتم")
number: Optional[str] = Field(description=" شماره آیتم")
description: Optional[str] = Field(description='موضوع قیمت جدید')
unit: Optional[str] = Field(description='واحد')
count: Optional[int] = Field(description='تعداد')
@@ -25,3 +26,7 @@ class NewPriceModel(BaseModel):
""")
location: Optional[str] = Field(description='موقعیت')
class CheckModel(pydantic.BaseModel):
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
number: Optional[str] = Field(description=" شماره آیتم")
+15 -4
View File
@@ -1,9 +1,20 @@
from app.config import TaskEnv
from app.models.price_audit import NewPriceModel
from core.repositories.base import BaseRepository
from fastapi import HTTPException
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):
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
+6 -1
View File
@@ -2,7 +2,7 @@ from uuid import UUID
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 core.app import app
from core.utils.router import generate_router, shrink
@@ -19,6 +19,11 @@ repo = PriceRepository()
def create(coding: ThisModel = Body(...)):
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)
@shrink(repo.update)
def update(_id: UUID, coding: ThisModel = Body(...)):