Files
roa2web-service-auto/.claude/rules/financial-indicators.md
Claude Agent 1b9ebf1d8f feat(dashboard): Complete dashboard desktop cleanup and improvements
User Stories Completed:
- US-001: Eliminare SolduriCompactCard de pe Desktop
- US-002: Eliminare Icoane din Header-ul CollapsibleCard
- US-003: Reorganizare TreasuryDualCard - Text Înainte de Grafice
- US-004: Reorganizare ClientiBalanceCard - Text Înainte de Grafice
- US-005: Reorganizare FurnizoriBalanceCard - Text Înainte de Grafice
- US-006: Grafice Colapsabile în TreasuryDualCard
- US-007: Grafice Colapsabile în ClientiBalanceCard
- US-008: Grafice Colapsabile în FurnizoriBalanceCard
- US-009: Grafice Colapsabile în CashFlowMetricCard

Additional Improvements:
- Add cache metadata display (CacheFooter component) for all dashboard cards
- Add @cached decorators to get_monthly_flows and get_indicators_with_sparklines
- Fix financial indicators calculations and sparkline sync
- Add state reset on company change to prevent stale data
- New shared components: CacheFooter.vue, authRedirect.js
- Enhanced FinancialIndicatorsCard with sparklines and period selection

Squashed from branch: ralph/dashboard-desktop-cleanup (11 commits)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 07:27:27 +00:00

3.1 KiB

Claude Rules: Financial Indicators

Surse de Date - OBLIGATORIU

Preferință: VBAL (Balanța de Verificare)

ÎNTOTDEAUNA folosește tabelul VBAL pentru calculul indicatorilor financiari, NU vbalanta_parteneri.

Indicator Tabel Conturi Coloane
Vânzări/Cifra Afaceri VBAL 70x TOTCRED - TOTDEB(709)
Cheltuieli VBAL 6x TOTDEB - TOTCRED(609)
Încasări clienți VBAL 4111, 461 RULCRED (lunar), TOTCRED (YTD)
Plăți furnizori VBAL 401, 404, 462 RULDEB (lunar), TOTDEB (YTD)
Solduri bilanțiere VBAL diverse SOLDDEB, SOLDCRED

Excepție: ACT (Registru Jurnal)

Pentru Achiziții YTD se folosește tabelul ACT deoarece captează și achizițiile directe pe cheltuieli (6x = 4x):

-- Achiziții totale (stocuri + cheltuieli directe)
SELECT SUM(CASE WHEN (SCD LIKE '3%' OR SCD LIKE '6%')
                 AND (SCC LIKE '4%' OR SCC LIKE '46%')
           THEN SUMA ELSE 0 END)
FROM ACT WHERE STERS = 0

Structura VBAL

SELECT
    cont,           -- Cont contabil (ex: '4111', '701')
    solddeb1,       -- Sold debitor la 1 ianuarie
    soldcred1,      -- Sold creditor la 1 ianuarie
    ruldeb,         -- Rulaj DEBIT luna curentă
    rulcred,        -- Rulaj CREDIT luna curentă
    totdeb,         -- Total DEBIT YTD (de la 1 ianuarie)
    totcred,        -- Total CREDIT YTD (de la 1 ianuarie)
    solddeb,        -- Sold final debitor
    soldcred        -- Sold final creditor
FROM {schema}.VBAL
WHERE AN = :an AND LUNA = :luna

Când să folosești fiecare coloană:

Nevoie Coloană Exemplu
Valoare lunară RULDEB, RULCRED Încasări luna curentă
Valoare YTD TOTDEB, TOTCRED Cifra de Afaceri YTD
Sold curent SOLDDEB, SOLDCRED Sold clienți
Sold început an SOLDDEB1, SOLDCRED1 Active la 1 ianuarie

TVA în Indicatori

Cu TVA (fluxuri de numerar reale):

  • Cash Flow (încasări/plăți)
  • Solduri clienți/furnizori
  • DSO, DPO (zile încasare/plată)

Fără TVA (indicatori economici):

  • Cifra de Afaceri (Clasa 7)
  • Cheltuieli (Clasa 6)
  • Profit Brut
  • Achiziții (din ACT)

Pattern-uri de Cod

Query VBAL cu agregare pe conturi:

query = f"""
    SELECT
        NVL(SUM(CASE WHEN CONT LIKE '70%' THEN TOTCRED ELSE 0 END), 0) -
        NVL(SUM(CASE WHEN CONT = '709' THEN TOTDEB ELSE 0 END), 0) as cifra_afaceri
    FROM {schema}.VBAL
    WHERE AN = :an AND LUNA = :luna
"""

Cache decorator:

@staticmethod
@cached(cache_type='fin_indicator_name', key_params=['company_id', 'luna', 'an'])
async def get_indicator(...):
    ...

NU folosi

  • vbalanta_parteneri pentru calcule agregate (doar pentru rapoarte pe parteneri)
  • SOLDDEB/SOLDCRED pentru Clasa 6/7 (conturile se închid lunar, sold=0)
  • Hardcodare valori TVA (19%, 9%) în formule