Aşağıdaki sorgular Odoo raporlama süreçlerinde sık kullanılan temel örneklerdir.
Satış Siparişi Özeti
Odoo
SELECT
so.name AS SIPARIS_NO,
rp.name AS MUSTERI,
so.date_order::date AS SIPARIS_TARIHI,
so.amount_total AS TOPLAM_TUTAR,
so.state AS DURUM
FROM sale_order so
JOIN res_partner rp ON so.partner_id = rp.id
WHERE so.state IN ('sale', 'done')
ORDER BY so.date_order DESC;
SELECT
pt.name AS URUN,
pp.default_code AS STOK_KODU,
sq.quantity AS MIKTAR
FROM stock_quant sq
JOIN product_product pp ON sq.product_id = pp.id
JOIN product_template pt ON pp.product_tmpl_id = pt.id
WHERE sq.quantity > 0
ORDER BY sq.quantity DESC;
SELECT
name,
email,
phone,
city
FROM res_partner
WHERE customer_rank > 0
ORDER BY name;
Vadesi Geçmiş Faturalar
Odoo
SELECT
ai.name AS FATURA_NO,
rp.name AS MUSTERI,
ai.invoice_date AS FATURA_TARIHI,
ai.invoice_date_due AS VADE_TARIHI,
ai.amount_residual AS KALAN_TUTAR
FROM account_move ai
JOIN res_partner rp ON ai.partner_id = rp.id
WHERE ai.move_type = 'out_invoice'
AND ai.state = 'posted'
AND ai.payment_state != 'paid'
AND ai.invoice_date_due < NOW()
ORDER BY ai.invoice_date_due ASC;
Son 30 Günlük Satış Toplamı
Odoo
SELECT
DATE(so.date_order) AS TARIH,
COUNT(*) AS SIPARIS_SAYISI,
SUM(so.amount_total) AS TOPLAM_TUTAR
FROM sale_order so
WHERE so.state IN ('sale', 'done')
AND so.date_order >= NOW() - INTERVAL '30 days'
GROUP BY DATE(so.date_order)
ORDER BY TARIH DESC;