Changes between Version 6 and Version 7 of AdvancedReports


Ignore:
Timestamp:
12/23/25 19:37:17 (10 days ago)
Author:
211101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v6 v7  
    163163Сумарните приходи и расходи (состојба) во целиот систем, поделени по месеци, со цел да се видат проблематичните месеци, се пресметува вкупниот приход и расход за секој месец, а разликата меѓу нив ќе ја даде состојбата
    164164{{{#!sql
    165 SELECT
    166     TO_CHAR(t.date, 'YYYY-MM') AS month, -- Форматирање на датумот во формат "Година-Месец"
    167     SUM(CASE WHEN tb.earned_amount > 0 THEN tb.earned_amount ELSE 0 END) AS total_income, -- Вкупен приход
    168     SUM(CASE WHEN tb.spent_amount > 0 THEN tb.spent_amount ELSE 0 END) AS total_expense, -- Вкупен расход
    169     SUM(CASE WHEN tb.earned_amount > 0 THEN tb.earned_amount ELSE 0 END) -
    170     SUM(CASE WHEN tb.spent_amount > 0 THEN tb.spent_amount ELSE 0 END) AS net_balance -- Нето состојба
    171 FROM
    172     transaction_breakdown tb
    173 JOIN
    174     transaction t ON tb.transaction_id = t.transaction_id
    175 GROUP BY
    176     TO_CHAR(t.date, 'YYYY-MM') -- Групирање по месец
    177 ORDER BY
    178     month;
     165CREATE OR REPLACE FUNCTION get_monthly_system_balance()
     166RETURNS TABLE (
     167    month TEXT,
     168    total_income NUMERIC,
     169    total_expense NUMERIC,
     170    net_balance NUMERIC
     171)
     172LANGUAGE plpgsql
     173AS $$
     174BEGIN
     175    RETURN QUERY
     176    SELECT
     177        TO_CHAR(t.date, 'YYYY-MM'),
     178        SUM(tb.earned_amount),
     179        SUM(tb.spent_amount),
     180        SUM(tb.earned_amount) - SUM(tb.spent_amount)
     181    FROM transaction t
     182    JOIN transaction_breakdown tb ON t.transaction_id = tb.transaction_id
     183    GROUP BY TO_CHAR(t.date, 'YYYY-MM')
     184    ORDER BY month;
     185END;
     186$$;
    179187}}}
    180188Проблематичен месец е месец каде што {{{net_balance}}} е негативен. Резултатите можат да се прикажат во графикон (на пример, бар график или линиски график) за подобра анализа. Може да се додаде процентуална промена меѓу месеците за да се откријат трендовите во приходите и трошоците