diff --git a/accounting/creditlimit.py b/accounting/creditlimit.py index 7a40277..69c70b3 100644 --- a/accounting/creditlimit.py +++ b/accounting/creditlimit.py @@ -17,7 +17,7 @@ async def get_credit_stats(sor, orgid): COUNT(CASE WHEN status = 'active' THEN 1 END) as active_count, COUNT(CASE WHEN status = 'expired' THEN 1 END) as expired_count FROM credit_limit - WHERE orgid = ${orgid}$ + WHERE grant_orgid = ${orgid}$ """ recs = await sor.sqlExe(sql, {'orgid': orgid}) if recs and len(recs) > 0: @@ -71,7 +71,7 @@ async def get_all_customer_credits(sor, orgid, status_filter=None): Get all customer credit limits for management view. For distributor sales to see all their customers' credit status. """ - where_clause = "WHERE cl.orgid = ${orgid}$" + where_clause = "WHERE cl.grant_orgid = ${orgid}$" params = {'orgid': orgid, 'sort': 'update_at desc'} if status_filter and status_filter != 'all': where_clause += " AND cl.status = ${status}$" @@ -145,7 +145,7 @@ async def update_used_credit(sor, accid, new_used_amount): debug(f'Updated credit for {accid}: used={new_used}, available={new_available}') async def set_credit_limit(sor, accountid, orgid, credit_limit_amount, - valid_from=None, valid_to=None, created_by=None, remark=None): + grant_orgid='0', valid_from=None, valid_to=None, created_by=None, remark=None): """ Set or update credit limit for an account. If a credit limit already exists, update it; otherwise create new. @@ -181,6 +181,7 @@ async def set_credit_limit(sor, accountid, orgid, credit_limit_amount, 'id': new_id, 'accountid': accountid, 'orgid': orgid, + 'grant_orgid': grant_orgid or '0', 'credit_limit': credit_limit_amount, 'used_credit': 0, 'available_credit': credit_limit_amount, diff --git a/models/credit_limit.json b/models/credit_limit.json index ca77bdf..91cb7fe 100644 --- a/models/credit_limit.json +++ b/models/credit_limit.json @@ -29,6 +29,14 @@ "length": 32, "nullable": "no" }, + { + "name": "grant_orgid", + "title": "授予机构ID", + "type": "str", + "length": 32, + "nullable": "no", + "default": "0" + }, { "name": "credit_limit", "title": "信用额度", @@ -114,6 +122,11 @@ "idxtype": "index", "idxfields": ["orgid"] }, + { + "name": "idx_credit_limit_grant_orgid", + "idxtype": "index", + "idxfields": ["grant_orgid"] + }, { "name": "idx_credit_limit_status", "idxtype": "index", diff --git a/wwwroot/credit_limit/api/credit_summary.dspy b/wwwroot/credit_limit/api/credit_summary.dspy index 5c859a7..545fcd9 100644 --- a/wwwroot/credit_limit/api/credit_summary.dspy +++ b/wwwroot/credit_limit/api/credit_summary.dspy @@ -13,7 +13,7 @@ async with db.sqlorContext(dbname) as sor: COUNT(CASE WHEN status = 'active' THEN 1 END) as active_count, COUNT(CASE WHEN status = 'expired' THEN 1 END) as expired_count FROM credit_limit - WHERE orgid = ${orgid}$ + WHERE grant_orgid = ${orgid}$ """ recs = await sor.sqlExe(sql, {'orgid': orgid}) if recs and len(recs) > 0: diff --git a/wwwroot/credit_limit/api/set_customer_credit.dspy b/wwwroot/credit_limit/api/set_customer_credit.dspy index db8972f..01548b8 100644 --- a/wwwroot/credit_limit/api/set_customer_credit.dspy +++ b/wwwroot/credit_limit/api/set_customer_credit.dspy @@ -101,6 +101,8 @@ async with db.sqlorContext(dbname) as sor: UPDATE credit_limit SET credit_limit = ${credit_limit}$, available_credit = ${credit_limit}$ - used_credit, + orgid = ${orgid}$, + grant_orgid = ${grant_orgid}$, valid_from = ${valid_from}$, valid_to = ${valid_to}$, remark = ${remark}$, @@ -109,6 +111,8 @@ async with db.sqlorContext(dbname) as sor: """ await sor.sqlExe(sql, { 'credit_limit': credit_limit_amount, + 'orgid': customer_orgid, + 'grant_orgid': orgid, 'valid_from': valid_from, 'valid_to': valid_to, 'remark': remark, @@ -120,6 +124,7 @@ async with db.sqlorContext(dbname) as sor: UPDATE credit_limit SET credit_limit = ${credit_limit}$, available_credit = ${credit_limit}$ - used_credit, + grant_orgid = ${grant_orgid}$, valid_from = ${valid_from}$, valid_to = ${valid_to}$, remark = ${remark}$, @@ -128,6 +133,7 @@ async with db.sqlorContext(dbname) as sor: """ await sor.sqlExe(sql, { 'credit_limit': credit_limit_amount, + 'grant_orgid': orgid, 'valid_from': valid_from, 'valid_to': valid_to, 'remark': remark, @@ -141,7 +147,8 @@ async with db.sqlorContext(dbname) as sor: data = { 'id': new_id, 'accountid': accountid, - 'orgid': orgid, + 'orgid': customer_orgid, + 'grant_orgid': orgid, 'credit_limit': credit_limit_amount, 'used_credit': 0, 'available_credit': credit_limit_amount,