From 592a174bb7bfc8ad35078f16367eb02eaaa001c5 Mon Sep 17 00:00:00 2001 From: Gitea Date: Thu, 14 Jul 2022 16:21:44 +0900 Subject: [PATCH] last --- isjkhrs/schemas.py | 4 +- kassa/new.py | 2 +- kv/crud.py | 72 ++++++-------- kv/routers/__pycache__/address.cpython-39.pyc | Bin 2526 -> 2164 bytes .../__pycache__/objectvs.cpython-39.pyc | Bin 2483 -> 2495 bytes kv/routers/__pycache__/payment.cpython-39.pyc | Bin 2281 -> 2314 bytes .../personalaccount.cpython-39.pyc | Bin 2193 -> 2366 bytes .../__pycache__/recalculation.cpython-39.pyc | Bin 1711 -> 1717 bytes .../__pycache__/reference.cpython-39.pyc | Bin 8112 -> 8119 bytes kv/routers/__pycache__/report.cpython-39.pyc | Bin 696 -> 720 bytes kv/routers/address.py | 20 ++-- kv/routers/objectvs.py | 2 +- kv/routers/personalaccount.py | 4 + kv/routers/reference.py | 2 +- kv/schemas.py | 92 +++++++++++++++--- 15 files changed, 123 insertions(+), 75 deletions(-) diff --git a/isjkhrs/schemas.py b/isjkhrs/schemas.py index e14d79c..f9dc3a2 100644 --- a/isjkhrs/schemas.py +++ b/isjkhrs/schemas.py @@ -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 diff --git a/kassa/new.py b/kassa/new.py index db6283f..cd948fe 100644 --- a/kassa/new.py +++ b/kassa/new.py @@ -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" diff --git a/kv/crud.py b/kv/crud.py index a6195de..3320613 100644 --- a/kv/crud.py +++ b/kv/crud.py @@ -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) diff --git a/kv/routers/__pycache__/address.cpython-39.pyc b/kv/routers/__pycache__/address.cpython-39.pyc index ca940f0250fb9d692a0b36bb5203ca772b756cad..5baa661ad563a9e0827f7e172512212ec5017828 100644 GIT binary patch delta 71 zcmca7{6&B-k(ZZ?0SGoM+Ld&feIlO>W79_MMn<+2#$X0bg~`7dmvHborlb_578h?` a#Z?yKym{Jr|lv;pdQ3`m}D8tmGFa|Sds!ZO*xP(W@F(suawYbc0HL(i4WMchD#74ZOxTcTLi6-k2>2*3$J5KA6N zSOIY{6OdqFDw3a^&Ss)rBnRZ+RBw+^uc^5C2AeOVN|ZtX)K!iUN4cbyBxdFm2d5Tg cCgx;Tr4|8AR^m`&G??tkq0J$~!odi_0N7Mk5dZ)H diff --git a/kv/routers/__pycache__/objectvs.cpython-39.pyc b/kv/routers/__pycache__/objectvs.cpython-39.pyc index 83e0436024fbe7e2443bc374dd275e69c900c6bb..bdc0f0942fba28a92264770b227712be74885a17 100644 GIT binary patch delta 423 zcmdliykD3%k(ZZ?0SGo`?Mr&SkvEC4UM7`2MRE>Pid2ep3u`lDlx!;R0_hZ)g^a0O zsX%@jV=7~o98`^LiX2#tJXno9iW&u|8if=^uo^|M8YL7pN>DY*DJoz!$|;PS-!X1w zn#{){!^fMRS`wd_l2VjfT%1}w`6A0sVKJafRe-pd1>|NXKE@)k$#YrbRKepIlDPEb0QM*?Y<9^2 zRoNh^1o1UhHeX>^WRwB9`4&q-esReyKL4bw)Z`M^l*|&(yv!1ylNdRr8Kox6a;l3; UgOu?)rldgBfaPT-M{-610DOU44*&oF delta 443 zcmdllyjhqxk(ZZ?0SLT=nv&jaMhQiYB2OqnT@3t2@cKVn%T zEDn@c0pem7Ai==I$5$Wp(m;75 zB$d*W=d*QSHB$zt${b0h%w!+-C@pNZ%K}x|AgKiLHI+ACU{_@10r}z4E diff --git a/kv/routers/__pycache__/payment.cpython-39.pyc b/kv/routers/__pycache__/payment.cpython-39.pyc index 82c853b541ab05dffb2f887930a89741c310b392..f967ef99f4219f90fdaec8bc31d814807da1c3a0 100644 GIT binary patch delta 215 zcmaDU*d@f9$ji&c00hriS0v?3AA~$_rF24OT6Op;{iQS|&vntXcuAS`MsQ5ks{SR5ho3 ziUL@<^5$!dqO6Q6o8Pb*Gm41@r6#9l7L)`hmZb)#7G);pWLBjXO_t+0$R)%m!veto DAI3F7 delta 182 zcmeAYdMU`8$ji&c00h25O-U9Ld1V>bY}D3etY09WBC(J$l`ECCnK6wql`%^?l|4mt z4pWL`ic||wEJ`MoH%mN4I+X_~Co9R2!rse-q*@NDS|&vntXdwdS`MsQ0YkMSRJDAH h0$8IcGfsBkIKaihD8nKI#sG?SDwhBN diff --git a/kv/routers/__pycache__/personalaccount.cpython-39.pyc b/kv/routers/__pycache__/personalaccount.cpython-39.pyc index a72624847dcbb60800cba3841bf1ce16eea26919..d3b2e5a7fa34ab88cb12bf3f4ae0b4adb5389823 100644 GIT binary patch delta 377 zcmbOzxKD^Tk(ZZ?0SL}b*_HHSBCjlC+eYm~My*ud1=1<93mH?nQdyfB(->13v*c6R zQ>5lFrO2how*bYW6jB(288j6(Phwom;=GdS7JE@@VQFe{Nf9T|xMU`fp-=!~vjFj7 zATH(u5+w{-j0>1*7;6|7G6gdffgGU8Jh_8Ssa^)iEaHa~0w9(gkT3w^Vz8M^V15;= zerif)2^rQDaf8g{0TQ=ZKt>cHTM4wP2yCZ3P~HT|P7q&HaWf;k8RO)2Y*I|OWF~K5 zlTi1}0~!Ew-z}+t)S}}2yu=*GVj2e@(IMi8Wm^l~$ Dj3h~_ delta 174 zcmdldG*OT@k(ZZ?0SF{j`;*cp^2#zMZPZR=WJ_TTX3&(~yp3@&3!~=bC^nhN2F$#g zazKS83|Wi|m}(en7#1?sGL?UBn3z5MUFPkOeXffVh|iNH8$*F&2SDH03u(vzsyU6oITM5(5#klizTtF{(@! H=2Qm&%F-Ww diff --git a/kv/routers/__pycache__/recalculation.cpython-39.pyc b/kv/routers/__pycache__/recalculation.cpython-39.pyc index 7042a59a05315acc391e91105e0d089d763eda3e..88b075a66e6d25775e8ec0195d70f69f64ae5673 100644 GIT binary patch delta 91 zcmZ3_yOozWk(ZZ?0SLCto|~k$kvEM+L|DH#u`D&dC^b1TC%H5yu_QA;Z?ZSDov;w5 S_~t7t^^AOiK`3hD*#ZD7${yzc delta 85 zcmdnWyPlUfk(ZZ?0SJD#O-+*9$eYF@B&c7USe6=Jo>`KSQj}PpnU_AV!Z diff --git a/kv/routers/__pycache__/reference.cpython-39.pyc b/kv/routers/__pycache__/reference.cpython-39.pyc index f28a1b3f9d4c1de4a8dd9cf26af90271bac65631..650c7848c02e8728d7da9c1c2a68d4bf9a527901 100644 GIT binary patch delta 53 zcmdmBzulfUk(ZZ?0SI;k>`HpKkvBn3QpP_iD>b}FUd?!EuQ!@ nM^X}(?BoJQ50N4spjjYX%mOl%iI1^}XYwV+)r>ro>zJ$ns`De= delta 91 zcmcb>x`UN3k(ZZ?0SH2bnv!lXPUL&Q&81(IT98#(VBt9jzBr!8* kav!6I)Gbc9JP%M~F$+jL6CY!dz~onqs~H6*Ph+wI0KF<20{{R3 diff --git a/kv/routers/address.py b/kv/routers/address.py index 4caaaf7..c3fc857 100644 --- a/kv/routers/address.py +++ b/kv/routers/address.py @@ -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) diff --git a/kv/routers/objectvs.py b/kv/routers/objectvs.py index b31f544..055f8ca 100644 --- a/kv/routers/objectvs.py +++ b/kv/routers/objectvs.py @@ -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) diff --git a/kv/routers/personalaccount.py b/kv/routers/personalaccount.py index b6d4a79..3bab27a 100644 --- a/kv/routers/personalaccount.py +++ b/kv/routers/personalaccount.py @@ -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) \ No newline at end of file diff --git a/kv/routers/reference.py b/kv/routers/reference.py index 25d1ea7..9990204 100644 --- a/kv/routers/reference.py +++ b/kv/routers/reference.py @@ -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) diff --git a/kv/schemas.py b/kv/schemas.py index e77a9bc..351fb31 100644 --- a/kv/schemas.py +++ b/kv/schemas.py @@ -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,10 +372,10 @@ class AddressDetailsSerializer(BaseModel): MeteringDeviceHeating: bool = None MeteringDeviceHotWater: bool = None MeteringDeviceColdWater: bool = None - ActAvailabilityMeteringDeviceInstallIDType: int = None + ActAvailabilityMeteringDeviceInstallIDType: bool = None ActAvailabilityMeteringDeviceInstallHeating: bool = None ActAvailabilityMeteringDeviceInstallWater: bool = None - + class EditAdressInit(AddressDetailsSerializer): ActionType: Optional[str] = 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