In MAX exista mai multe functii cu care poti prelua diferite valori ale conturilor sau clasekir de conturi. Este foarte important sa intelegem aceste confuze notiuni de contabilitate creeate si gandite de niste minti bonlave.
1. CfoBi::getAccountValues($accountCatalogId, $dateStart, $dateEnd, $companyId = 0, $showBalanceType = 1, $isForeignCurrency = FALSE)
Functia intoarce setul complet de valori pentru contul dat. Este recomandat sa folositi aceasta functie numai daca aveti nevoie de majoritatea valorilor. Altfel, foloseste getter-ele individuale.
$ret = array( 'dcType' => 0, 'siDebitor' => 0, 'siCreditor' => 0, 'spDebitor' => 0, 'spCreditor' => 0, 'tpDebitor' => 0, 'tpCreditor' => 0, 'rcDebitor' => 0, 'rcCreditor' => 0, 'rpDebitor' => 0, 'rpCreditor' => 0, 'rtDebitor' => 0, 'rtCreditor' => 0, 'tsDebitor' => 0, 'tsCreditor' => 0, 'sfDebitor' => 0, 'sfCreditor' => 0 );
Semnificatia valorilor:
dcType
Tipul contului : 0=bidirectional, 1=debitor, 2=creditor. Se intoarce direct din baza de date, din ap_account sau din company_account_catalog, in functie de caz.
siDebitor
Sold initial debitor al perioadei specificate, adica sold initial (cel de la 01 ian) + ce s-a inregistrat pana dateStart.
siCreditor
Sold initial creditor al perioadei specificate, adica sold initial (cel de la 01 ian) + ce s-a inregistrat pana dateStart.
♣ Atentie: si-urile in sens “absolut” sunt diferite de acestea si sunt intoarse de getAccountValueInitialBalance() – vezi mai jos.
spDebitor
Sold precedent debitor, adica diferenta intre debit si credit pe perioada 01-ian pana la dateStart, care se inregistreaza pe debit.
spCreditor
Sold precedent creditor, adica diferenta intre debit si credit pe perioada 01-ian pana la dateStart, care se inregistreaza pe credit.
♣ Atentie: soldul precedent “sp” se returneaza pe spDebitor daca deltaD>deltaC, sau pe spCreditor daca invers.
tpDebitor
Total precedent debitor, adica valoarea de pe contul debitor inainte de dateStart. In fapt in cod se intoarce ca siDebitor-rpDebitor.
tpCreditor
Total precedent creditor, adica valoarea de pe contul debitor inainte de dateStart. In fapt in cod se intoarce ca siCreditor-rpCreditor.
rcDebitor
Rulaj curent debitor, adica valoarea de pe debit de la dateEnd – valoarea de pe debit de la dateStart.
rcCreditor
Rulaj curent crecitor, adica valoarea de pe credit de la dateEnd – valoarea de pe credit de la dateStart.
rpDebitor
Rulaj precedent debitor, adica valoarea de pe debit de la dateStart – valoarea de pe debit de la 01 ian YEAR(dateStart)
rpCreditor
Rulaj precedent creditor, adica valoarea de pe credit de la dateStart – valoarea de pe credit de la 01 ian YEAR(dateStart)
rtDebitor
Rulaj total debitor, adica valoarea contului debitor la dateEnd.
rtCreditor
Rulaj total creditor, adica valoarea contului creditor la dateEnd.
tsDebitor
Total sume debitor, adica valoarea contului debitor la dateEnd + soldul initial debitor.
tsCreditor
Total sume creditor, adica valoarea contului creditor la dateEnd + sold initial creditor.
sfDebitor
Sold final debitor, adica rtDebitor-rtCreditor daca aceasta diferenta > 0 sau 0 altfel.
sfCreditor
Sold final creditor, adica tsDebitor – tsCreditor daca aceasta diferenta > 0 sau 0 altfel.
♣ Atentie: daca contul este bidirectional atunci sp-urile si sf-urile se pot pune fie pe D fie pe C. Noi le punem acolo unde rezulta diferenta pozitiva.
2. CfoBi::getAccountValueInitialBalance($accountCatalogId, $columnType, $dateStart, $dateEnd, $companyId = 0, $isForeignCurrency = FALSE)
Intoarce valorile initiale – in “sens de DB” ** – ale contuli specificat, sau “soldul initial debitor/creditor” pentru datele specificate. Adica intoarce cea mai recenta valoare – pana in dateStart – de pe debit/credit din company_balance.
** adica folosind conditia de selectie care este: columnType=x AND companyId=y AND date(date) <=prevYear unde prevYear este date(‘Y-12-31’, strtotime($dateStart . ‘-1 year’)).
3. CfoBi::getAccountValue($accountCatalogId, $columnType, $dateEnd, $companyId = 0, $monthly = FALSE, $isForeignCurrency = FALSE, $dateStart = FALSE)
Intoarce valoarea contului specificat de pe D/C (in functie de columnType) pentru data specificata, adica valoarea din company_balance.total sau totalCurrency. Daca nu exista entry-uri in company_balance pe criteriile de mai sus, atunci se cauta in balance_history si se intoarce siDebitor/siCreditor (in functie de columnType). Daca nici aici nu exista date, atunci se intoarce zero.
Daca $monthly atunci cautarea in company_balance se face dupa date(date) < $dateEnd 23:59:59 si daca nu, atunci se cauta date(date) BETWEEN Y(dateStart)-01-01 00:00:000 si $dateEnd 23:59:59.
In balance_history se cauta dupa date(date)<=dateEnd indiferent de $monthly.
4. CfoBi::getAccountPreviousValues($accountCatalogId, $columnType, $dateStart, $dateEnd, $companyId = 0, $isForeignCurrency = FALSE)
Intoarce valorile “anterioare” ale contului specificat. (todo…)