Исправления
This commit is contained in:
45
kv/crud.py
45
kv/crud.py
@ -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"""
|
||||
|
||||
|
Reference in New Issue
Block a user