106 lines
4.2 KiB
Plaintext
106 lines
4.2 KiB
Plaintext
async def price_guanli_jia(ns={}):
|
|
"""
|
|
修改售价管理
|
|
:return:
|
|
"""
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
try:
|
|
# 按产品倒查who is provider
|
|
who_is_provider_sql = """SELECT offer_orgid FROM saleprotocol WHERE bid_orgid = '%s' AND salemode = '2' and
|
|
del_flg = '0' and id in (SELECT protocolid FROM product_salemode WHERE providerid = '%s' and
|
|
productid = '%s');""" % (ns.get('bid_orgid'), ns.get('providerid'), ns.get('productid'))
|
|
who_is_provider = (await sor.sqlExe(who_is_provider_sql, {}))[0]['offer_orgid']
|
|
# 查找供应商协议id
|
|
ns_provider_price = {
|
|
'offer_orgid': who_is_provider,
|
|
'bid_orgid': ns.get('bid_orgid'),
|
|
'salemode': '2',
|
|
'del_flg': '0'
|
|
}
|
|
provider_protocol_id = (await sor.R('saleprotocol', ns_provider_price))[0]['id']
|
|
# 查找供应商给的底价
|
|
if provider_protocol_id:
|
|
provider_price_find = {
|
|
'protocolid': provider_protocol_id,
|
|
'providerid': ns.get('providerid'),
|
|
'productid': ns.get('productid'),
|
|
'del_flg': '0'
|
|
}
|
|
provider_price = (await sor.R('product_salemode', provider_price_find))[0]['price']
|
|
if not provider_price:
|
|
return {
|
|
'status': False,
|
|
'msg': '获取不到供应商的底价'
|
|
}
|
|
if float(provider_price) >= float(ns.get('price')):
|
|
return {
|
|
'status': False,
|
|
'msg': '客户售价不能低于供应商底价'
|
|
}
|
|
|
|
# 首先查找协议是否已经存在
|
|
ns_shoujia = {
|
|
'offer_orgid': ns.get('bid_orgid'),
|
|
'bid_orgid': '*',
|
|
'salemode': '2',
|
|
'del_flg': '0'
|
|
}
|
|
shoujia_res_li = await sor.R('saleprotocol', ns_shoujia)
|
|
if shoujia_res_li:
|
|
protocolid = shoujia_res_li[0]['id']
|
|
else:
|
|
# 协议表不存在 就创建
|
|
ns_zhubiao = {
|
|
'id': uuid(),
|
|
'offer_orgid': ns.get('bid_orgid'),
|
|
'bid_orgid': '*',
|
|
'salemode': '2',
|
|
'start_date': '2010-10-01',
|
|
'end_date': '2099-10-01'
|
|
}
|
|
await sor.C('saleprotocol', ns_zhubiao)
|
|
protocolid = ns_zhubiao['id']
|
|
|
|
# 判断该协议下这个产品是否已经存在
|
|
ns_zibiao_exist = {
|
|
'protocolid': protocolid,
|
|
'providerid': ns.get('providerid'),
|
|
'productid': ns.get('productid'),
|
|
'del_flg': '0'
|
|
}
|
|
exists_res_li = await sor.R('product_salemode', ns_zibiao_exist)
|
|
# 如果已经存在就更新
|
|
if exists_res_li:
|
|
zi_biao_id = exists_res_li[0]['id']
|
|
ns_zibiao_update = {
|
|
'id': zi_biao_id,
|
|
'protocolid': protocolid,
|
|
'providerid': ns.get('providerid'),
|
|
'productid': ns.get('productid'),
|
|
'price': ns.get('price')
|
|
}
|
|
await sor.U('product_salemode', ns_zibiao_update)
|
|
else:
|
|
# 根据protocolid创建售价
|
|
ns_zibiao_shoujia = {
|
|
'id': uuid(),
|
|
'protocolid': protocolid,
|
|
'providerid': ns.get('providerid'),
|
|
'productid': ns.get('productid'),
|
|
'price': ns.get('price')
|
|
}
|
|
await sor.C('product_salemode', ns_zibiao_shoujia)
|
|
return {
|
|
'status': True,
|
|
'msg': '创建售价成功'
|
|
}
|
|
except Exception as e:
|
|
raise e
|
|
return {
|
|
'status': False,
|
|
'msg': '创建售价失败'
|
|
}
|
|
|
|
ret = await price_guanli_jia(params_kw)
|
|
return ret |