Исправления

This commit is contained in:
Gitea
2022-06-16 09:38:24 +09:00
parent 21e5ad26f2
commit 8d82068324
12 changed files with 175 additions and 103 deletions

View File

@ -1,36 +1,38 @@
from sqlalchemy.orm import Session
from sqlalchemy import text
from sqlalchemy import text, sql
from kv.database import get_table
from kv import schemas
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}"
for name, value in params.items()])
sql_params = ",".join([f"@{key} = :{key}"
for key, value in params.items()])
dbstr = ""
if database:
dbstr = f"[{database}]."
sql_string = """
sql_string = sql.text(f'''
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;
""".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.expire_all()
return data
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}"
for name, value in params.items()])
sql_params = ",".join([f"@{key} = :{key}"
for key, value in params.items()])
dbstr = ""
if database:
dbstr = f"[{database}]."
sql_string = """
EXEC {dbstr}[dbo].[{proc_name}] {params}
""".format(dbstr=dbstr, proc_name=proc_name, params=sql_params)
session.execute(sql_string)
sql_string = sql.text(f'''
EXEC @return_value = {dbstr}[dbo].[{proc_name}] {sql_params};
''')
session.execute(
sql_string, params).fetchall()
session.commit()
@ -122,7 +124,7 @@ class ObjectViewSet:
return exec_procedure(db, 'uspGetObjectMunicipals', {'IDCity': IDCity})
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):
return exec_procedure(db, 'uspGetObjectAddresses', {'IDObject': IDObject})
@ -206,12 +208,8 @@ class PaymentViewSet:
def get_receipt_calculate(db: Session, data: schemas.RecieptCalculateInit):
return exec_procedure(db, 'uspGetReceiptCalculate', **data)
def save_receipt(db: Session, data: schemas.ReceiptSaveInit = None):
try:
exec_procedure_wo_result(db, 'uspSaveReceipt', data.dict())
return {'msg': 'success'}
except:
return {'msg': 'error'}
def save_receipt(db: Session, data: schemas.ReceiptSaveInit):
return exec_procedure(db, 'uspSaveReceipt', data.dict())
def repayment_info(db: Session, data: schemas.RepaymentInfoInit):
return exec_procedure(db, 'uspGetRepaymentInfo', **data)
@ -271,6 +269,13 @@ class RecalculationViewSet:
except:
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"""