52 lines
1.7 KiB
Plaintext
52 lines
1.7 KiB
Plaintext
async def productDelete(ns={}):
|
|
"""
|
|
delect product
|
|
only use primary key to delete
|
|
:param ns:
|
|
:return:
|
|
"""
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
if not ns.get('id'):
|
|
return {
|
|
"status": False,
|
|
"msg": "product id is empty, please check",
|
|
}
|
|
try:
|
|
ns['del_flg'] = '1'
|
|
await sor.U('product', ns)
|
|
|
|
productid = ns.get('id')
|
|
table_list = ['rp_discount', 'floorprice', 'rp_rebate_ctl', 'cp_discount']
|
|
for tabl in table_list:
|
|
update_sql = """update %s set end_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY), del_flg = '1' where productid = '%s'""" % (tabl, productid)
|
|
await sor.sqlExe(update_sql, {})
|
|
|
|
rebate_sql = """select * from rp_rebate_ctl where productid = '%s'""" % productid
|
|
rebates = await sor.sqlExe(rebate_sql, {})
|
|
rebate_set = tuple([item.get('rebateid') for item in rebates])
|
|
if len(rebate_set) == 1:
|
|
rebate_set += ('Na',)
|
|
if not rebate_set:
|
|
return {
|
|
'status': True,
|
|
'msg': 'product delete success',
|
|
'warn': 'rebate is empty'
|
|
}
|
|
rebate_update_sql = """update rp_rebate set del_flg = '1' where rebateid in {}""".format(rebate_set)
|
|
await sor.sqlExe(rebate_update_sql, {})
|
|
|
|
return {
|
|
"status": True,
|
|
"msg": "product delete success",
|
|
}
|
|
except Exception as e:
|
|
raise e
|
|
return {
|
|
"status": False,
|
|
"msg": "product delete failed"
|
|
}
|
|
|
|
|
|
ret = await productDelete(params_kw)
|
|
return ret |