About custom view

Hello, on my senario, each invoice lines have some cost category. for this i add new table (domain) under app base, then i used it on purchase order line…
after i prepared some sql reports, its not ready yet but for me so complex. this is my not ready query.

WITH InvoiceRows AS (
    SELECT
        ppoll.id,
        TO_CHAR(ai.origin_date, 'DD/MM/YYYY') AS invoice_date,
        ROW_NUMBER() OVER (PARTITION BY ai.supplier_invoice_nb ORDER BY ppoll.id) AS satir_no,
        ppoll.price AS price,
        ppoll.in_tax_total,
        CASE
            WHEN ppoll.received_qty <> 0 THEN ROUND(ppoll.received_qty, 2)
            ELSE NULL
            END AS received_qty,
        CASE
            WHEN ppoll.received_qty > 0 THEN ssl.product_name
            ELSE NULL
            END AS gelenler,
        ssl.product_name AS product_name,
        CASE
            WHEN ppoll.qty <> 0 THEN ROUND(ppoll.qty, 2)
            ELSE NULL
            END AS qty,
        bu.name AS unit_name,
        ai.supplier_invoice_nb,
        ssm.supplier_shipment_ref,
        TO_CHAR(ssm.supplier_shipment_date, 'DD/MM/YYYY') AS supplier_shipment_date,
        bccr.name AS company_cost_category_ru
    FROM
        purchase_purchase_order_line ppoll
            INNER JOIN
        stock_stock_move_line ssl ON ppoll.id = ssl.purchase_order_line
            LEFT JOIN
        base_company_cost_category_ru bccr ON ppoll.company_cost_category_ru = bccr.id
            LEFT JOIN
        account_invoice ai ON ppoll.purchase_order = ai.purchase_order
            LEFT JOIN
        base_unit bu ON ssl.unit = bu.id
            LEFT JOIN
        stock_stock_move ssm ON ssl.stock_move = ssm.id
),
     InvoiceSubtotals AS (
         SELECT
             supplier_invoice_nb,
             SUM(in_tax_total) AS subtotal_in_tax
         FROM
             InvoiceRows
         GROUP BY
             supplier_invoice_nb
     )
SELECT
    company_cost_category_ru AS company_cost_category,
    'BANKA' AS hesap,
    satir_no AS no,
    invoice_date AS invoice_date,
    supplier_invoice_nb AS invoice_no,
    product_name AS product_name,
    qty AS quantity,
    unit_name AS unit,
    price AS price,
    in_tax_total AS sum,
    supplier_shipment_date AS supplier_shipping_date,
    supplier_shipment_ref AS supplier_reference_no,
    gelenler AS received_product,
    received_qty AS received_quantity,
    CASE WHEN gelenler IS NOT NULL THEN qty ELSE NULL END AS received_quantity_2,
    CASE WHEN gelenler IS NOT NULL THEN unit_name ELSE NULL END AS received_unit,
    CASE WHEN gelenler IS NOT NULL THEN price ELSE NULL END AS received_price,
    CASE WHEN gelenler IS NOT NULL THEN in_tax_total ELSE NULL END AS received_sum
FROM
    InvoiceRows

UNION ALL

SELECT
    NULL AS company_cost_category,
    NULL AS hesap,
    NULL AS no,
    NULL AS invoice_date,
    supplier_invoice_nb AS invoice_no,
    NULL AS product_name,
    NULL AS quantity,
    NULL AS unit,
    NULL AS price,
    CAST(subtotal_in_tax AS DECIMAL(12, 2)) AS sum,
    NULL AS supplier_shipping_date,
    NULL AS supplier_reference_no,
    NULL AS received_product,
    NULL AS received_quantity,
    NULL AS received_quantity,
    NULL AS received_unit,
    NULL AS received_price,
    NULL AS received_sum
FROM
    InvoiceSubtotals
ORDER BY
    invoice_no, no;

