Исправления
This commit is contained in:
@ -33,6 +33,11 @@ def exec_procedure_wo_result(session, proc_name, params, database: str = None):
|
|||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
class GeneralViewSet:
|
||||||
|
|
||||||
|
def get_changing_list(db: Session, data: schemas.ChangingListInit):
|
||||||
|
return exec_procedure(db, 'uspGetChangingList', data.dict(), 'General')
|
||||||
|
|
||||||
class FilterViewSet:
|
class FilterViewSet:
|
||||||
"""get"""
|
"""get"""
|
||||||
|
|
||||||
@ -45,4 +50,4 @@ class FilterViewSet:
|
|||||||
return exec_procedure(db, 'uspGetFilterList', data.dict(), 'ISJKHRSTO')
|
return exec_procedure(db, 'uspGetFilterList', data.dict(), 'ISJKHRSTO')
|
||||||
|
|
||||||
def set_filter_list(db: Session, data: schemas.FilterSetInit):
|
def set_filter_list(db: Session, data: schemas.FilterSetInit):
|
||||||
return exec_procedure_wo_result(db, 'uspSetFilterList', data.dict(), 'ISJKHRSTO')
|
return exec_procedure_wo_result(db, 'uspSetFilterList', data.dict(), 'ISJKHRSTO')
|
||||||
|
@ -2,9 +2,10 @@ from fastapi import APIRouter, Depends
|
|||||||
from auth.login.schemas import login as models
|
from auth.login.schemas import login as models
|
||||||
from auth import oauth2
|
from auth import oauth2
|
||||||
from databases.mssql import general
|
from databases.mssql import general
|
||||||
import kv.schemas as schemas
|
import isjkhrs.schemas as schemas
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from typing import List
|
from typing import List
|
||||||
|
import isjkhrs.crud as crud
|
||||||
|
|
||||||
router = APIRouter(dependencies= [Depends(oauth2.get_current_user) ])
|
router = APIRouter(dependencies= [Depends(oauth2.get_current_user) ])
|
||||||
|
|
||||||
@ -20,6 +21,11 @@ async def get_cities(db = Depends(general.get_db)):
|
|||||||
async def get_city(region_id: int,db = Depends(general.get_db)):
|
async def get_city(region_id: int,db = Depends(general.get_db)):
|
||||||
return db.execute(f"SELECT id, name FROM General.dbo.vCities WHERE id_region = {region_id}").fetchall()
|
return db.execute(f"SELECT id, name FROM General.dbo.vCities WHERE id_region = {region_id}").fetchall()
|
||||||
|
|
||||||
|
@router.get('/getBoilersByRegion/IDRegion={IDRegion}')
|
||||||
|
async def get_boiler_by_region(IDRegion: int,db = Depends(general.get_db)):
|
||||||
|
return db.execute(f"select * from General..vBoilers b "
|
||||||
|
+"inner join General..vCities c on c.id = b.id_city "
|
||||||
|
+"where c.id_region = {IDRegion}").fetchall()
|
||||||
|
|
||||||
@router.get('/getAddress/city-id={city_id}')
|
@router.get('/getAddress/city-id={city_id}')
|
||||||
async def get_address(city_id: int, db= Depends(general.get_db)):
|
async def get_address(city_id: int, db= Depends(general.get_db)):
|
||||||
@ -27,4 +33,8 @@ async def get_address(city_id: int, db= Depends(general.get_db)):
|
|||||||
|
|
||||||
@router.get('/getRegions')
|
@router.get('/getRegions')
|
||||||
async def get_region(db = Depends(general.get_db)):
|
async def get_region(db = Depends(general.get_db)):
|
||||||
return db.execute("SELECT id, name FROM General.dbo.vRegions").fetchall()
|
return db.execute("SELECT id, name FROM General.dbo.vRegions").fetchall()
|
||||||
|
|
||||||
|
@router.post('/get_changing_list')
|
||||||
|
async def get_filter_list(request: schemas.ChangingListInit, db: Session = Depends(general.get_db)):
|
||||||
|
return crud.GeneralViewSet.get_changing_list(db, request)
|
@ -29,4 +29,8 @@ class FilterTypeSerializer(BaseModel):
|
|||||||
class FilterListSerializer(BaseModel):
|
class FilterListSerializer(BaseModel):
|
||||||
ID: int
|
ID: int
|
||||||
Name: Optional[str] = None
|
Name: Optional[str] = None
|
||||||
IsChecked: bool
|
IsChecked: bool
|
||||||
|
|
||||||
|
class ChangingListInit(BaseModel):
|
||||||
|
IDGetType: int
|
||||||
|
IDRegion: int
|
||||||
|
45
kv/crud.py
45
kv/crud.py
@ -1,36 +1,38 @@
|
|||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from sqlalchemy import text
|
from sqlalchemy import text, sql
|
||||||
from kv.database import get_table
|
from kv.database import get_table
|
||||||
from kv import schemas
|
from kv import schemas
|
||||||
|
|
||||||
|
|
||||||
def exec_procedure(session, proc_name, params, database: str = None):
|
def exec_procedure(session, proc_name, params, database: str = None):
|
||||||
sql_params = ",".join([f"@{name}='{value}'" if type(value) in [str] else f"@{name}={value}"
|
sql_params = ",".join([f"@{key} = :{key}"
|
||||||
for name, value in params.items()])
|
for key, value in params.items()])
|
||||||
dbstr = ""
|
dbstr = ""
|
||||||
if database:
|
if database:
|
||||||
dbstr = f"[{database}]."
|
dbstr = f"[{database}]."
|
||||||
sql_string = """
|
sql_string = sql.text(f'''
|
||||||
DECLARE @return_value int;
|
DECLARE @return_value int;
|
||||||
EXEC @return_value = {dbstr}[dbo].[{proc_name}] {params};
|
EXEC @return_value = {dbstr}[dbo].[{proc_name}] {sql_params};
|
||||||
SELECT 'Return Value' = @return_value;
|
SELECT 'Return Value' = @return_value;
|
||||||
""".format(dbstr=dbstr, proc_name=proc_name, params=sql_params)
|
''')
|
||||||
data = session.execute(sql_string).fetchall()
|
data = session.execute(
|
||||||
|
sql_string, params).fetchall()
|
||||||
session.commit()
|
session.commit()
|
||||||
session.expire_all()
|
session.expire_all()
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
def exec_procedure_wo_result(session, proc_name, params, database: str = None):
|
def exec_procedure_wo_result(session, proc_name, params, database: str = None):
|
||||||
sql_params = ",".join([f"@{name}='{value}'" if type(value) in [str] else f"@{name}={value}"
|
sql_params = ",".join([f"@{key} = :{key}"
|
||||||
for name, value in params.items()])
|
for key, value in params.items()])
|
||||||
dbstr = ""
|
dbstr = ""
|
||||||
if database:
|
if database:
|
||||||
dbstr = f"[{database}]."
|
dbstr = f"[{database}]."
|
||||||
sql_string = """
|
sql_string = sql.text(f'''
|
||||||
EXEC {dbstr}[dbo].[{proc_name}] {params}
|
EXEC @return_value = {dbstr}[dbo].[{proc_name}] {sql_params};
|
||||||
""".format(dbstr=dbstr, proc_name=proc_name, params=sql_params)
|
''')
|
||||||
session.execute(sql_string)
|
session.execute(
|
||||||
|
sql_string, params).fetchall()
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
|
||||||
@ -122,7 +124,7 @@ class ObjectViewSet:
|
|||||||
return exec_procedure(db, 'uspGetObjectMunicipals', {'IDCity': IDCity})
|
return exec_procedure(db, 'uspGetObjectMunicipals', {'IDCity': IDCity})
|
||||||
|
|
||||||
def get_services(db: Session, IDObject: str = None):
|
def get_services(db: Session, IDObject: str = None):
|
||||||
return exec_procedure(db, 'uspGetObjectMunicipals', {'IDObject': IDObject})
|
return exec_procedure(db, 'uspGetObjectServices', {'IDObject': IDObject})
|
||||||
|
|
||||||
def get_addresses(db: Session, IDObject: str = None):
|
def get_addresses(db: Session, IDObject: str = None):
|
||||||
return exec_procedure(db, 'uspGetObjectAddresses', {'IDObject': IDObject})
|
return exec_procedure(db, 'uspGetObjectAddresses', {'IDObject': IDObject})
|
||||||
@ -206,12 +208,8 @@ class PaymentViewSet:
|
|||||||
def get_receipt_calculate(db: Session, data: schemas.RecieptCalculateInit):
|
def get_receipt_calculate(db: Session, data: schemas.RecieptCalculateInit):
|
||||||
return exec_procedure(db, 'uspGetReceiptCalculate', **data)
|
return exec_procedure(db, 'uspGetReceiptCalculate', **data)
|
||||||
|
|
||||||
def save_receipt(db: Session, data: schemas.ReceiptSaveInit = None):
|
def save_receipt(db: Session, data: schemas.ReceiptSaveInit):
|
||||||
try:
|
return exec_procedure(db, 'uspSaveReceipt', data.dict())
|
||||||
exec_procedure_wo_result(db, 'uspSaveReceipt', data.dict())
|
|
||||||
return {'msg': 'success'}
|
|
||||||
except:
|
|
||||||
return {'msg': 'error'}
|
|
||||||
|
|
||||||
def repayment_info(db: Session, data: schemas.RepaymentInfoInit):
|
def repayment_info(db: Session, data: schemas.RepaymentInfoInit):
|
||||||
return exec_procedure(db, 'uspGetRepaymentInfo', **data)
|
return exec_procedure(db, 'uspGetRepaymentInfo', **data)
|
||||||
@ -271,6 +269,13 @@ class RecalculationViewSet:
|
|||||||
except:
|
except:
|
||||||
return {'msg': 'error'}
|
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'}
|
||||||
|
|
||||||
|
|
||||||
"""ReferenceViewSet"""
|
"""ReferenceViewSet"""
|
||||||
|
|
||||||
|
24
kv/routers/filter.py
Normal file
24
kv/routers/filter.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import kv.schemas as schemas
|
||||||
|
import kv.crud as crud
|
||||||
|
from kv.database import get_db
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
from fastapi import APIRouter, Depends
|
||||||
|
from typing import List
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
"""post"""
|
||||||
|
|
||||||
|
|
||||||
|
@router.post('/get_filter_types', response_model=List[schemas.FilterTypeSerializer])
|
||||||
|
async def get_filter_types(request: schemas.FilterTypeInit, db: Session = Depends(get_db)):
|
||||||
|
return crud.FilterViewSet.get_filter_types(db, request)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post('/get_filter_list', response_model=List[schemas.FilterListSerializer])
|
||||||
|
async def get_filter_list(request: schemas.FilterListInit, db: Session = Depends(get_db)):
|
||||||
|
return crud.FilterViewSet.get_filter_list(db, request)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post('/set_report_filter_list', response_model=List[schemas.FilterListSerializer])
|
||||||
|
async def set_report_filter_list(request: schemas.FilterSetInit, db: Session = Depends(get_db)):
|
||||||
|
return crud.FilterViewSet.set_filter_list(db, request)
|
@ -29,7 +29,7 @@ async def get_services(IDObject: str, db: Session = Depends(get_db)):
|
|||||||
|
|
||||||
@router.get("/get_addresses/{IDObject}", response_model=List[schemas.ObjectAddressesSerializer])
|
@router.get("/get_addresses/{IDObject}", response_model=List[schemas.ObjectAddressesSerializer])
|
||||||
async def get_addresses(IDObject: str, db: Session = Depends(get_db)):
|
async def get_addresses(IDObject: str, db: Session = Depends(get_db)):
|
||||||
data = crud.ObjectViewSet.get_addresses(db, id)
|
data = crud.ObjectViewSet.get_addresses(db, IDObject)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ async def get_receipt_calculate(request: schemas.RecieptCalculateInit, db: Sessi
|
|||||||
return crud.PaymentViewSet.get_receipt_calculate(db, request)
|
return crud.PaymentViewSet.get_receipt_calculate(db, request)
|
||||||
|
|
||||||
|
|
||||||
@router.post('/save_receipt')
|
@router.post('/save_receipt', response_model=List[schemas.ReceiptSaveSerializer])
|
||||||
async def save_receipt(request: schemas.ReceiptSaveInit, db: Session = Depends(get_db)):
|
async def save_receipt(request: schemas.ReceiptSaveInit, db: Session = Depends(get_db)):
|
||||||
return crud.PaymentViewSet.save_receipt(db, request)
|
return crud.PaymentViewSet.save_receipt(db, request)
|
||||||
|
|
||||||
|
@ -46,6 +46,5 @@ async def get_debts(IDPersonalAccount: int, GetType: bool, db: Session = Depends
|
|||||||
|
|
||||||
|
|
||||||
@router.post("/get_financial_account", response_model=List[schemas.ReportTOFinancialAccount])
|
@router.post("/get_financial_account", response_model=List[schemas.ReportTOFinancialAccount])
|
||||||
async def get_financial_account(request: schemas.PersonalAccountInit, db: Session = Depends(get_db)):
|
async def get_financial_account(request: schemas.ReportTOFinancialAccountInit, db: Session = Depends(get_db)):
|
||||||
data = crud.PersonalAccountViewSet.get_financial_account(db, request)
|
return crud.PersonalAccountViewSet.get_financial_account(db, request)
|
||||||
return schemas.ReportTOFinancialAccount(**data)
|
|
||||||
|
@ -32,6 +32,6 @@ async def get_accruals_can_be_recalculated(request: schemas.AccrualsCanBeRecalcu
|
|||||||
return crud.RecalculationViewSet.get_accruals_can_be_recalculated(db, request)
|
return crud.RecalculationViewSet.get_accruals_can_be_recalculated(db, request)
|
||||||
|
|
||||||
|
|
||||||
@router.post('/save_withdrawing')
|
@router.post('/save_recalculation')
|
||||||
async def save_withdrawing(request: schemas.WithdrawingSave, db: Session = Depends(get_db)):
|
async def save_recalculation(request: schemas.RecalculationSave, db: Session = Depends(get_db)):
|
||||||
return crud.RecalculationViewSet.save_withdrawing(db, request)
|
return crud.RecalculationViewSet.save_recalculation(db, request)
|
||||||
|
163
kv/schemas.py
163
kv/schemas.py
@ -5,6 +5,8 @@ from pydantic import BaseModel
|
|||||||
from typing import Optional, List
|
from typing import Optional, List
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
|
|
||||||
|
from sqlalchemy import SmallInteger, null
|
||||||
|
|
||||||
|
|
||||||
class AddObjectInit(BaseModel):
|
class AddObjectInit(BaseModel):
|
||||||
IDCity: int
|
IDCity: int
|
||||||
@ -126,7 +128,7 @@ class WithdrawingCheckInit(PersonalAccountInit, GetTypeInit, DateInit):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
class AccrualsCanBeRecalculatedInit(BaseModel):
|
class AccrualsCanBeRecalculatedInit(BaseModel):
|
||||||
IDPersonalAccount: int
|
IDUser: int
|
||||||
DateBegin: str
|
DateBegin: str
|
||||||
DateEnd: str
|
DateEnd: str
|
||||||
|
|
||||||
@ -138,6 +140,14 @@ class WithdrawingSave(PersonalAccountInit, WithdrawingCheckSerializer, DateInit)
|
|||||||
IDProviderContract: int
|
IDProviderContract: int
|
||||||
IDManagementCompany: int
|
IDManagementCompany: int
|
||||||
|
|
||||||
|
class RecalculationSave(BaseModel):
|
||||||
|
IDUser: int
|
||||||
|
IDService: int
|
||||||
|
IDType: int
|
||||||
|
Percent: float
|
||||||
|
DateBegin: str
|
||||||
|
DateEnd: str
|
||||||
|
|
||||||
|
|
||||||
class RepaymentInfoInit(BaseModel):
|
class RepaymentInfoInit(BaseModel):
|
||||||
IDCashbox: int
|
IDCashbox: int
|
||||||
@ -161,10 +171,10 @@ class ReceiptSaveInit(BaseModel):
|
|||||||
IDCashbox: int
|
IDCashbox: int
|
||||||
IDType: int
|
IDType: int
|
||||||
IDPersonalAccount: int
|
IDPersonalAccount: int
|
||||||
IDDebtContract: int
|
IDDebtContract: int = None
|
||||||
IDService: int
|
IDService: int = None
|
||||||
DateBegin: date
|
DateBegin: str
|
||||||
DateEnd: date
|
DateEnd: str
|
||||||
IDMoneyType: int
|
IDMoneyType: int
|
||||||
Amount: float
|
Amount: float
|
||||||
AmountFine: float
|
AmountFine: float
|
||||||
@ -384,25 +394,25 @@ class TOArchiveReceiptSerializer(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class ReportTOFinancialAccount(BaseModel):
|
class ReportTOFinancialAccount(BaseModel):
|
||||||
por: int
|
por: int = None
|
||||||
ServiceName: Optional[str] = None
|
ServiceName: Optional[str] = None
|
||||||
ProviderName: Optional[str] = None
|
ProviderName: Optional[str] = None
|
||||||
DateBegin: date
|
DateBegin: str = None
|
||||||
DateEnd: date
|
DateEnd: str = None
|
||||||
StandartVolume: float
|
StandartVolume: float = None
|
||||||
TariffPopulation: float
|
TariffPopulation: float = None
|
||||||
TariffProvider: float
|
TariffProvider: float = None
|
||||||
AmountSaldoBegin: float
|
AmountSaldoBegin: float = None
|
||||||
AmountTotalAccrued: float
|
AmountTotalAccrued: float = None
|
||||||
AmountAccruedSubsidy: float
|
AmountAccruedSubsidy: float = None
|
||||||
AmountAccrued: float
|
AmountAccrued: float = None
|
||||||
AmountSubsidy: float
|
AmountSubsidy: float = None
|
||||||
AmountWithdrawing: float
|
AmountWithdrawing: float = None
|
||||||
AmountActualAccrued: float
|
AmountActualAccrued: float = None
|
||||||
AmountReceipt: float
|
AmountReceipt: float = None
|
||||||
AmountSaldoCorrect: float
|
AmountSaldoCorrect: float = None
|
||||||
AmountAccruedPreferential: float
|
AmountAccruedPreferential: float = None
|
||||||
AmountSaldoEnd: float
|
AmountSaldoEnd: float = None
|
||||||
|
|
||||||
|
|
||||||
class MoneyTypesSerializer(BaseModel):
|
class MoneyTypesSerializer(BaseModel):
|
||||||
@ -486,6 +496,11 @@ class ReceiptCalculatedSerializer(BaseModel):
|
|||||||
ServiceName: Optional[str] = None
|
ServiceName: Optional[str] = None
|
||||||
Amount: float
|
Amount: float
|
||||||
|
|
||||||
|
class ReceiptSaveSerializer(BaseModel):
|
||||||
|
IDService: int
|
||||||
|
ServiceName: Optional[str] = None
|
||||||
|
Amount: float
|
||||||
|
|
||||||
|
|
||||||
class RentRepaymentInfoSerializer(BaseModel):
|
class RentRepaymentInfoSerializer(BaseModel):
|
||||||
Name: Optional[str] = None
|
Name: Optional[str] = None
|
||||||
@ -627,52 +642,53 @@ class AccrualsCanBeRecalculatedSerializer(BaseModel):
|
|||||||
id: int
|
id: int
|
||||||
IDService: int
|
IDService: int
|
||||||
ServiceName: Optional[str] = None
|
ServiceName: Optional[str] = None
|
||||||
|
Volume: float
|
||||||
Amount: float
|
Amount: float
|
||||||
|
|
||||||
class ObjectDetailsSerializer(BaseModel):
|
class ObjectDetailsSerializer(BaseModel):
|
||||||
IDObject: str
|
IDObject: str = None
|
||||||
IDFias: Optional[str] = None
|
IDFias: Optional[str] = None
|
||||||
IDBoiler: str
|
IDBoiler: str = None
|
||||||
IDOwnershipType: int
|
IDOwnershipType: int = None
|
||||||
IDProviderUtilityServices: int
|
IDProviderUtilityServices: int = None
|
||||||
BuildDate: int
|
BuildDate: int = None
|
||||||
FloorNumber: int
|
FloorNumber: int = None
|
||||||
Entrance: int
|
Entrance: int = None
|
||||||
CommissDate: date
|
CommissDate: date = None
|
||||||
Volume: float
|
Volume: float = None
|
||||||
FullArea: float
|
FullArea: float = None
|
||||||
IDBuildingType: Optional[str] = None
|
IDBuildingType: Optional[str] = None
|
||||||
IDOverlappingType: int
|
IDOverlappingType: int = None
|
||||||
IDWallMaterial: int
|
IDWallMaterial: int = None
|
||||||
IDRoofType: int
|
IDRoofType: int = None
|
||||||
IDFoundationType: int
|
IDFoundationType: int = None
|
||||||
WithdrawingDate: date
|
WithdrawingDate: date = None
|
||||||
WithdrawingReason: Optional[str] = None
|
WithdrawingReason: Optional[str] = None
|
||||||
IDSystemHotWater: int
|
IDSystemHotWater: int = None
|
||||||
IDSystemHotWaterPeriodType: int
|
IDSystemHotWaterPeriodType: int = None
|
||||||
IDSystemColdWater: int
|
IDSystemColdWater: int = None
|
||||||
IDSystemColdWaterPeriodType: int
|
IDSystemColdWaterPeriodType: int = None
|
||||||
IDSystemSewerage: int
|
IDSystemSewerage: int = None
|
||||||
IDStandartVolume: int
|
IDStandartVolume: int = None
|
||||||
IDHeatingType: int
|
IDHeatingType: int = None
|
||||||
IDGasType: int
|
IDGasType: int = None
|
||||||
IDWiringType: int
|
IDWiringType: int = None
|
||||||
IDImprovementDegree: int
|
IDImprovementDegree: int = None
|
||||||
Amount: float
|
Amount: float = None
|
||||||
Deterioration: float
|
Deterioration: float = None
|
||||||
AreaRoof: float
|
AreaRoof: float = None
|
||||||
AreaFoundation: float
|
AreaFoundation: float = None
|
||||||
AreaFacade: float
|
AreaFacade: float = None
|
||||||
AreaPlub: float
|
AreaPlub: float = None
|
||||||
AreaAttic: float
|
AreaAttic: float = None
|
||||||
AreaTechnicalFloor: float
|
AreaTechnicalFloor: float = None
|
||||||
AreaBuilding: float
|
AreaBuilding: float = None
|
||||||
AreaLk: float
|
AreaLk: float = None
|
||||||
AreaYardArea: float
|
AreaYardArea: float = None
|
||||||
AreaBoiler: float
|
AreaBoiler: float = None
|
||||||
ActAvailabilityCounterInstallObjectHeating: int
|
ActAvailabilityCounterInstallObjectHeating: int = None
|
||||||
ActAvailabilityCounterInstallObjectWater: int
|
ActAvailabilityCounterInstallObjectWater: int = None
|
||||||
DirectControl: bool
|
DirectControl: bool = None
|
||||||
|
|
||||||
|
|
||||||
class ObjectMunicipalsSerializer(BaseModel):
|
class ObjectMunicipalsSerializer(BaseModel):
|
||||||
@ -683,15 +699,15 @@ class ObjectMunicipalsSerializer(BaseModel):
|
|||||||
class ObjectServicesSerializer(BaseModel):
|
class ObjectServicesSerializer(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
IDService: int
|
IDService: int
|
||||||
IDProviderContract: int
|
IDProviderContract: int = None
|
||||||
ServiceName: Optional[str] = None
|
ServiceName: Optional[str] = None
|
||||||
por: int
|
por: int = None
|
||||||
ProviderName: Optional[str] = None
|
ProviderName: Optional[str] = None
|
||||||
DateBegin: date
|
DateBegin: date = None
|
||||||
DateEnd: date
|
DateEnd: date = None
|
||||||
IDTariffPopulation: int
|
IDTariffPopulation: int = None
|
||||||
TariffPopAmount: float
|
TariffPopAmount: float = None
|
||||||
TariffProvAmount: float
|
TariffProvAmount: float = None
|
||||||
|
|
||||||
|
|
||||||
class ObjectAddressesSerializer(BaseModel):
|
class ObjectAddressesSerializer(BaseModel):
|
||||||
@ -780,6 +796,7 @@ class ObjectWaterSystemVolumesInit(BaseModel):
|
|||||||
IDHotWater: int
|
IDHotWater: int
|
||||||
IDColdWater: int
|
IDColdWater: int
|
||||||
IDSewerage: int
|
IDSewerage: int
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TariffPopulationSerializer(BaseModel):
|
class TariffPopulationSerializer(BaseModel):
|
||||||
@ -813,3 +830,11 @@ class ProviderUtilityService(BaseModel):
|
|||||||
CorrectAccount: str
|
CorrectAccount: str
|
||||||
BIK: str
|
BIK: str
|
||||||
WorkTime: Optional[str] = None
|
WorkTime: Optional[str] = None
|
||||||
|
|
||||||
|
class ReportTOFinancialAccountInit(BaseModel):
|
||||||
|
IDUser: int
|
||||||
|
IDCashbox: int
|
||||||
|
IDPersonalAccount: int
|
||||||
|
Month: int
|
||||||
|
vid: bool
|
||||||
|
IsAUP: bool
|
||||||
|
4
main.py
4
main.py
@ -5,7 +5,7 @@ from fastapi.middleware.cors import CORSMiddleware
|
|||||||
from kv import kv
|
from kv import kv
|
||||||
from auth import auth
|
from auth import auth
|
||||||
from kassa import kassa
|
from kassa import kassa
|
||||||
from isjkhrs import isapi
|
from isjkhrs import ismain
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
|
||||||
middleware = [Middleware(
|
middleware = [Middleware(
|
||||||
@ -39,7 +39,7 @@ app.include_router(
|
|||||||
|
|
||||||
|
|
||||||
app.include_router(
|
app.include_router(
|
||||||
router=isapi.router,
|
router=ismain.router,
|
||||||
prefix='/is',
|
prefix='/is',
|
||||||
tags=['Информационная система'],
|
tags=['Информационная система'],
|
||||||
responses={404: {"description": "Not found"}}
|
responses={404: {"description": "Not found"}}
|
||||||
|
Reference in New Issue
Block a user