import json from appPublic.uniqueID import getID from datetime import datetime async def main(request, params_kw): """Create a new supplychain_accounting record.""" user_id = await get_user() user_orgid = await get_userorgid() dbname = get_module_dbname('supplychain') data = params_kw.get("data", "{}") if isinstance(data, str): data = json.loads(data) data["id"] = getID() data["resellerid"] = user_orgid data["created_by"] = user_id data["created_at"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # Auto-generate codes if needed if "supplychain_accounting" == "suppliers" and not data.get("supplier_code"): data["supplier_code"] = f"SUP-{datetime.now().strftime('%Y%m%d')}-{getID()[:4]}" if "supplychain_accounting" == "sub_distributors" and not data.get("sub_dist_code"): data["sub_dist_code"] = f"SUB-{datetime.now().strftime('%Y%m%d')}-{getID()[:4]}" if "supplychain_accounting" == "supply_contracts" and not data.get("contract_code"): data["contract_code"] = f"SC-{datetime.now().strftime('%Y%m%d')}-{getID()[:4]}" if "supplychain_accounting" == "distribution_agreements" and not data.get("agreement_code"): data["agreement_code"] = f"DA-{datetime.now().strftime('%Y%m%d')}-{getID()[:4]}" config = getConfig(".") DBPools(config.databases) async with db.sqlorContext(dbname) as sor: await sor.C("supplychain_accounting", data) return json.dumps({"status": "ok", "data": data})