15:46:11.652 | trace | yii\base\Application::bootstrap | Bootstrap with yii\log\Dispatcher |
15:46:11.652 | trace | yii\base\Module::getModule | Loading module: debug |
15:46:11.652 | trace | yii\base\Application::bootstrap | Bootstrap with yii\debug\Module::bootstrap() |
15:46:11.652 | trace | yii\redis\Connection::open | Opening redis DB connection: redis.server.local:6379, database=1 |
15:46:11.652 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SELECT |
15:46:11.652 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:11.653 | trace | yii\base\Module::getModule | Loading module: gii |
15:46:11.653 | trace | yii\base\Application::bootstrap | Bootstrap with yii\gii\Module::bootstrap() |
15:46:11.653 | trace | yii\web\UrlManager::parseRequest | No matching URL rules. Using default URL parsing logic. |
15:46:11.653 | trace | yii\web\Application::handleRequest | Route requested: 'vue/analysis/sales-counts' |
15:46:11.653 | trace | yii\base\Module::getModule | Loading module: vue |
15:46:12.227 | info | yii\web\Session::open | Session started |
15:46:12.228 | info | yii\db\Command::query | SELECT * FROM "global"."vw_user_login" WHERE "id"=5250 |
15:46:12.228 | info | yii\db\Connection::open | Opening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta |
15:46:12.235 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.235 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:46:12.236 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.236 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:46:12.237 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=5250 |
15:46:12.240 | trace | yii\base\Controller::runAction | Route to run: vue/analysis/sales-counts |
15:46:12.241 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.245 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
15:46:12.246 | trace | yii\base\InlineAction::runWithParams | Running action: app\modules\vue\controllers\AnalysisController::actionSalesCounts() |
15:46:12.246 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.247 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.250 | 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 |
15:46:12.255 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.256 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:46:12.259 | 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, 5448, 5420, 1001, 5087, 5300, 5311, 5295, 1013, 1004, 1005, 5449)) GROUP BY "created_by" |
15:46:12.279 | 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, 5448, 5420, 1001, 5087, 5300, 5311, 5295, 1013, 1004, 1005, 5449) GROUP BY "g"."name" |
15:46:12.295 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.298 | 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_groups'
and d.nspname = 'a57be577deb434'
ORDER BY
a.attnum; |
15:46:12.310 | 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_groups'
and ns.nspname='a57be577deb434'
order by
fns.nspname, fc.relname, a.attnum |
15:46:12.330 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:46:12.331 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SET |
15:46:12.333 | info | yii\db\Command::query | SELECT count(id) AS count FROM "a57be577deb434"."tbl_clients" WHERE "sales_rep" IN ('1004', '1005', '1013', '5087') |
15:46:12.336 | info | yii\db\Command::query | SELECT count(id) AS count FROM "a57be577deb434"."tbl_clients" WHERE sales_rep is null |
15:46:12.338 | 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" IN ('1004', '1005', '1013', '5087')) AND ("c"."deleted" = FALSE) GROUP BY "c"."id", "cc"."id") "sub" WHERE sub.last_contact > sub.notice_days |
15:46:12.355 | 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" IN ('1004', '1005', '1013', '5087')) 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') |
15:46:12.415 | info | yii\db\Command::query | SELECT
sum(c.erp_settle_amount) AS collected
FROM (SELECT * FROM ((SELECT
'1' || r.id::varchar as id,
1 as ticket_type,
r.sales_contract_id as contract_id,
r.amount as amount,
t.created_at as collected_date,
t.created_at,
t.created_by,
t.abstract as description
FROM "a57be577deb434"."tbl_erp_collect_ticket_settles" "r" LEFT JOIN "a57be577deb434"."tbl_erp_collect_tickets" "t" ON r.erp_collect_ticket_id = t.id WHERE (r.sales_contract_id is not null) AND ("t"."status" IN (2, 5, 1))) UNION ALL ( SELECT
'2' || r.id::varchar as id,
2 as ticket_type,
r.sales_contract_id as contract_id,
r.amount as amount,
t.created_at as collected_date,
t.created_at,
t.created_by,
t.abstract as description
FROM "a57be577deb434"."tbl_erp_cash_cost_ticket_sales_contract_settles" "r" LEFT JOIN "a57be577deb434"."tbl_erp_cash_cost_tickets" "t" ON r.erp_cash_cost_ticket_id = t.id WHERE (r.sales_contract_id is not null) AND ("t"."status" IN (2, 5, 1)) ) UNION ALL ( SELECT
'3' || r.id::varchar as id,
3 as ticket_type,
r.sales_contract_id as contract_id,
0 - r.amount as amount,
t.created_at as collected_date,
t.created_at,
t.created_by,
t.abstract as description
FROM "a57be577deb434"."tbl_erp_payment_ticket_settles" "r" LEFT JOIN "a57be577deb434"."tbl_erp_payment_tickets" "t" ON r.erp_payment_ticket_id = t.id WHERE (r.sales_contract_id is not null) AND ("t"."status" IN (2, 5, 1)) )) "sub") "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" IN ('1004', '1005', '1013', '5087')) 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') |
15:46:12.492 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.493 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:46:12.493 | 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" IN ('1004', '1005', '1013', '5087')) AND ("p"."project_status"=3) |
15:46:12.495 | 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" IN ('1004', '1005', '1013', '5087')) "sub" GROUP BY "project_status" |
15:46:12.500 | 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" IN ('1004', '1005', '1013', '5087') |
15:46:12.519 | 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" IN ('1004', '1005', '1013', '5087')) AND ("sc"."including_tax"=TRUE) GROUP BY "sc"."id") "sub" |
15:46:12.524 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.524 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:46:12.524 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_visit_module_histories" WHERE ("user_id"=5250) AND ("object_type"=23) AND ("visit_date"='2025-08-04') |
15:46:12.531 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.531 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
15:46:12.532 | info | yii\db\Command::execute | UPDATE "a57be577deb434"."tbl_visit_module_histories" SET "num"=7, "last_visit_at"='now()' WHERE "id"=54932 |
15:46:12.538 | 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', 5250, 5, 'vue/analysis/sales-counts', '{"period":"today","period2":"currentfascalyear","status":"","dataUserId":"1004,1005,1013,5087","GroupId":"80","alert":"false","web_access_token":"whZjM8ZfyqxulYW-_i5kn1yK2K5nH7iz"}', '{"code":2000,"result":{"counts":[{"name":"\u5f53\u524d\u9690\u6027\u9700\u6c42","key":"status1","value":13,"unit":"\u4e2a","valueEx":726.75,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u5f53\u524d\u660e\u786e\u9700\u6c42","key":"status2","value":14,"unit":"\u4e2a","valueEx":1093.71,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u672c\u8d22\u5e74\u6210\u4ea4\u91d1\u989d","key":"journal_account_accomplished","value":30,"unit":"\u4e2a","valueEx":1307.18,"unitEx":"\u4e07","color":"#649fd7","link":{}},{"name":"\u672c\u8d22\u5e74\u5229\u6da6","key":"profit_accomplished","value":30,"unit":"\u4e2a","valueEx":357.74,"unitEx":"\u4e07","color":"#649fd7","link":{}},{"name":"\u672c\u8d22\u5e74\u5df2\u6536\u6b3e\u91d1\u989d","key":"collected","value":2993.5,"unit":"\u4e07","valueEx":"","unitEx":"","color":"#649fd7","link":{}},{"name":"\u672a\u6536\u6b3e\u91d1\u989d","key":"un_collected","value":1148.97,"unit":"\u4e07","valueEx":"","unitEx":"","color":"#649fd7","link":{}},{"name":"\u5ba2\u6237\u6570\u91cf\/\u8d85\u671f\u672a\u8054\u7cfb","key":"total_client_number","value":382,"unit":933,"valueEx":36,"unitEx":"\u4e2a","color":"#98c450","link":{"url":"client","filter":[{"key":"ClientSearch[sales_rep]","value":""}]}},{"name":"\u5df2\u5f00\/\u672a\u5f00\u53d1\u7968\u91d1\u989d","key":"invoices","value":18929.56,"unit":"\u4e07","valueEx":943.94,"unitEx":"\u4e07","color":"#e75a4a","link":{"url":"client","filter":[{"key":"ClientSearch[sales_rep]","value":""}]}},{"name":"\u7d2f\u8ba1\u6210\u4ea4\u91d1\u989d","key":"status3","value":507,"unit":"\u4e2a","valueEx":19653.15,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u6210\u4ea4\u5229\u6da6","key":"status3","value":507,"unit":"\u4e2a","valueEx":4992.21,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u5931\u8d25\u91d1\u989d","key":"status4","value":126,"unit":"\u4e2a","valueEx":7339.51,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u6401\u7f6e\u91d1\u989d","key":"status5","value":182,"unit":"\u4e2a","valueEx":11112.65,"unitEx":"\u4e07","color":"#98c450","link":{}}]},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"mod":0}', FALSE, '2025-08-04 15:46:12') RETURNING "id" |
15:46:12.539 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
15:46:12.540 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SET |