|
2026-02-27 03:59:49
|
ERROR
|
runbot
|
Error found in logs:
2026-02-27 03:59:38,561 60 ERROR 07639-18-0-all odoo.sql_db: bad query: b'\n CREATE MATERIALIZED VIEW IF NOT EXISTS sale_report_data AS (\n WITH cte_chot AS (SELECT date_order, id as sale_id, inverse_amount_total as company_total\n FROM sale_order\n WHERE state != \'cancel\'\n and inverse_amount_total > 0),\n cte_huy AS (SELECT date_order as cancel_date, id as sale_id, inverse_amount_total as company_total\n FROM sale_order\n WHERE state = \'cancel\'\n and inverse_amount_total > 0),\n cte_pickings_ranked AS (SELECT sp.sale_id,\n sp.date_done,\n spt.code as picking_type,\n ROW_NUMBER() OVER (PARTITION BY sp.sale_id, spt.code ORDER BY sp.date_done) as rn\n FROM stock_picking sp\n JOIN stock_picking_type spt ON sp.picking_type_id = spt.id\n WHERE spt.code = \'outgoing\'\n AND sp.state = \'done\'\n AND sp.sale_id IS NOT NULL),\n cte_invoice_totals AS (SELECT so.id as sale_id,\n SUM(CASE WHEN am.move_type = \'out_invoice\' THEN am.inverse_amount_total ELSE 0 END) as shipping_total\n FROM sale_order so\n JOIN account_move am ON so.name = am.invoice_origin\n WHERE am.move_type = \'out_invoice\'\n GROUP BY so.id),\n cte_chuyen AS (SELECT pr.date_done as shipping_date,\n pr.sale_id,\n COALESCE(it.shipping_total, 0) as company_total\n FROM cte_pickings_ranked pr\n LEFT JOIN cte_invoice_totals it ON pr.sale_id = it.sale_id\n WHERE pr.rn = 1),\n cte_invoice_to_sale AS (SELECT aml.move_id,\n sol.order_id AS sale_id,\n r.id as refund_move_id\n FROM account_move_line aml\n JOIN sale_order_line_invoice_rel rel ON rel.invoice_line_id = aml.id\n JOIN sale_order_line sol ON sol.id = rel.order_line_id\n LEFT JOIN (SELECT id, reversed_entry_id FROM account_move WHERE reversed_entry_id IS NOT NULL and state = \'posted\') r \n ON aml.move_id = r.reversed_entry_id),\n cte_invoice_to_sale_distinct AS (\n -- CTE ri\xc3\xaang \xc4\x91\xe1\xbb\x83 reuse: l\xe1\xba\xa5y DISTINCT sale_id, move_id\n SELECT DISTINCT sale_id, move_id\n FROM cte_invoice_to_sale\n ),\n cte_refund_invoice_to_sale_distinct AS (\n -- CTE ri\xc3\xaang \xc4\x91\xe1\xbb\x83 reuse: l\xe1\xba\xa5y DISTINCT sale_id, refund_move_id\n SELECT DISTINCT sale_id, refund_move_id\n FROM cte_invoice_to_sale\n\t\t\t\twhere refund_move_id is not null\n\t\t\t\t\t),\n cte_hoan_pay_base AS (\n SELECT \n its.sale_id,\n so.name,\n its.refund_move_id,\n -pay.amount_company_currency_signed AS amount,\n rc.code AS country_code,\n (inv_move.delivery_date)::DATE AS shipping_date,\n (pay.payment_date AT TIME ZONE \'UTC\' AT TIME ZONE \'Europe/Brussels\')::DATE::DATE AS refund_accounting_date,\n 2 AS priority\n FROM account_partial_reconcile apr\n JOIN account_move_line inv_aml ON apr.credit_move_id = inv_aml.id\n JOIN account_move inv_move ON inv_aml.move_id = inv_move.id\n JOIN cte_refund_invoice_to_sale_distinct its ON its.refund_move_id = inv_move.id\n JOIN sale_order so ON so.id = its.sale_id\n JOIN res_partner rp ON rp.id = so.partner_id\n JOIN res_country rc ON rc.id = rp.country_id\n JOIN account_move_line pay_aml ON apr.debit_move_id = pay_aml.id\n JOIN account_move pay_move ON pay_aml.move_id = pay_move.id\n JOIN account_payment pay ON pay.move_id = pay_move.id\n WHERE inv_move.move_type = \'out_refund\'\n AND inv_move.state = \'posted\'\n AND pay_move.move_type = \'entry\'\n AND pay.state = \'paid\'\n AND inv_move.delivery_date IS NOT NULL\n ),\n cte_hoan_pay_base_current_month AS (\n -- Ho\xc3\xa0n ti\xe1\xbb\x81n c\xe1\xbb\xa7a \xc4\x91\xc6\xa1n giao trong th\xc3\xa1ng N: \n -- Credit note l\xe1\xba\xadp t\xe1\xbb\xab 1/N \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n SELECT sale_id,\n DATE_TRUNC(\'month\', shipping_date) as refund_month,\n SUM(amount) AS company_total\n FROM cte_hoan_pay_base\n WHERE\n -- ho\xc3\xa0n \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n refund_accounting_date < DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n GROUP BY sale_id, DATE_TRUNC(\'month\', shipping_date)\n ),\n cte_hoan_pay_base_prev_month_transferred AS (\n -- Ho\xc3\xa0n ti\xe1\xbb\x81n c\xe1\xbb\xa7a \xc4\x91\xc6\xa1n giao tr\xc6\xb0\xe1\xbb\x9bc th\xc3\xa1ng N:\n -- Credit note l\xe1\xba\xadp t\xe1\xbb\xab 7/N \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n SELECT sale_id,\n CASE\n -- N\xe1\xba\xbfu ho\xc3\xa0n trong ng\xc3\xa0y <= 6 th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng payment_date -1\n WHEN EXTRACT(DAY FROM refund_accounting_date) <= 6\n THEN DATE_TRUNC(\'month\', refund_accounting_date) - INTERVAL \'1 month\'\n -- N\xe1\xba\xbfu ho\xc3\xa0n trong ng\xc3\xa0y >= 7, th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng payment_date\n WHEN EXTRACT(DAY FROM refund_accounting_date) >= 7\n THEN DATE_TRUNC(\'month\', refund_accounting_date)\n ELSE NULL\n END as refund_month,\n amount\n FROM cte_hoan_pay_base\n WHERE\n -- ho\xc3\xa0n sau 6/N+1\n refund_accounting_date >= DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n ),\n cte_hoan_pay_base_prev_month_transferred_grouped AS (\n SELECT sale_id, refund_month, SUM(amount) AS company_total\n FROM cte_hoan_pay_base_prev_month_transferred\n GROUP BY sale_id, refund_month\n ),\n cte_hoan_pay AS (\n SELECT refund_month::date,\n sale_id,\n company_total\n FROM cte_hoan_pay_base_current_month\n UNION ALL\n SELECT refund_month::date,\n sale_id,\n company_total\n FROM cte_hoan_pay_base_prev_month_transferred_grouped\n ),\n cte_hoan_base AS (\n -- revesed h\xc3\xb3a \xc4\x91\xc6\xa1n g\xe1\xbb\x91c\n SELECT \n its.sale_id,\n so.name,\n its.refund_move_id,\n apr.amount as amount,\n rc.code AS country_code,\n (inv_move.delivery_date)::DATE AS shipping_date,\n (inv_move.invoice_date)::DATE AS refund_accounting_date,\n 1 AS priority\n FROM account_partial_reconcile apr\n JOIN account_move_line inv_aml ON apr.credit_move_id = inv_aml.id\n JOIN account_move inv_move ON inv_aml.move_id = inv_move.id\n JOIN cte_refund_invoice_to_sale_distinct its ON its.refund_move_id = inv_move.id\n JOIN sale_order so ON so.id = its.sale_id\n JOIN res_partner rp ON rp.id = so.partner_id\n JOIN res_country rc ON rc.id = rp.country_id\n JOIN account_move_line pay_aml ON apr.debit_move_id = pay_aml.id\n JOIN account_move pay_move ON pay_aml.move_id = pay_move.id\n WHERE inv_move.move_type = \'out_refund\'\n AND inv_move.state = \'posted\'\n AND inv_move.payment_state in (\'paid\',\'partial\')\n AND pay_move.move_type = \'out_invoice\'\n ),\n cte_hoan_base_current_month AS (\n -- Ho\xc3\xa0n ti\xe1\xbb\x81n c\xe1\xbb\xa7a \xc4\x91\xc6\xa1n giao trong th\xc3\xa1ng N:\n -- Credit note l\xe1\xba\xadp t\xe1\xbb\xab 1/N \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n SELECT sale_id,\n DATE_TRUNC(\'month\', shipping_date) as refund_month,\n SUM(amount) AS company_total\n FROM cte_hoan_base\n WHERE\n -- ho\xc3\xa0n \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n refund_accounting_date < DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n GROUP BY sale_id, DATE_TRUNC(\'month\', shipping_date)\n ),\n cte_hoan_base_prev_month_transferred AS (\n -- Ho\xc3\xa0n ti\xe1\xbb\x81n c\xe1\xbb\xa7a \xc4\x91\xc6\xa1n giao tr\xc6\xb0\xe1\xbb\x9bc th\xc3\xa1ng N:\n -- Credit note l\xe1\xba\xadp t\xe1\xbb\xab 7/N \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n SELECT sale_id,\n CASE\n -- N\xe1\xba\xbfu ho\xc3\xa0n trong ng\xc3\xa0y <= 6 th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng payment_date -1\n WHEN EXTRACT(DAY FROM refund_accounting_date) <= 6\n THEN DATE_TRUNC(\'month\', refund_accounting_date) - INTERVAL \'1 month\'\n -- N\xe1\xba\xbfu ho\xc3\xa0n trong ng\xc3\xa0y >= 7, th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng payment_date\n WHEN EXTRACT(DAY FROM refund_accounting_date) >= 7\n THEN DATE_TRUNC(\'month\', refund_accounting_date)\n ELSE NULL\n END as refund_month,\n amount\n FROM cte_hoan_base\n WHERE\n -- ho\xc3\xa0n sau 6/N+1\n refund_accounting_date >= DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n ),\n cte_hoan_base_prev_month_transferred_grouped AS (\n SELECT sale_id, refund_month, SUM(amount) AS company_total\n FROM cte_hoan_base_prev_month_transferred\n GROUP BY sale_id, refund_month\n ),\n cte_hoan AS (\n SELECT refund_month::date,\n sale_id,\n company_total\n FROM cte_hoan_base_current_month\n UNION ALL\n SELECT refund_month::date,\n sale_id,\n company_total\n FROM cte_hoan_base_prev_month_transferred_grouped\n ),\n cte_completion_base AS (\n -- Ho\xc3\xa0n t\xe1\xba\xa5t \xc4\x91\xc6\xa1n h\xc3\xa0ng: C\xc3\xa1c ho\xc3\xa1 \xc4\x91\xc6\xa1n kh\xc3\xb4ng c\xc3\xb2n n\xe1\xbb\xa3 + \xc4\x91\xc3\xa3 giao h\xc3\xa0ng + \xc4\x91\xc3\xa3 thanh to\xc3\xa1n\n SELECT its.sale_id,\n MAX(so.inverse_amount_total) as company_total,\n SUM(am.amount_residual) as amount_residual,\n MAX(am.shipping_date_done) as last_delivery,\n MIN(am.shipping_date_done) as first_delivery,\n MAX(afr.create_date) as last_pay,\n MIN(afr.create_date) as first_pay\n FROM account_move am\n JOIN account_move_line aml ON am.id = aml.move_id\n LEFT JOIN account_full_reconcile afr ON aml.full_reconcile_id = afr.id\n JOIN cte_invoice_to_sale_distinct its ON its.move_id = am.id\n JOIN sale_order so ON so.id = its.sale_id\n WHERE am.move_type = \'out_invoice\'\n AND am.state = \'posted\'\n GROUP BY its.sale_id\n ),\n cte_real_sales_base AS (\n -- Doanh s\xe1\xbb\x91 th\xe1\xbb\xb1c t\xe1\xba\xbf: C\xc3\xa1c ho\xc3\xa1 \xc4\x91\xc6\xa1n \xc4\x91\xc3\xa3 thanh to\xc3\xa1n (to\xc3\xa0n b\xe1\xbb\x99 ho\xe1\xba\xb7c m\xe1\xbb\x99t ph\xe1\xba\xa7n)\n -- Bao g\xe1\xbb\x93m: Ho\xc3\xa1 \xc4\x91\xc6\xa1n b\xc3\xa1n + B\xe1\xba\xa3n ghi thanh to\xc3\xa1n (entry)\n -- L\xc6\xb0u \xc3\xbd: journal_id d\xc3\xb9ng \xc4\x91\xe1\xbb\x83 lo\xe1\xba\xa1i b\xe1\xbb\x8f thanh to\xc3\xa1n lo\xe1\xba\xa1i COD\n SELECT its.sale_id,\n its.move_id,\n apr.amount,\n pay_move.journal_id, -- Lo\xe1\xba\xa1i s\xe1\xbb\x95 thanh to\xc3\xa1n (\xc4\x91\xe1\xbb\x83 ph\xc3\xa2n bi\xe1\xbb\x87t COD)\n rc.code AS country_code,\n (inv_move.delivery_date)::DATE as shipping_date,\n (pay.payment_date AT TIME ZONE \'UTC\' AT TIME ZONE \'Europe/Brussels\')::DATE::DATE as payment_date\n FROM account_partial_reconcile apr\n JOIN account_move_line inv_aml ON apr.debit_move_id = inv_aml.id\n JOIN account_move inv_move ON inv_aml.move_id = inv_move.id\n JOIN cte_invoice_to_sale_distinct its ON its.move_id = inv_move.id\n JOIN sale_order so ON so.id = its.sale_id\n JOIN res_partner rp ON rp.id = so.partner_id\n JOIN res_country rc ON rc.id = rp.country_id\n JOIN account_move_line pay_aml ON apr.credit_move_id = pay_aml.id\n JOIN account_move pay_move ON pay_aml.move_id = pay_move.id\n JOIN account_payment pay ON pay.move_id = pay_move.id\n WHERE inv_move.move_type = \'out_invoice\'\n AND pay_move.move_type = \'entry\'\n AND inv_move.payment_state != \'not_paid\'\n AND inv_move.delivery_date IS NOT NULL\n ),\n cte_real_sales_current_month AS (\n -- Doanh s\xe1\xbb\x91 th\xe1\xbb\xb1c trong th\xc3\xa1ng N: \xc4\x90\xc6\xa1n giao th\xc3\xa1ng N v\xc3\xa0 thu ti\xe1\xbb\x81n t\xe1\xbb\xab 1/N (ho\xe1\xba\xb7c tr\xc6\xb0\xe1\xbb\x9bc khi giao) \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n SELECT sale_id,\n DATE_TRUNC(\'month\', shipping_date) as pay_month,\n SUM(amount) AS company_total\n FROM cte_real_sales_base\n WHERE\n -- Thanh to\xc3\xa1n \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/n+1\n payment_date < DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n GROUP BY sale_id, DATE_TRUNC(\'month\', shipping_date)\n ),\n cte_real_sales_prev_month_transferred AS (\n -- Doanh s\xe1\xbb\x91 th\xe1\xbb\xb1c th\xc3\xa1ng tr\xc6\xb0\xe1\xbb\x9bc chuy\xe1\xbb\x83n sang th\xc3\xa1ng N: \xc4\x90\xc6\xa1n giao th\xc3\xa1ng <N v\xc3\xa0 thu ti\xe1\xbb\x81n t\xe1\xbb\xab 7/N \xc4\x91\xe1\xba\xbfn h\xe1\xba\xbft 6/N+1\n SELECT sale_id,\n CASE\n -- N\xe1\xba\xbfu thanh to\xc3\xa1n trong ng\xc3\xa0y <= 6 th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng payment_date -1\n WHEN EXTRACT(DAY FROM payment_date) <= 6\n THEN DATE_TRUNC(\'month\', payment_date) - INTERVAL \'1 month\'\n -- N\xe1\xba\xbfu thanh to\xc3\xa1n trong ng\xc3\xa0y >= 7, th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng payment_date\n WHEN EXTRACT(DAY FROM payment_date) >= 7\n THEN DATE_TRUNC(\'month\', payment_date)\n ELSE NULL\n END as pay_month,\n amount\n FROM cte_real_sales_base\n WHERE\n -- thanh to\xc3\xa1n sau 6/N+1\n payment_date >= DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n ),\n cte_real_sales_prev_month_transferred_grouped AS (\n SELECT sale_id, pay_month, SUM(amount) AS company_total\n FROM cte_real_sales_prev_month_transferred\n WHERE pay_month IS NOT NULL\n GROUP BY sale_id, pay_month\n ),\n cte_real_sales AS (\n SELECT sale_id, \n pay_month::date, \n company_total, \'real_sales_current\' as real_sales_type\n FROM cte_real_sales_current_month\n UNION ALL\n SELECT sale_id,\n pay_month::date, \n company_total, \'real_sales_prev_transferred\' as real_sales_type\n FROM cte_real_sales_prev_month_transferred_grouped\n ),\n cte_tc AS (SELECT GREATEST(last_delivery, last_pay) as completed_date_local, sale_id, company_total\n FROM cte_completion_base\n WHERE amount_residual = 0\n AND first_delivery IS NOT NULL\n AND first_pay IS NOT NULL\n ),\n cte_cod_journal AS (\n SELECT id FROM account_journal \n WHERE code = \'COD\' \n AND active = true \n LIMIT 1\n ),\n cte_cod_amount_base AS (\n -- COD (Thu ti\xe1\xbb\x81n khi giao): C\xc3\xa1c ho\xc3\xa1 \xc4\x91\xc6\xa1n c\xc3\xb3 kho\xe1\xba\xa3n thu COD\n -- \xc4\x90i\xe1\xbb\x81u ki\xe1\xbb\x87n: (1) \xc4\x90\xc3\xa3 v\xc3\xa0o s\xe1\xbb\x95 | (2) Ch\xc6\xb0a thanh to\xc3\xa1n lo\xe1\xba\xa1i COD | (3) Kh\xc3\xb4ng c\xc3\xb3 Credit Note\n SELECT \n its.sale_id,\n am.id AS invoice_id,\n am.inverse_currency_rate * sp.cod_amount AS cod_amount,\n (am.delivery_date)::DATE AS delivery_date,\n (am.shipping_date_done AT TIME ZONE \'UTC\' AT TIME ZONE \'Europe/Brussels\')::DATE::DATE AS shipping_date_done\n FROM cte_invoice_to_sale_distinct its\n JOIN account_move am ON its.move_id = am.id\n LEFT JOIN account_payment ap ON its.move_id = ap.move_id\n JOIN stock_picking sp ON am.origin_picking_id = sp.id\n WHERE\n am.state = \'posted\' -- (1) H\xc3\xb3a \xc4\x91\xc6\xa1n \xe1\xbb\x9f tr\xe1\xba\xa1ng th\xc3\xa1i "\xc4\x90\xc3\xa3 v\xc3\xa0o S\xe1\xbb\x95"\n AND am.shipping_date_done IS NOT NULL\n AND sp.cod_amount > 0 -- c\xc3\xb3 thu ti\xe1\xbb\x81n cod > 0\n AND NOT EXISTS (SELECT 1 FROM account_move m WHERE m.reversed_entry_id = its.move_id) \n -- (3) H\xc3\xb3a \xc4\x91\xc6\xa1n KH\xc3\x94NG c\xc3\xb3 Credit Note (H\xc3\xb3a \xc4\x91\xc6\xa1n \xc4\x91i\xe1\xbb\x81u ch\xe1\xbb\x89nh gi\xe1\xba\xa3m)\n AND NOT EXISTS (SELECT 1 FROM cte_real_sales_base r \n WHERE its.move_id = r.move_id \n AND r.journal_id = (SELECT id FROM cte_cod_journal)) \n -- (2) H\xc3\xb3a \xc4\x91\xc6\xa1n ch\xc6\xb0a c\xc3\xb3 b\xe1\xba\xa5t k\xe1\xbb\xb3 kho\xe1\xba\xa3n thanh to\xc3\xa1n thu\xe1\xbb\x99c lo\xe1\xba\xa1i "S\xe1\xbb\x95 COD"\n ),\n cte_cod_amount AS (\n SELECT *,\n CASE \n WHEN shipping_date_done < DATE_TRUNC(\'month\', delivery_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n THEN DATE_TRUNC(\'month\', delivery_date)\n WHEN shipping_date_done >= DATE_TRUNC(\'month\', delivery_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n THEN\n CASE\n -- N\xe1\xba\xbfu ghtc trong ng\xc3\xa0y <= 6 th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng giao h\xc3\xa0ng -1\n WHEN EXTRACT(DAY FROM shipping_date_done) <= 6\n THEN DATE_TRUNC(\'month\', shipping_date_done) - INTERVAL \'1 month\'\n -- N\xe1\xba\xbfu ghtc trong ng\xc3\xa0y >= 7, th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng giao h\xc3\xa0ng\n WHEN EXTRACT(DAY FROM shipping_date_done) >= 7\n THEN DATE_TRUNC(\'month\', shipping_date_done)\n ELSE NULL\n END\n END AS shipping_month_done\n FROM cte_cod_amount_base\n ),\n cte_cod_report AS (\n SELECT sale_id, shipping_month_done::DATE, SUM(cod_amount) AS amount \n FROM cte_cod_amount\n GROUP BY sale_id, shipping_month_done::DATE\n ),\n cte_return_reason AS (\n SELECT ar.order_id AS sale_id,\n STRING_AGG(sale_return_reason_id::text, \',\') AS sale_return_reason_id,\n BOOL_OR(rr.is_sale_fault) AS is_sale_fault\n FROM approval_request ar\n JOIN sale_return_reason rr ON ar.sale_return_reason_id = rr.id\n WHERE order_id IS NOT NULL\n AND ar.request_status = \'approved\'\n GROUP BY ar.order_id\n ),\n cte_hoan_all_base AS (\n -- revesed h\xc3\xb3a \xc4\x91\xc6\xa1n g\xe1\xbb\x91c\n SELECT \n its.sale_id,\n its.refund_move_id,\n inv_move.inverse_amount_total as amount,\n (inv_move.delivery_date)::DATE AS shipping_date,\n (inv_move.invoice_date)::DATE AS refund_accounting_date\n FROM cte_refund_invoice_to_sale_distinct its\n JOIN account_move inv_move ON its.refund_move_id = inv_move.id\n ),\n cte_hoan_all_cal as (\n select \n sale_id, amount, \n case \n when \n refund_accounting_date < DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n then \n DATE_TRUNC(\'month\', shipping_date)\n when \n refund_accounting_date >= DATE_TRUNC(\'month\', shipping_date) + INTERVAL \'1 month\' + INTERVAL \'6 days\'\n THEN\n CASE\n -- N\xe1\xba\xbfu t\xe1\xba\xa1o credit trong ng\xc3\xa0y <= 6 th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng giao h\xc3\xa0ng -1\n WHEN EXTRACT(DAY FROM refund_accounting_date) <= 6\n THEN DATE_TRUNC(\'month\', refund_accounting_date) - INTERVAL \'1 month\'\n -- N\xe1\xba\xbfu t\xe1\xba\xa1o credit trong ng\xc3\xa0y >= 7, th\xc3\xac t\xc3\xadnh v\xc3\xa0o th\xc3\xa1ng giao h\xc3\xa0ng\n WHEN EXTRACT(DAY FROM refund_accounting_date) >= 7\n THEN DATE_TRUNC(\'month\', refund_accounting_date)\n ELSE NULL\n END\n end as refund_month\n from cte_hoan_all_base),\n cte_hoan_all as ( \n select \n sale_id, \n sum(amount) as company_total, \n refund_month::date as refund_month\n from cte_hoan_all_cal\n WHERE refund_month IS NOT NULL\n GROUP BY \n sale_id, \n refund_month::date\n ),\n combine AS (\n SELECT date_order AS date, sale_id, company_total, \'confirmed\' AS type\n FROM cte_chot\n UNION ALL\n SELECT cancel_date AS date, sale_id, company_total, \'cancelled\' AS type\n FROM cte_huy\n UNION ALL\n SELECT shipping_date AS date, sale_id, company_total, \'shipped\' AS type\n FROM cte_chuyen\n UNION ALL\n SELECT refund_month AS date, sale_id, company_total, \'returned_paid\' AS type\n FROM cte_hoan_pay\n UNION ALL\n SELECT refund_month AS date, sale_id, company_total, \'returned\' AS type\n FROM cte_hoan\n UNION ALL\n SELECT completed_date_local AS date, sale_id, company_total, \'completed\' AS type\n FROM cte_tc\n UNION ALL\n SELECT pay_month AS date, sale_id, company_total, real_sales_type AS type\n FROM cte_real_sales\n UNION ALL\n SELECT shipping_month_done AS date, sale_id, amount, \'cod\' AS type\n FROM cte_cod_report\n UNION ALL\n SELECT refund_month AS date, sale_id, company_total, \'sum_returned\' AS type\n FROM cte_hoan_all\n )\n\n SELECT combine.date AS utc_date,\n combine.sale_id,\n TRUNC(((combine.company_total - COALESCE(mc.company_amount, 0)) / 1000)::numeric, 0) AS company_total\n (combine.company_total - COALESCE(mc.company_amount, 0)) / 1000 AS net_revenue,\n combine.type,\n rc.currency_id,\n rp.country_id,\n so.company_id,\n so.crm_group_id,\n so.user_id,\n so.team_id,\n crm.crm_type,\n crm.source_id,\n crm.product_category_id,\n so.user_marketing_id,\n so.marketing_team_id,\n so.old_sale_user_id,\n so.old_sale_team_id,\n pc.director_id AS category_director_id,\n CASE WHEN combine.company_total < 20000000.0 THEN \'retail\' ELSE \'wholesale\' END AS order_type,\n rr.sale_return_reason_id,\n rr.is_sale_fault,\n so.hide_data_period\n FROM combine\n JOIN sale_order so ON so.id = combine.sale_id\n JOIN res_partner rp ON rp.id = so.partner_id\n JOIN res_company rc ON rc.id = so.company_id\n LEFT JOIN market_cost mc ON mc.country_id = rp.country_id\n AND so.date_order BETWEEN mc.start_date AND mc.end_date\n LEFT JOIN crm_lead crm ON crm.id = so.opportunity_id\n LEFT JOIN product_category pc ON pc.id = crm.product_category_id\n LEFT join cte_return_reason rr on combine.sale_id = rr.sale_id\n WHERE combine.company_total > 0\n );\n CREATE UNIQUE INDEX IF NOT EXISTS sale_report_data_unique ON sale_report_data (sale_id, type, utc_date);\n '
2026-02-27 03:59:38,566 60 ERROR 07639-18-0-all odoo.modules.registry: Failed to load registry
2026-02-27 03:59:38,566 60 CRITICAL 07639-18-0-all odoo.service.server: Failed to initialize database `07639-18-0-all`.
|
|