async def saveUser(ns={}): db = DBPools() async with db.sqlorContext('kboss') as sor: try: if ns.get('orgid'): orgid = ns.get('orgid') else: # find orgid info from users org_info = await sor.R('users', {'id': await get_user(), 'del_flg': '0'}) if org_info: orgid = org_info[0].get('orgid') else: return { 'status': False, 'msg': 'can not find orgid from users' } org = {} org['id'] = orgid org['orgname'] = ns.get('fullName') org['orgname'] = ns.get('name') org['orgcode'] = ns.get('orgcode') org['address'] = ns.get('address') org['contactor'] = ns.get('contact') org['contactor_phone'] = ns.get('tel') org['emailaddress'] = ns.get('email') await sor.U('organization', org) # default have saleman and can update name, email, mobile users = {} users['username'] = ns.get('saleMgrName') users['email'] = ns.get('saleMgrEmail') users['mobile'] = ns.get('saleMgrTel') # find salemanid info from customers cust = await sor.R('customer', {'customerid': orgid, 'del_flg': '0'}) customer = cust[0] if cust else {} salemanid = customer.get('salemanid') if salemanid: users['id'] = salemanid saleman = await sor.U('users', users) else: # TODO New registered user has no sale person saleman_user = {} exist_invoice = await sor.R('invoice_attr', {'customerid': orgid}) invoice_attr = {} invoice_attr['customerid'] = orgid invoice_attr['bank_name'] = ns.get('bankName') invoice_attr['bank_account'] = ns.get('bankAcc') invoice_attr['invoice_title'] = ns.get('identityName') invoice_attr['phone'] = ns.get('taxTel') invoice_attr['tax_no'] = ns.get('taxpayerIdentity') invoice_attr['address'] = ns.get('taxAddress') if exist_invoice: invoice_attr['id'] = exist_invoice[0].get('id') await sor.U('invoice_attr', invoice_attr) else: invoice_attr['id'] = uuid() await sor.C('invoice_attr', invoice_attr) exist_zj_users = await sor.R('zj_users', {'orgid': orgid}) zj_users = {} zj_users['orgid'] = orgid zj_users['salemgrname'] = ns.get('saleMgrName') zj_users['salemgremail'] = ns.get('saleMgrEmail') zj_users['salemgrtel'] = ns.get('saleMgrTel') zj_users['userac'] = ns.get('userAc') zj_users['userphone'] = ns.get('userPhone') zj_users['remark'] = ns.get('remark') zj_users['ak'] = ns.get('ak') zj_users['sk'] = ns.get('sk') zj_users['thirdid'] = ns.get('thirdId') zj_users['appid'] = ns.get('appId') zj_users['supid'] = 99 if exist_zj_users: zj_users['id'] = exist_zj_users[0].get('id') await sor.U('zj_users', zj_users) else: zj_users['id'] = uuid() await sor.C('zj_users', zj_users) return { 'status': True, 'msg': 'save user success' } except Exception as e: return { 'status': False, 'msg': 'save user failed', 'err_data': e } ret = await saveUser(params_kw) return ret