debug(f'{params_kw=}') userid = await get_user() userorgid = await get_userorgid() start_date = params_kw.get('start_date', '') end_date = params_kw.get('end_date', '') if not start_date or not end_date: return json.dumps({'total': 0, 'rows': []}, ensure_ascii=False, default=str) ns = { 'orgid': userorgid, 'start_date': start_date, 'end_date': end_date, 'page': int(params_kw.get('page', 1)), 'rows': int(params_kw.get('rows', 30)), 'sort': 'acc_date desc' } async with get_sor_context(request._run_ns, 'accounting') as sor: sql = """select d.acc_date, d.acc_timestamp, d.acc_dir, d.summary, d.amount, d.balance, s.name as subject_name from acc_detail d join account a on d.accountid = a.id COLLATE utf8mb4_unicode_ci join subject s on a.subjectid = s.id COLLATE utf8mb4_unicode_ci where a.orgid = ${orgid}$ and d.acc_date >= ${start_date}$ and d.acc_date <= ${end_date}$""" ret = await sor.sqlExe(sql, ns) return json.dumps(ret, ensure_ascii=False, default=str)