This commit is contained in:
yumoqing 2024-12-01 14:14:40 +08:00
parent 9ef2c812dd
commit c5ac9639d1
8 changed files with 153 additions and 42 deletions

View File

@ -1,48 +1,17 @@
from appPublic.registerfunction import RegisterFunction
from appPublic.dictOBject import DictObject
from appPublic.log import debug, exception, error
from ahserver.serverenv import ServerEnv
from accounting_config import AccountingOrgs
"""
We use Biz module's function to get inner provider and its sellprice, and product cost
We use platform biz module to get pay_fee, and trans_fee amount by transamt
def load_accounting():
g = ServerEnv()
g.recharge_accounting = recharge_accounting
g.pay_accounting = pay_accounting
g.settle_accounting = settle_accounting
g.open_customer_account = open_customer_account
g.open_reseller_account = open_reseller_account
g.open_provider_account = open_provider_account
g.open_owner_account = open_owner_account
g.get_customer_balance = get_customer_balance
async bz_get_transfee(sor, transamt:float) -> float:
async bz_get_pay_fee(sor, resellerid, transamt:float) -> float:
async bz_get_inner_provider(sor, resellerid, productid, transamt) ->list of iobject with key in (resellerid, productid, transamt, purchase_cost)
"""
async def bay_accouting(sor, actname,
orderid,
customerid,
resellerid,
productid,
unitprice,
quantity,
transamt):
rf = RegisterFunction()
f = rf.get('bz_get_transfee')
if f is None:
e = Exception(f'fucntion "bz_get_transfee" not registed')
raise e
transfee = await f(sor, resellerid, transamt)
resellers = await bz_get_inner_provider(sor, resellerid, productid, transamt)
par = []
for i, reseller in enumerate(resellers):
env = DictOBject(**{
'actname':actname,
'orderid':orderid,
'customerid':customerid,
'productid':reseller.productid,
'resellerid':resellerid,
'交易费': 0 if i>0 else transfee,
'交易金额':reseller.transamt,
'进货成本':reseller.purchase_cost,
'accounting_rule':[
]
})
ac = AccountingOrgs(env.copy())
ac.do_accounting(sor)
PlatformAccount(

17
json/acc_balance.json Normal file
View File

@ -0,0 +1,17 @@
{
"models_dir": "${HOME}$/py/rbac/models",
"output_dir": "${HOME}$/py/sage/wwwroot/account",
"dbname": "sage",
"tblname": "acc_balance",
"title":"科目",
"params": {
"sortby":"name",
"browserfields": {
"exclouded": ["id"],
"cwidth": {}
},
"editexclouded": [
"id"
]
}
}

17
json/acc_detail.json Normal file
View File

@ -0,0 +1,17 @@
{
"models_dir": "${HOME}$/py/rbac/models",
"output_dir": "${HOME}$/py/sage/wwwroot/acc_detail",
"dbname": "sage",
"tblname": "acc_detail",
"title":"科目",
"params": {
"sortby":"name",
"browserfields": {
"exclouded": ["id"],
"cwidth": {}
},
"editexclouded": [
"id"
]
}
}

34
json/account.json Normal file
View File

@ -0,0 +1,34 @@
{
"models_dir": "${HOME}$/py/rbac/models",
"output_dir": "${HOME}$/py/sage/wwwroot/account",
"dbname": "sage",
"tblname": "account",
"title":"科目",
"params": {
"sortby":"name",
"browserfields": {
"exclouded": ["id"],
"cwidth": {}
},
"editexclouded": [
"id"
],
"subtables":[
{
"field":"accountid",
"title":"账户余额",
"subtable":"acc_balance"
},
{
"field":"accountid",
"title":"账户明细",
"subtable":"acc_detail"
},
{
"field":"accountid",
"title":"账户日志",
"subtable":"accounting_log"
}
]
}
}

16
json/account_config.json Normal file
View File

@ -0,0 +1,16 @@
{
"models_dir": "${HOME}$/py/accounting/models",
"output_dir": "${HOME}$/py/sage/wwwroot/account_config",
"dbname": "sage",
"tblname": "account_config",
"title":"账户设置",
"params": {
"browserfields": {
"exclouded": ["id"],
"cwidth": {}
},
"editexclouded": [
"id"
]
}
}

View File

@ -0,0 +1,16 @@
{
"models_dir": "${HOME}$/py/accounting/models",
"output_dir": "${HOME}$/py/sage/wwwroot/accounting_config",
"dbname": "sage",
"tblname": "accounting_config",
"title":"账务设置",
"params": {
"browserfields": {
"exclouded": ["id"],
"cwidth": {}
},
"editexclouded": [
"id"
]
}
}

17
json/accounting_log.json Normal file
View File

@ -0,0 +1,17 @@
{
"models_dir": "${HOME}$/py/rbac/models",
"output_dir": "${HOME}$/py/sage/wwwroot/accounting_log",
"dbname": "sage",
"tblname": "accounting_log",
"title":"科目",
"params": {
"sortby":"name",
"browserfields": {
"exclouded": ["id"],
"cwidth": {}
},
"editexclouded": [
"id"
]
}
}

25
json/subject.json Normal file
View File

@ -0,0 +1,25 @@
{
"models_dir": "${HOME}$/py/rbac/models",
"output_dir": "${HOME}$/py/sage/wwwroot/subject",
"dbname": "sage",
"tblname": "subject",
"title":"科目",
"params": {
"sortby":"name",
"browserfields": {
"exclouded": ["id"],
"cwidth": {}
},
"editexclouded": [
"id"
],
"subtables":[
{
"field":"subjectid",
"title":"账户设置",
"url":"../account_config",
"subtable":"account_config"
}
]
}
}