diff --git a/wwwroot/program_selected.dspy b/wwwroot/program_selected.dspy index 33a5b9e..ba1e843 100644 --- a/wwwroot/program_selected.dspy +++ b/wwwroot/program_selected.dspy @@ -3,31 +3,37 @@ db = DBPools() dbname = get_module_dbname('rag') async with db.sqlorContext(dbname) as sor: orgid = await get_userorgid() - sql="select * from ragquote where orgid = ${orgid}$ order by enabled_date" + programs = await sor.R('ragprogram', {'id': params_kw.selected_program}) + if len(programs) < 1: + e = Exception(f'selected program({params_kw.selected_program}) not exists') + exception(f'{e}') + raise e + program = programs[0] + sql="select * from ragquota where orgid = ${orgid}$ order by enabled_date" qs = await sor.sqlExe(sql, {'orgid': orgid}) today = curDateString() + expired_date = strdate_add(today, months=program.term) if len(qs) == 0: - if params_kw.program_type == 'free': - expired_date = dateadd(today, months=1) - else: - expired_date = '9999-12-31' ns = { "id": uuid(), - "orgid": u.userorgid, + "orgid": orgid, "enabled_date": today, "expired_date": expired_date, - 'quota': params_kw.quota + 'quota': program.quota } await sor.C('ragquota', ns) else: lastq = qs[-1] lastq.expired_date = today - await sor.U('ragquote', lastq.copy()) + await sor.U('ragquota', lastq.copy()) ns = { "id": uuid(), - "orgid": u.userorgid, + "orgid": orgid, "enabled_date": today, "expired_date": expired_date, - 'quota': params_kw.quota + 'quota': program.quota } await sor.C('ragquota', ns) + return UiMessage(title="set quota", message="set quota success") +e = db.e_except +return UiError(title="set quota", message=f'set quota error:{e}') diff --git a/wwwroot/programs.ui b/wwwroot/programs.ui index 751bc5a..9a349f6 100644 --- a/wwwroot/programs.ui +++ b/wwwroot/programs.ui @@ -112,7 +112,8 @@ }, "options":{ "params":{ - "selected_program":"{{p.id}}" + "selected_program":"{{p.id}}", + "quota":{{p.quota}} }, "url":"{{entire_url('./program_selected.dspy')}}" }