14:24:13.684 | trace | yii\base\Application::bootstrap | Bootstrap with yii\log\Dispatcher |
14:24:13.684 | trace | yii\base\Module::getModule | Loading module: debug |
14:24:13.684 | trace | yii\base\Application::bootstrap | Bootstrap with yii\debug\Module::bootstrap() |
14:24:13.685 | trace | yii\redis\Connection::open | Opening redis DB connection: redis.server.local:6379, database=1 |
14:24:13.685 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SELECT |
14:24:13.685 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.685 | trace | yii\base\Module::getModule | Loading module: gii |
14:24:13.685 | trace | yii\base\Application::bootstrap | Bootstrap with yii\gii\Module::bootstrap() |
14:24:13.686 | trace | yii\web\UrlManager::parseRequest | No matching URL rules. Using default URL parsing logic. |
14:24:13.686 | trace | yii\web\Application::handleRequest | Route requested: 'vue/analysis/sales-counts' |
14:24:13.686 | trace | yii\base\Module::getModule | Loading module: vue |
14:24:13.686 | info | yii\web\Session::open | Session started |
14:24:13.687 | info | yii\db\Command::query | SELECT * FROM "global"."vw_user_login" WHERE "id"=1001 |
14:24:13.687 | info | yii\db\Connection::open | Opening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta |
14:24:13.694 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.694 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
14:24:13.694 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.695 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
14:24:13.695 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1001 |
14:24:13.697 | trace | yii\base\Controller::runAction | Route to run: vue/analysis/sales-counts |
14:24:13.697 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.698 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
14:24:13.698 | trace | yii\base\InlineAction::runWithParams | Running action: app\modules\vue\controllers\AnalysisController::actionSalesCounts() |
14:24:13.699 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.700 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.701 | info | yii\db\Command::query | SELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='AccountManager') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[2025-01-01 00:00:00, 2025-12-31 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY
pinyin1 nulls first, namecut1 nulls first,
pinyin2 nulls first, namecut2 nulls first,
pinyin3 nulls first, namecut3 nulls first,
pinyin4 nulls first, namecut4 nulls first |
14:24:13.704 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.704 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
14:24:13.704 | info | yii\db\Command::query | SELECT "created_by" FROM "a57be577deb434"."tbl_projects" WHERE ("bargain_date" >= '2025-01-01 00:00:00') AND ("bargain_date" <= '2025-12-31 23:59:59') AND ("project_status"=3) AND ("created_by" NOT IN (5329, 5332, 5420, 1001, 5087, 5300, 5311, 5295, 1013, 1004, 1005)) GROUP BY "created_by" |
14:24:13.707 | info | yii\db\Command::query | SELECT g.name, string_agg( sgr.sales_id::varchar, ',') AS list FROM "a57be577deb434"."tbl_groups" "g" LEFT JOIN "a57be577deb434"."tbl_sales_group_relationships" "sgr" ON sgr.group_id = g.id WHERE "sgr"."sales_id" IN (5329, 5332, 5420, 1001, 5087, 5300, 5311, 5295, 1013, 1004, 1005) GROUP BY "g"."name" |
14:24:13.708 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.708 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
14:24:13.720 | info | yii\db\Command::query | SELECT count(id) AS count FROM "a57be577deb434"."tbl_clients" WHERE "sales_rep"='1001' |
14:24:13.722 | info | yii\db\Command::query | SELECT count(id) AS count FROM "a57be577deb434"."tbl_clients" WHERE sales_rep is null |
14:24:13.723 | info | yii\db\Command::query | SELECT COUNT(*) FROM (SELECT DISTINCT c.id, c.client_class, cc.notice_days, extract(epoch from (now() - max(sl.end_at))) / 86400 as last_contact FROM "a57be577deb434"."tbl_clients" "c" LEFT JOIN "a57be577deb434"."tbl_client_classes" "cc" ON cc.id = c.client_class LEFT JOIN "a57be577deb434"."tbl_work_logs" "sl" ON sl.client_id = c.id and sl.is_draft = false WHERE ("c"."sales_rep"='1001') AND ("c"."deleted" = FALSE) GROUP BY "c"."id", "cc"."id") "sub" WHERE sub.last_contact > sub.notice_days |
14:24:13.735 | info | yii\db\Command::query | SELECT
sum(p.budget * p.profit_pct / 100) AS profits,
sum(p.budget) AS currents,
sum(p.collected) AS collected,
sum(case when p.budget >= p.collected THEN p.budget - p.collected ELSE 0 END) AS un_collected,
count(p.id) AS count_current
FROM "a57be577deb434"."tbl_projects" "p" WHERE ("p"."created_by"='1001') AND ("p"."project_status"=3) AND (p.bargain_date >= '2025-01-01 00:00:00' AND p.bargain_date < timestamp '2025-12-31 23:59:59' + interval '1 second') |
14:24:13.739 | info | yii\db\Command::query | SELECT
sum(scp.amount) AS collected
FROM "a57be577deb434"."tbl_sales_contract_payments" "scp" LEFT JOIN "a57be577deb434"."tbl_sales_contracts" "c" ON c.id = scp.contract_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON c.from_project = p.id WHERE ("p"."created_by"='1001') AND ("p"."project_status"=3) AND (scp.collected_date >= '2025-01-01 00:00:00' AND scp.collected_date < timestamp '2025-12-31 23:59:59' + interval '1 second') |
14:24:13.744 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.744 | info | yii\db\Command::query | SELECT
d.nspname AS table_schema,
c.relname AS table_name,
a.attname AS column_name,
t.typname AS data_type,
a.attlen AS character_maximum_length,
pg_catalog.col_description(c.oid, a.attnum) AS column_comment,
a.atttypmod AS modifier,
a.attnotnull = false AS is_nullable,
CAST(pg_get_expr(ad.adbin, ad.adrelid) AS varchar) AS column_default,
coalesce(pg_get_expr(ad.adbin, ad.adrelid) ~ 'nextval',false) AS is_autoinc,
array_to_string((select array_agg(enumlabel) from pg_enum where enumtypid=a.atttypid)::varchar[],',') as enum_values,
CASE atttypid
WHEN 21 /*int2*/ THEN 16
WHEN 23 /*int4*/ THEN 32
WHEN 20 /*int8*/ THEN 64
WHEN 1700 /*numeric*/ THEN
CASE WHEN atttypmod = -1
THEN null
ELSE ((atttypmod - 4) >> 16) & 65535
END
WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/
WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/
ELSE null
END AS numeric_precision,
CASE
WHEN atttypid IN (21, 23, 20) THEN 0
WHEN atttypid IN (1700) THEN
CASE
WHEN atttypmod = -1 THEN null
ELSE (atttypmod - 4) & 65535
END
ELSE null
END AS numeric_scale,
CAST(
information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t))
AS numeric
) AS size,
a.attnum = any (ct.conkey) as is_pkey
FROM
pg_class c
LEFT JOIN pg_attribute a ON a.attrelid = c.oid
LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum
LEFT JOIN pg_type t ON a.atttypid = t.oid
LEFT JOIN pg_namespace d ON d.oid = c.relnamespace
LEFT join pg_constraint ct on ct.conrelid=c.oid and ct.contype='p'
WHERE
a.attnum > 0 and t.typname != ''
and c.relname = 'tbl_sales_contract_payments'
and d.nspname = 'a57be577deb434'
ORDER BY
a.attnum; |
14:24:13.751 | info | yii\db\Command::query | select
ct.conname as constraint_name,
a.attname as column_name,
fc.relname as foreign_table_name,
fns.nspname as foreign_table_schema,
fa.attname as foreign_column_name
from
(SELECT ct.conname, ct.conrelid, ct.confrelid, ct.conkey, ct.contype, ct.confkey, generate_subscripts(ct.conkey, 1) AS s
FROM pg_constraint ct
) AS ct
inner join pg_class c on c.oid=ct.conrelid
inner join pg_namespace ns on c.relnamespace=ns.oid
inner join pg_attribute a on a.attrelid=ct.conrelid and a.attnum = ct.conkey[ct.s]
left join pg_class fc on fc.oid=ct.confrelid
left join pg_namespace fns on fc.relnamespace=fns.oid
left join pg_attribute fa on fa.attrelid=ct.confrelid and fa.attnum = ct.confkey[ct.s]
where
ct.contype='f'
and c.relname='tbl_sales_contract_payments'
and ns.nspname='a57be577deb434'
order by
fns.nspname, fc.relname, a.attnum |
14:24:13.762 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
14:24:13.762 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SET |
14:24:13.762 | info | yii\db\Command::query | SELECT
sum(case when p.budget >= p.collected THEN p.budget - p.collected ELSE 0 END) AS un_collected
FROM "a57be577deb434"."tbl_projects" "p" WHERE ("p"."created_by"='1001') AND ("p"."project_status"=3) |
14:24:13.763 | info | yii\db\Command::query | SELECT count(*) as count, sum(budget) as sum, sum(budget * profit_pct / 100) AS profits, "project_status" FROM (SELECT budget, profit_pct,
CASE WHEN project_status = 3 and budget <= collected THEN 0
WHEN project_status = 3 and budget > collected THEN 3
ELSE project_status END as project_status FROM "a57be577deb434"."tbl_projects" "p" WHERE "p"."created_by"='1001') "sub" GROUP BY "project_status" |
14:24:13.767 | info | yii\db\Command::query | SELECT
sum(sci.amount) AS invoices
FROM "a57be577deb434"."tbl_sales_contract_invoices" "sci" LEFT JOIN "a57be577deb434"."tbl_sales_contracts" "c" ON c.id = sci.contract_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON c.project_id = p.id WHERE "p"."created_by"='1001' |
14:24:13.773 | info | yii\db\Command::query | SELECT
sum(sub.invoices) as invoices
FROM (SELECT
sc.id, CASE WHEN sum(sci.amount) > sc.amount or sc.including_tax = false THEN 0 ELSE sc.amount - (CASE WHEN SUM ( sci.amount ) IS NOT NULL THEN SUM ( sci.amount ) ELSE 0 END) END as invoices
FROM "a57be577deb434"."tbl_sales_contracts" "sc" LEFT JOIN "a57be577deb434"."tbl_sales_contract_invoices" "sci" ON sc.id = sci.contract_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON sc.project_id = p.id WHERE ("p"."created_by"='1001') AND ("sc"."including_tax"=TRUE) GROUP BY "sc"."id") "sub" |
14:24:13.776 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.776 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
14:24:13.777 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_visit_module_histories" WHERE ("user_id"=1001) AND ("object_type"=23) AND ("visit_date"='2025-07-16') |
14:24:13.783 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.784 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
14:24:13.784 | info | yii\db\Command::execute | UPDATE "a57be577deb434"."tbl_visit_module_histories" SET "num"=2, "last_visit_at"='now()' WHERE "id"=49842 |
14:24:13.786 | info | yii\db\Command::query | INSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "url", "request", "response", "php_error", "time") VALUES (200, 'a57be577deb434', 1001, 5, 'vue/analysis/sales-counts', '{"period":"today","period2":"currentfascalyear","status":"","dataUserId":"1001","alert":"false","web_access_token":"IB4L4uAW8bjXvE6-5qxkaUjtqmmYbCm_"}', '{"code":2000,"result":{"counts":[{"name":"\u5f53\u524d\u9690\u6027\u9700\u6c42","key":"status1","value":0,"unit":"\u4e2a","valueEx":0,"unitEx":"\u5143","color":"#98c450","link":{}},{"name":"\u5f53\u524d\u660e\u786e\u9700\u6c42","key":"status2","value":2,"unit":"\u4e2a","valueEx":9.52,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u672c\u8d22\u5e74\u6210\u4ea4\u91d1\u989d","key":"journal_account_accomplished","value":8,"unit":"\u4e2a","valueEx":400.1,"unitEx":"\u4e07","color":"#649fd7","link":{}},{"name":"\u672c\u8d22\u5e74\u5229\u6da6","key":"profit_accomplished","value":8,"unit":"\u4e2a","valueEx":12.09,"unitEx":"\u4e07","color":"#649fd7","link":{}},{"name":"\u672c\u8d22\u5e74\u5df2\u6536\u6b3e\u91d1\u989d","key":"collected","value":105.17,"unit":"\u4e07","valueEx":"","unitEx":"","color":"#649fd7","link":{}},{"name":"\u672a\u6536\u6b3e\u91d1\u989d","key":"un_collected","value":395.01,"unit":"\u4e07","valueEx":"","unitEx":"","color":"#649fd7","link":{}},{"name":"\u5ba2\u6237\u6570\u91cf\/\u8d85\u671f\u672a\u8054\u7cfb","key":"total_client_number","value":55,"unit":913,"valueEx":8,"unitEx":"\u4e2a","color":"#98c450","link":{"url":"client","filter":[{"key":"ClientSearch[sales_rep]","value":"1001"}]}},{"name":"\u5df2\u5f00\/\u672a\u5f00\u53d1\u7968\u91d1\u989d","key":"invoices","value":4885.76,"unit":"\u4e07","valueEx":900000398.41,"unitEx":"\u4e07","color":"#e75a4a","link":{"url":"client","filter":[{"key":"ClientSearch[sales_rep]","value":"1001"}]}},{"name":"\u7d2f\u8ba1\u6210\u4ea4\u91d1\u989d","key":"status3","value":95,"unit":"\u4e2a","valueEx":5284.17,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u6210\u4ea4\u5229\u6da6","key":"status3","value":95,"unit":"\u4e2a","valueEx":126.67,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u5931\u8d25\u91d1\u989d","key":"status4","value":0,"unit":"\u4e2a","valueEx":0,"unitEx":"\u5143","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u6401\u7f6e\u91d1\u989d","key":"status5","value":6,"unit":"\u4e2a","valueEx":300,"unitEx":"\u4e07","color":"#98c450","link":{}}]},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"mod":0}', FALSE, '2025-07-16 14:24:13') RETURNING "id" |
14:24:13.788 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
14:24:13.788 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SET |