and this is my custom view

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.4.xsd">


    <custom name="report-company-list" title="Some Title" groups="" >
    <field name="in_tax_total" type="decimal" x-scale="2" />
        <field name="id" type="integer"/>
        <field name="origin_date" type="date" x-translatable="true"/>
        <field name="satir_no" type="integer"/>
        <field name="price" type="decimal"/>
        <field name="in_tax_total" type="decimal"/>
        <field name="received_qty" type="decimal"/>
        <field name="gelenler" type="string"/>
        <field name="product_name" type="string"/>
        <field name="qty" type="decimal"/>
        <field name="unit_name" type="string"/>
        <field name="supplier_invoice_nb" type="string"/>
        <field name="supplier_shipment_ref" type="varchar"/>
        <field name="supplier_shipment_date" type="date"/>
        <field name="company_cost_category_ru" type="string"/>
    <dataset type="sql" >
      <![CDATA[
WITH InvoiceRows AS (
    SELECT
        ppoll.id,
        TO_CHAR(ai.origin_date, 'DD/MM/YYYY') AS invoice_date,
        ROW_NUMBER() OVER (PARTITION BY ai.supplier_invoice_nb ORDER BY ppoll.id) AS satir_no,
        ppoll.price AS price,
        ppoll.in_tax_total,
        CASE
            WHEN ppoll.received_qty <> 0 THEN ROUND(ppoll.received_qty, 2)
            ELSE NULL
        END AS received_qty,
        CASE
            WHEN ppoll.received_qty > 0 THEN ssl.product_name
            ELSE NULL
        END AS gelenler,
        ssl.product_name AS product_name,
        CASE
            WHEN ppoll.qty <> 0 THEN ROUND(ppoll.qty, 2)
            ELSE NULL
        END AS qty,
        bu.name AS unit_name,
        ai.supplier_invoice_nb,
        ssm.supplier_shipment_ref,
        TO_CHAR(ssm.supplier_shipment_date, 'DD/MM/YYYY') AS supplier_shipment_date,
        bccr.name AS company_cost_category_ru
    FROM
        purchase_purchase_order_line ppoll
            INNER JOIN
        stock_stock_move_line ssl ON ppoll.id = ssl.purchase_order_line
            LEFT JOIN
        base_company_cost_category_ru bccr ON ppoll.company_cost_category_ru = bccr.id
            LEFT JOIN
        account_invoice ai ON ppoll.purchase_order = ai.purchase_order
            LEFT JOIN
        base_unit bu ON ssl.unit = bu.id
            LEFT JOIN
        stock_stock_move ssm ON ssl.stock_move = ssm.id
),
InvoiceSubtotals AS (
    SELECT
        supplier_invoice_nb,
        SUM(in_tax_total) AS subtotal_in_tax
    FROM
        InvoiceRows
    GROUP BY
        supplier_invoice_nb
)
SELECT
    company_cost_category_ru AS company_cost_category,
    'BANKA' AS hesap,
    satir_no AS no,
    invoice_date AS invoice_date,
    supplier_invoice_nb AS invoice_no,
    product_name AS product_name,
    qty AS quantity,
    unit_name AS unit,
    price AS price,
    in_tax_total AS sum,
    supplier_shipment_date AS supplier_shipping_date,
    supplier_shipment_ref AS supplier_reference_no,
    gelenler AS received_product,
    received_qty AS received_quantity,
    CASE WHEN gelenler IS NOT NULL THEN qty ELSE NULL END AS received_quantity_2,
    CASE WHEN gelenler IS NOT NULL THEN unit_name ELSE NULL END AS received_unit,
    CASE WHEN gelenler IS NOT NULL THEN price ELSE NULL END AS received_price,
    CASE WHEN gelenler IS NOT NULL THEN in_tax_total ELSE NULL END AS received_sum
FROM
    InvoiceRows

UNION ALL

SELECT
    NULL AS company_cost_category,
    NULL AS hesap,
    NULL AS no,
    NULL AS invoice_date,
    supplier_invoice_nb AS invoice_no,
    NULL AS product_name,
    NULL AS quantity,
    NULL AS unit,
    NULL AS price,
    CAST(subtotal_in_tax AS DECIMAL(12, 2)) AS sum,
    NULL AS supplier_shipping_date,
    NULL AS supplier_reference_no,
    NULL AS received_product,
    NULL AS received_quantity,
    NULL AS received_quantity,
    NULL AS received_unit,
    NULL AS received_price,
    NULL AS received_sum
FROM
    InvoiceSubtotals
ORDER BY
    invoice_no, no;



    ]]>
    </dataset>
    <template>
        <![CDATA[
              <report-table data='data'columns='company_cost_category,hesap,no,invoice_date,invoice_no,product_name,quantity,unit,
price,sum,supplier_shipping_date,supplier_reference_no,received_product,received_quantity,received_unit,received_price,received_sum'></report-table>


              ]]>
    </template>
  </custom>

