Page 1 of 1

NIR cu cheltuieli - repartizare doar pe anumite randuri

Posted: 29 Jun 2012, 15:01
by gyongyver.balazs
Cum se rezolva, daca cheltuiala inscrisa in header-ul receptiei se repartizeaza doar pe anumite randuri ale receptiei?
De ex.: cheltuiala de transport se repartizeaza pe stocurile intrate, dar nu si pe avans?

Re: NIR cu cheltuieli - repartizare doar pe anumite randuri

Posted: 01 Jul 2012, 14:16
by mozes.illyes
În #INCEPUT se face un calcul prealabil, pentru a afla suma pentru care nu se repartizează cheltuieli:

Code: Select all

    # xR_1 := 0, xR_7 := lotm->(RECNO()), lotm->(DBSEEK(tran->NRTRAN))
    # lotm->(DBEVAL(h_MB("{|| xR_1:=xR_1+ROUND(lotm->PACH*lotm->STOCI,2)}"),h_MB("{|| lotm->CODMAT='Y-AVANS'}"),h_MB("{||lotm->NRTRAN=tran->NRTRAN}")))
    # lotm->(DBGOTO(xR_7))   
Nu fragmentaţi linia !


La calculul coeficientului pentru repartizarea a cheltuielilor se ţine cont de această sumă.

Code: Select all

    # xR_1 := IF (xR_Tot==0,0,(xR_TotChelt-xR_TotTvaChelt)/(xR_Tot-xR_1-xR_TotTva))
În secţiunea #RIND se pune un #DACA, prin care se evită repartizarea cheltuielilor pe liniile pentru care nu este necesar acest lucru

Code: Select all

    #DACA ! (xR_CodM="Y-AVANS")
        # xR_PuChelt  := ROUND(xR_PuCmp*xR_1,2)
        ...
-după DBEVAL() am mai făcut repoziţionarea pointerului în lotm, ca pe durata executării secţiunii #INCEPUT să fie poziţionat pe lotul selectat de program.
Nu este neapărat necesar, oricum înainte de #RIND programul impune primul lot de intrare.
Atenţie, am folosit variabila xR_7, verificaţi, să nu fie utilizat şi pentru altceva.
-DBEVAL() parcurge doar loturile de intrare de pe recepţie, deci nu ar trebui să apară probleme de viteză,
-h_MB() este necesar doar pentru varianta Blinker, dar poate fi păstrat şi în varianta Windows,
-eu am presupus criteriul de selecţie pentru Y-AVANS dar se pot implementa şi alte reguli, de exemplu în funcţie de grupă

Re: NIR cu cheltuieli - repartizare doar pe anumite randuri

Posted: 03 Jul 2012, 19:20
by imre.bodosi
Este o solutie generala, ca de la dezvoltator: valabil in blinker/win, loturile se parcurg in ordinea indexului 4 (ordinea in care se parcurg si in #RIND), viteza este optima etc.

Este adaptabila si la loturile de iesire, mai mult si la formulele de model, de contare,
ori de cate ori se impune parcurgerea prealabila a loturilor unui document, pentru a culege anumite informatii,
inainte de intra "oficial"in sectiunea #RIND.

Pentru a putea aplica si in alta parte, sa traducem ce inseamna:

lotm->(DBSEEK(tran->NRTRAN))
sare la primul lot de intrare al documentului

# lotm->(DBEVAL(h_MB("{|| xR_1:=xR_1+ROUND(lotm->PACH*lotm->STOCI,2)}"),h_MB("{|| lotm->CODMAT='Y-AVANS'}"),h_MB("{||lotm->NRTRAN=tran->NRTRAN}")))
- cu DBEVAL se parcurge fisierul lotm
- DBEVAL are 3 parametri, cele 3 coduri de bloc, parametri functiei h_MB(...)
prima: ce se executa ? se cumuleaza in X_1 valoarea PACH*STOCI
a doua: pentru care loturi ? pentru care codul este Y-AVANS
a treia: pana cand ? pana cand NRTRAN din lot=NRTRAN din document

Recapitulam:
se parcurge lotm incepand cu primul lot al documentului si
se cumuleaza in X_1 valoarea PACH*STOCI
din loturile pentru care codul este Y-AVANS
pana cand NRTRAN din lot=NRTRAN din document

Re: variante NIRIC cu rand avans si cheltuieli

Posted: 13 Mar 2013, 23:10
by imre.bodosi
NIRIC poate sa aiba mai multe variante:
- poate sa contina decontare de avans platit
- cheltuiala poate sa fie:
1. pe factura distincta care se poate receptiona in aceelasi NIR
(au acelasi OpTVA, ambele sunt in lei ....)
2. pe factura distincta care nu se poate receptiona in aceelasi NIR
(nu au acelasi OpTVA, factura de transport este in valuta ....)
3. pe aceeasi factura
O solutie NIRIC cu exemple vezi anexat.

Re: NIRIC - tip doc complet

Posted: 13 Mar 2013, 23:20
by imre.bodosi
Tip doc complet NIRIC.
Contine variantele de mai sus,
si in plus am actualizat si formularul:
coloane de latime mai mare, cantitate cu 3 zecimale, formular mai compact.

Re: NIRIC - rand cheltuieli

Posted: 13 Mar 2013, 23:29
by imre.bodosi
Pentru randul de cheltuieli se definesc:

Nomenclator: C-cheltuieli de transport marfuri, Grupa: Marfa,
Functii de conturi: Gest:C, Grupa: Marfa, Tip: C, Cont intrare: 378.1, Cont dif: 6588.5

Nomenclator: C-cheltuieli de transport materiale diverse, Grupa: GC1,
Functii de conturi: Gest:C, Grupa: GC1, Tip: C, Cont intrare: 308, Cont dif: 6588.5

Re: NIR cu cheltuieli - repartizare doar pe anumite randuri

Posted: 18 Mar 2013, 22:54
by imre.bodosi
Exemple cu receptii cu cheltuieli
cantitati receptionate mari cu diferente de repartizare mai mari si
cantitati transformate in UM mai mari cu diferente mai mici.
Vezi exemplele anexate.

Re: NIR cu cheltuieli - corectie formula repartizare cheltui

Posted: 10 May 2013, 09:30
by arpad.mezei
NIRIC - Corectie formula de repartizare cheltuieli

In formulele de validare a documentului NIRIC, atasat acestui subiect (topic), exista o formula de repartizare cheltuieli la 1 leu cumparat:

Code: Select all

    // cheltuieli la 1 leu cumparat
    # xR_1 := IF (xR_Tot==0,0,(xR_TotChelt-xR_TotTvaChelt+xR_1)/(xR_Tot-xR_1-xR_2-xR_TotTva))
Formula trebuie imbunatatita sa functioneze si in cazul cind factura are suma totala = 0, pentru ca are si un rind de decontare avans acordat.
In acest caz xR_Tot=0 si am aveatotusi cheltuieli de repartizat.

Formula corecta este:

Code: Select all

    // cheltuieli la 1 leu cumparat
    # xR_1 := IF (ROUND(xR_Tot-xR_1-xR_2-xR_TotTva,2)=0,0,(xR_TotChelt-xR_TotTvaChelt+xR_1)/(xR_Tot-xR_1-xR_2-xR_TotTva))
Deci testul: xR_Tot==0
trebuie modicat in:
ROUND(xR_Tot-xR_1-xR_2-xR_TotTva,2)=0