This commit is contained in:
Gitea
2022-07-14 16:21:44 +09:00
parent 8245c32224
commit 592a174bb7
15 changed files with 123 additions and 75 deletions

View File

@ -16,7 +16,7 @@ class FilterListInit(BaseModel):
class FilterSetInit(FilterListInit):
IDFilterObject: int
IDFilterObject: str
NeedClear: bool
class FilterTypeSerializer(BaseModel):
@ -27,7 +27,7 @@ class FilterTypeSerializer(BaseModel):
class FilterListSerializer(BaseModel):
ID: int
ID: str
Name: Optional[str] = None
IsChecked: bool

View File

@ -18,7 +18,7 @@ import datetime
Base = declarative_base()
metadata = Base.metadata
ignore_list = []
ignore_list = ["5A1A84DD-34AC-4D16-A91C-3DB9782F4828"]
class PaymentDetails(Base):
__tablename__ = "payment_details"

View File

@ -35,6 +35,19 @@ def exec_procedure_wo_result(session, proc_name, params, database: str = None):
sql_string, params).fetchall()
session.commit()
def exec_procedure_no_result(session, proc_name, params, database: str = None):
sql_params = ",".join([f"@{key} = :{key}"
for key, value in params.items()])
dbstr = ""
if database:
dbstr = f"[{database}]."
sql_string = sql.text(f'''
EXEC {dbstr}[dbo].[{proc_name}] {sql_params};
''')
session.execute(
sql_string, params)
session.commit()
"""PersonalAccountViewSet"""
@ -45,7 +58,7 @@ class PersonalAccountViewSet:
def get_details(db: Session, id: int = None):
table = get_table("PersonalAccount")
return db.query(table).filter(table.c["ID"] == id).first()
return db.query(table).filter(table.c["ID"] == id).all()
def get_services(db: Session, IDPersonalAccount: int = None):
return exec_procedure(db, 'uspGetPersonalAccountServices', {'IDPersonalAccount': IDPersonalAccount})
@ -59,16 +72,18 @@ class PersonalAccountViewSet:
def get_financial_account(db: Session, data: schemas.PersonalAccountReportTOFinancialInit = None):
return exec_procedure(db, 'uspGetPersonalAccountReportTOFinancialAccount', data.dict())
def edit(db: Session, data: schemas.PersonalAccountDetailsInit = None):
return exec_procedure_no_result(db, 'uspEditPersonalAccount', data.dict())
"""AddressInfoViewSet"""
class AddressInfoViewSet:
class AddressViewSet:
"""get"""
def get_details(db: Session, id: int = None):
table = get_table("RefAddresses", "General")
return db.query(table).filter(table.c["ID"] == id).first()
return db.query(table).filter(table.c["ID"] == id).all()
def get_personal_accounts(db: Session, IDCity: int = None):
return exec_procedure(db, 'uspGetPersonalAccountsList', {'IDCity': IDCity})
@ -88,18 +103,7 @@ class AddressInfoViewSet:
"""post"""
def edit(db: Session, data: schemas.EditAdressInit = None):
try:
exec_procedure_wo_result(db, 'uspEditAddress', **data)
return {'msg': 'success'}
except:
return {'msg': 'error'}
def edit_personal_account(db: Session, data: schemas.PersonalAccountDetailsSerializer = None):
try:
exec_procedure_wo_result(db, 'uspEditPersonalAccount', **data)
return {'msg': 'success'}
except:
return {'msg': 'error'}
exec_procedure_no_result(db, 'uspEditAddress', data.dict())
def edit_personal_account_address(db: Session, data: schemas.EditPersonalAccountAddressInit = None):
try:
@ -134,34 +138,18 @@ class ObjectViewSet:
"""post"""
def edit(db: Session, data: schemas.ObjectDetailsSerializer = None):
try:
exec_procedure_wo_result(db, 'uspEditObject', **data)
return {'msg': 'success'}
except:
return {'msg': 'error'}
def edit(db: Session, data: schemas.ObjectEditInit = None):
exec_procedure_no_result(db, 'uspEditObject', data.dict())
def edit_service(db: Session, data: schemas.EditObjectServiceInit = None):
try:
exec_procedure_wo_result(db, 'uspEditObject', **data)
return {'msg': 'success'}
except:
return {'msg': 'error'}
exec_procedure_no_result(db, 'uspEditObject', data.dict())
def edit_temp_metering_device_address(db: Session, data: schemas.EditTempMeteringDeviceAddressInit = None):
try:
exec_procedure_wo_result(
exec_procedure_no_result(
db, 'uspEditTempMeteringDeviceAddress', **data, database='General')
return {'msg': 'success'}
except:
return {'msg': 'error'}
def add_object(db: Session, data: schemas.AddObjectInit = None):
try:
exec_procedure_wo_result(db, 'uspAddObject', **data)
return {'msg': 'success'}
except:
return {'msg': 'error'}
exec_procedure_no_result(db, 'uspAddObject', **data)
"""TurnOverViewSet"""
@ -212,10 +200,10 @@ class PaymentViewSet:
return exec_procedure(db, 'uspSaveReceipt', data.dict())
def repayment_info(db: Session, data: schemas.RepaymentInfoInit):
return exec_procedure(db, 'uspGetRepaymentInfo', **data)
return exec_procedure(db, 'uspGetRepaymentInfo', data.dict())
def repayment(db: Session, data: schemas.RepaymentInit):
return exec_procedure(db, 'uspRepayment', **data)
return exec_procedure(db, 'uspRepayment', data.dict())
"""ReportViewSet"""
@ -270,11 +258,7 @@ class RecalculationViewSet:
return {'msg': 'error'}
def save_recalculation(db: Session, data: schemas.RecalculationSave = None):
try:
exec_procedure_wo_result(db, 'uspSaveRecalculation', data.dict())
return {'msg': 'success'}
except:
return {'msg': 'error'}
exec_procedure_no_result(db, 'uspSaveRecalculation', data.dict())
"""ReferenceViewSet"""
@ -409,7 +393,7 @@ class ReferenceViewSet:
return exec_procedure(db, 'uspGetMeteringDeviceTypes', params=data, database='General')
def get_object_water_system_volumes(db: Session, data: schemas.ObjectWaterSystemVolumesInit):
return exec_procedure(db, 'uspGetObjectWaterSystemVolumes', **data)
return exec_procedure(db, 'uspGetObjectWaterSystemVolumes', data.dict())
def get_tariff_population(db: Session, data: schemas.TariffsPopulationInit):
return exec_procedure(db, 'uspGetTariffsPopulation', **data)

View File

@ -12,38 +12,38 @@ router = APIRouter()
@router.get("/get_details/{id}", response_model=List[schemas.AddressDetailsSerializer])
async def get_details(id: int, db: Session = Depends(get_db)):
data = crud.AddressInfoViewSet.get_details(db, id)
data = crud.AddressViewSet.get_details(db, id)
return data
@router.get("/get_personal_accounts/{IDCity}", response_model=List[schemas.PersonalAccountSerializer])
async def get_personal_accounts(IDCity: int, db: Session = Depends(get_db)):
data = crud.AddressInfoViewSet.get_personal_accounts(
data = crud.AddressViewSet.get_personal_accounts(
db, IDCity=IDCity)
return data
@router.get("/get_addresses/{IDCity}", response_model=List[schemas.AddressesSerializer])
async def get_addresses(IDCity: int, db: Session = Depends(get_db)):
data = crud.AddressInfoViewSet.get_addresses(db, IDCity)
data = crud.AddressViewSet.get_addresses(db, IDCity)
return data
@router.get("/get_address_personal_accounts/{IDAddress}", response_model=List[schemas.AddressPersonalAccounts])
async def get_address_personal_accounts(IDAddress: int, db: Session = Depends(get_db)):
data = crud.AddressInfoViewSet.get_address_personal_accounts(db, IDAddress)
data = crud.AddressViewSet.get_address_personal_accounts(db, IDAddress)
return data
@router.get("/get_address_object_details/{id}", response_model=List[schemas.AddressDetailInfoSerializer])
async def get_address_object_details(id: int, db: Session = Depends(get_db)):
data = crud.AddressInfoViewSet.get_address_object_details(db, id)
data = crud.AddressViewSet.get_address_object_details(db, id)
return data
@router.get("/get_metering_devices/{IDAddress}", response_model=List[schemas.AddressMeteringDevices])
async def get_metering_devices(IDAddress: int, db: Session = Depends(get_db)):
data = crud.AddressInfoViewSet.get_metering_devices(db, IDAddress)
data = crud.AddressViewSet.get_metering_devices(db, IDAddress)
return data
@ -52,14 +52,8 @@ async def get_metering_devices(IDAddress: int, db: Session = Depends(get_db)):
@router.post('/edit')
async def edit(request: schemas.EditAdressInit, db: Session = Depends(get_db)):
return crud.AddressInfoViewSet.edit(db, request)
return crud.AddressViewSet.edit(db, request)
@router.post('/edit_personal_account')
async def edit_personal_account(request: schemas.PersonalAccountDetailsSerializer, db: Session = Depends(get_db)):
return crud.AddressInfoViewSet.edit_personal_account(db, request)
@router.post('/edit_personal_account')
async def edit_personal_account(request: schemas.PersonalAccountDetailsSerializer, db: Session = Depends(get_db)):
return crud.AddressInfoViewSet.edit_personal_account(db, request)

View File

@ -43,7 +43,7 @@ async def get_metering_devices(IDObject: str, db: Session = Depends(get_db)):
@router.post('/edit')
async def edit(request: schemas.ObjectDetailsSerializer, db: Session = Depends(get_db)):
async def edit(request: schemas.ObjectEditInit, db: Session = Depends(get_db)):
return crud.ObjectViewSet.edit(db, request)

View File

@ -48,3 +48,7 @@ async def get_debts(IDPersonalAccount: int, GetType: bool, db: Session = Depends
@router.post("/get_financial_account", response_model=List[schemas.ReportTOFinancialAccount])
async def get_financial_account(request: schemas.ReportTOFinancialAccountInit, db: Session = Depends(get_db)):
return crud.PersonalAccountViewSet.get_financial_account(db, request)
@router.post('/edit')
async def edit(request: schemas.PersonalAccountDetailsInit, db: Session = Depends(get_db)):
return crud.PersonalAccountViewSet.edit(db, request)

View File

@ -194,7 +194,7 @@ async def get_object_metering_device_addresses(request: schemas.AdvancedSearchIn
@router.post('/get_object_water_system_volumes', response_model=List[schemas.CommonTypeSerializer])
async def get_object_water_system_volumes(request: schemas.TariffsPopulationInit, db: Session = Depends(get_db)):
async def get_object_water_system_volumes(request: schemas.ObjectWaterSystemVolumesInit, db: Session = Depends(get_db)):
return ReferenceViewSet.get_object_water_system_volumes(db, request)

View File

@ -142,11 +142,12 @@ class WithdrawingSave(PersonalAccountInit, WithdrawingCheckSerializer, DateInit)
class RecalculationSave(BaseModel):
IDUser: int
IDService: int
IDService: int = None
IDType: int
IDRecalculationCode: int = None
Percent: float = None
IDOldChange: str = None
IDNewChange: str = None
OldValue: str = None
NewValue: str = None
DateBegin: str
DateEnd: str
@ -156,10 +157,12 @@ class RepaymentInfoInit(BaseModel):
IDMoneyType: int
class RepaymentInit(RepaymentInfoInit):
class RepaymentInit(BaseModel):
IDCashbox: int
IDRepaymentType: int
RepaymentNumber: int
RepaymentDate: date
RepaymentDate: str
IDMoneyType: int
class RecieptCalculateInit(PersonalAccountInit):
@ -229,6 +232,22 @@ class PersonalAccountSerializer(BaseModel):
IDAccount: int
FullName: Optional[str] = None
class PersonalAccountDetailsInit(BaseModel):
ActionType: Optional[str] = None
ID: int = None
IDAddress: int = None
IDTenants: int = None
IDWorker: int = None
LastName: Optional[str] = None
FirstName: Optional[str] = None
Patronymic: Optional[str] = None
PassportSerialNumber: Optional[str] = None
PassportNumber: Optional[str] = None
PassportIssueBy: Optional[str] = None
PassportIssueDate: Optional[str] = None
PassportRegistrationPlace: Optional[str] = None
PassportRegistrationDate: Optional[str] = None
Note: Optional[str] = None
class PersonalAccountDetailsSerializer(BaseModel):
ID: int
@ -332,7 +351,7 @@ class AddressDetailsSerializer(BaseModel):
IDImprovementDegree: int = None
CadastralNumber: Optional[str] = None
Number: Optional[str] = None
Privatization: bool = None
Privatization: float = None
Area: float = None
AreaOwned: float = None
AreaAboveNormal: float = None
@ -353,7 +372,7 @@ class AddressDetailsSerializer(BaseModel):
MeteringDeviceHeating: bool = None
MeteringDeviceHotWater: bool = None
MeteringDeviceColdWater: bool = None
ActAvailabilityMeteringDeviceInstallIDType: int = None
ActAvailabilityMeteringDeviceInstallIDType: bool = None
ActAvailabilityMeteringDeviceInstallHeating: bool = None
ActAvailabilityMeteringDeviceInstallWater: bool = None
@ -647,8 +666,9 @@ class AccrualsCanBeRecalculatedSerializer(BaseModel):
Volume: float
Amount: float
class ObjectDetailsSerializer(BaseModel):
class ObjectEditInit(BaseModel):
IDObject: str = None
IDCIty: int = None
IDFias: Optional[str] = None
IDBoiler: str = None
IDOwnershipType: int = None
@ -656,7 +676,53 @@ class ObjectDetailsSerializer(BaseModel):
BuildDate: int = None
FloorNumber: int = None
Entrance: int = None
CommissDate: date = None
CommissDate: int = None
Volume: float = None
FullArea: float = None
IDBuildingType: Optional[str] = None
IDOverlappingType: int = None
IDWallMaterial: int = None
IDRoofType: int = None
IDFoundationType: int = None
WithdrawingDate: Optional[str] = None
WithdrawingReason: Optional[str] = None
IDSystemHotWater: int = None
IDSystemHotWaterPeriodType: int = None
IDSystemColdWater: int = None
IDSystemColdWaterPeriodType: int = None
IDSystemSewerage: int = None
IDStandartVolume: int = None
IDHeatingType: int = None
IDGasType: int = None
IDWiringType: int = None
IDImprovementDegree: int = None
Amount: float = None
Deterioration: float = None
AreaRoof: float = None
AreaFoundation: float = None
AreaFacade: float = None
AreaPlub: float = None
AreaAttic: float = None
AreaTechnicalFloor: float = None
AreaBuilding: float = None
AreaLk: float = None
AreaYardArea: float = None
AreaBoiler: float = None
ActAvailabilityCounterInstallObjectHeating: int = None
ActAvailabilityCounterInstallObjectWater: int = None
DirectControl: bool = None
class ObjectDetailsSerializer(BaseModel):
IDObject: str = None
IDCIty: int = None
IDFias: Optional[str] = None
IDBoiler: str = None
IDOwnershipType: int = None
IDProviderUtilityServices: int = None
BuildDate: int = None
FloorNumber: int = None
Entrance: int = None
CommissDate: int = None
Volume: float = None
FullArea: float = None
IDBuildingType: Optional[str] = None
@ -795,9 +861,9 @@ class ImprovementDegreeSerializer(BaseModel):
class ObjectWaterSystemVolumesInit(BaseModel):
IDHotWater: int
IDColdWater: int
IDSewerage: int
IDPeriodTypeHotWater: int
IDPeriodTypeColdWater: int
IDPeriodTypeSewerage: int