</object-views>
````Texte préformaté`

saisissez ou collez du code ici


i need to know  how i can add some search and group and filter etc. and i also need some filter for this (i see on chart but its not table)

Hello

Search filters won’t be available for this scenario. you can use wizard form to add your required search fields and show your custom view in dashlet.
For details you can refer Report from input date - #2 par rch-axelor & Update view when changing an input - #2 par rch-axelor

Hope this will be helful

Thank you

thank you so much i ll check , and could you pls say me how i can manage the order of the column, i mean on my ide i see results like on column whats i need . but on report its it looks in alphabetical order with…

ps when i add colums in columns=‹  › in template cdata , i cant see my reports, its shows empty rows

    <template>
        <![CDATA[
              <report-table data='data' columns=''></report-table>

              ]]>
    </template>

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object-views xmlns="http://axelor.com/xml/ns/object-views"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://axelor.com/xml/ns/object-views http://axelor.com/xml/ns/object-views/object-views_5.4.xsd">


    <custom name="report-company-list" title="Some Title"  >

    <dataset type="sql" >
      <![CDATA[
WITH InvoiceRows AS (
    SELECT
        ppoll.id,
        TO_CHAR(ai.origin_date, 'DD/MM/YYYY') AS invoice_date,
        ROW_NUMBER() OVER (PARTITION BY ai.supplier_invoice_nb ORDER BY ppoll.id) AS satir_no,
        ppoll.price AS price,
        ppoll.in_tax_total,
        CASE
            WHEN ppoll.received_qty <> 0 THEN ROUND(ppoll.received_qty, 2)
            ELSE NULL
            END AS received_qty,
        CASE
            WHEN ppoll.received_qty > 0 THEN ssl.product_name
            ELSE NULL
            END AS gelenler,
        ssl.product_name AS product_name,
        CASE
            WHEN ppoll.qty <> 0 THEN ROUND(ppoll.qty, 2)
            ELSE NULL
            END AS qty,
        bu.name AS unit_name,
        ai.supplier_invoice_nb,
        ssm.supplier_shipment_ref,
        TO_CHAR(ssm.supplier_shipment_date, 'DD/MM/YYYY') AS supplier_shipment_date,
        bccr.name AS company_cost_category_ru,
        bccr.priority_category,
        -- Fatura toplamını hesaplayalım
        SUM(ppoll.in_tax_total) OVER (PARTITION BY ai.supplier_invoice_nb) AS total_invoice_amount,
        COUNT(*) OVER (PARTITION BY ai.supplier_invoice_nb) AS total_rows_per_invoice
    FROM
        purchase_purchase_order_line ppoll
            INNER JOIN stock_stock_move_line ssl ON ppoll.id = ssl.purchase_order_line
            LEFT JOIN base_company_cost_category_ru bccr ON ppoll.company_cost_category_ru = bccr.id
            LEFT JOIN account_invoice ai ON ppoll.purchase_order = ai.purchase_order
            LEFT JOIN base_unit bu ON ssl.unit = bu.id
            LEFT JOIN stock_stock_move ssm ON ssl.stock_move = ssm.id
),
     ManagementCostPaymentCash AS (
         SELECT
             bp.name AS product_name,
             bcccr.name AS company_cost_category_name,
             bu.name AS unit_name,
             macpl.cost_sum AS sum,
             macpl.quantity AS received_quantity,
             macpl.cost_sum / macpl.quantity AS received_price,
             GREATEST(macpl.created_on, macpl.updated_on) AS latest_date,
             TO_CHAR(GREATEST(macpl.created_on, macpl.updated_on), 'DD/MM/YYYY') AS invoice_date,
             TO_CHAR(GREATEST(macpl.created_on, macpl.updated_on), 'DD/MM/YYYY') AS supplier_shipping_date
         FROM
             management_cost_payment_cash_line macpl
                 JOIN base_product bp ON macpl.product = bp.id
                 JOIN base_company_cost_category_ru bcccr ON macpl.company_cost_category_ru = bcccr.id
                 JOIN base_unit bu ON macpl.unit = bu.id
     ),
     ManagementAdvancePaymentCash AS (
         SELECT
             bcc.name AS company_cost_category,
             mapcl.seq_number AS supplier_reference_no,
             mapcl.advance_sum AS advance_sum,
             TO_CHAR(mapcl.created_on, 'DD/MM/YYYY') AS formatted_created_on,
             TO_CHAR(GREATEST(mapcl.created_on, mapcl.updated_on), 'DD/MM/YYYY') AS supplier_shipping_date,
             her.full_name AS received_product
         FROM
             management_advance_payment_cash_line mapcl
                 JOIN base_company_cost_category_ru bcc ON mapcl.company_cost_category_ru = bcc.id
                 JOIN hr_employee_ru her ON mapcl.employee_ru = her.id
     ),
     BaseCompanyCostCategory AS (
         SELECT
             priority_category,
             name AS company_cost_category
         FROM
             base_company_cost_category_ru
     )
SELECT
    ir.company_cost_category_ru AS КАТЕГОРИЯ,
    'БАНКА' AS КОНТРАГЕНТ,
    ir.satir_no AS NO,
    ir.invoice_date AS ДАТА,
    ir.supplier_invoice_nb AS НАКЛАДНАЯ_NO,
    ir.product_name AS ТОВАР_РАБОТА_УСЛУГА,
    ir.qty AS КОЛ_ВО,
    ir.unit_name AS ЕД_ИЗМ,
    ir.price AS ЦЕНА,
    ir.in_tax_total AS СУММА,
    ir.supplier_shipment_date AS ДАТА0,
    ir.supplier_shipment_ref AS СЧЕТ,
    ir.gelenler AS ТОВАР_РАБОТА_УСЛУГА0,
    ir.qty AS КОЛ_ВО0,
    CASE WHEN ir.gelenler IS NOT NULL THEN ir.unit_name ELSE NULL END AS ЕД_ИЗМ0,
    ir.price AS ЦЕНА0,
    ir.in_tax_total AS СУММА0

FROM
    InvoiceRows ir
UNION ALL
SELECT
    NULL AS КАТЕГОРИЯ,
    'НАЛИЧНЫЕ' AS КОНТРАГЕНТ,
    NULL AS NO,
    NULL AS ДАТА,
    NULL AS НАКЛАДНАЯ_NO,
    NULL AS ТОВАР_РАБОТА_УСЛУГА,
    1 AS КОЛ_ВО,
    NULL AS ЕД_ИЗМ,
    NULL AS ЦЕНА,
    NULL AS СУММА,
    NULL AS ДАТА0,
    NULL AS СЧЕТ0,
    NULL AS ТОВАР_РАБОТА_УСЛУГА0,
    1 AS КОЛ_ВО0,
    NULL AS ЕД_ИЗМ0,
    NULL AS ЦЕНА0,
    NULL AS СУММА0
FROM
    ManagementAdvancePaymentCash
UNION ALL
SELECT
    bcc.company_cost_category AS КАТЕГОРИЯ,
    NULL AS КОНТРАГЕНТ,
    NULL AS NO,
    NULL AS ДАТА,
    NULL AS НАКЛАДНАЯ_NO,
    NULL AS ТОВАР_РАБОТА_УСЛУГА,
    NULL AS КОЛ_ВО,
    NULL AS ЕД_ИЗМ,
    NULL AS ЦЕНА,
    NULL AS СУММА,
    NULL AS ДАТА0,
    NULL AS СЧЕТ0,
    NULL AS ТОВАР_РАБОТА_УСЛУГА0,
    NULL AS КОЛ_ВО,
    NULL AS ЕД_ИЗ0,
    NULL AS ЦЕНА0,
    NULL AS СУММА0
FROM
    BaseCompanyCostCategory bcc
UNION ALL
-- Fatura toplamı satırı ekle
SELECT
    ir.company_cost_category_ru AS КАТЕГОРИЯ,
    NULL AS КОНТРАГЕНТ,
    ir.total_rows_per_invoice AS NO,
    ir.invoice_date AS ДАТА,
    ir.supplier_invoice_nb AS НАКЛАДНАЯ_NO,
    NULL AS ТОВАР_РАБОТА_УСЛУГА,
    NULL AS КОЛ_ВО,
    NULL AS ЕД_ИЗМ,
    NULL AS ЦЕНА,
    ir.total_invoice_amount AS СУММА,
    NULL AS ДАТА0,
    NULL AS СЧЕТ0,
    NULL AS ТОВАР_РАБОТА_УСЛУГА0,
    NULL AS КОЛ_ВО0,
    NULL AS ЕД_ИЗМ0,
    NULL AS ЦЕНА0,
    NULL AS СУММА0
FROM
    InvoiceRows ir
ORDER BY
    НАКЛАДНАЯ_NO, NO;






    ]]>
    </dataset>
    <template>
        <![CDATA[
              <report-table data='data' columns=''></report-table>

              ]]>
    </template>
  </custom>

</object-views>

Hello

Specify the comma separated list of all the column name in same order as you want in your report in columns in report-table.
<report-table data='data' columns='<CommaSeperatedColumnNames>'></report-table>

Thank you

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.