Unelte utilizator

Unelte site


Bara de navigare

DOC. hMARFA - PDF
DOC. hMARFE - PDF

Reguli de licenţiere

hmarfa:x_cmpl

Implementare cost mediu ponderat lunar

Operaţia Calcul C.M.P. Lunar

La extragerea fişelor de magazie se evaluează expresia pentru stabilirea regimului.
Regimul calculat se înscrie în fişă şi în lot, în câmpul METSTOC.

Calcul C.M.P. lunar este o operaţie care se lansează din:
Fise de magazie/ Calcul iesiri/ C.M.P. lunar

Operaţia este accesibilă numai dacă opţiunea „Cost mediu ponderat“ este prezentă şi se îndeplineşte una dintre condiţiile:

  • nu este prezentă opţiunea Reţea locală,
  • este prezentă opţiunea Reţea locală şi este definită variabila de mediu CMPL, cu valoarea „DA“: CMPL=DA

Prin variabila CMPL se poate implementa ca operaţia să fie accesibilă numai de la anumite staţii de lucru, de exemplu de la staţia de lucru a unui utilizator care are dreptul să execute această operaţie.

Operaţia de calcul C.M.P. Lunar se poate executa doar dacă în Fişe de magazie extragerea s-a executat:

  • pentru o lună,
  • cu criteriul de grupare pe articole.

În urma operaţiei, pentru fişele cu regim de cost mediu ponderat, pentru ieşiri se recalculează preţurile şi se înscriu în fişe şi in loturile de ieşire.

[FISE_MAGAZIE]
// cost mediu ponderat lunar
// criteriu pentru alegerea fiselor peste care se aplica C.M.P.lunar
// Exemplu 1:
// CRIT_CMPL := "lotf->GRUPA='GC1'"
// Adica C.M.P.lunar se va aplica pentru materialele auxiliare,
// adica pentru grupa care incepe cu 'GC1'.
// Exemplu 2:
// CRIT_CMPL := "!(lotf->GRUPA='O')"
// toate fisele cu C.M.P.L. mai putin obiectele de inventar
// Exemplu 3:
// CRIT_CMPL := ".F."
// nici una dintre fise nu functioneaza cu regimul C.M.P.L.
CRIT_CMPL := ".F."
  • expresia se rulează doar la extragerea fişei,
  • în expresie se pot folosi referiri la câmpurile din fişierul de fişe („lotf“) si la câmpurile din fişierul loturi de intrare („lotm“),
  • la extragere se reţine regimul fişei (adică CMPL sau nu), astfel că ulterior, la Calcul C.M.P. Lunar se foloseste această informaţie, nu se mai reevaluează expresia din CRIT_CMPL.
  • expresia se evaluează separat pentru fiecare linie din fişă, prin urmare trebuie să fie compusă astfel, încât să returneze aceeaşi valoare pentru întreaga fişă (fiecare linie din fişă)!
    De fapt, criteriul trebuie compus astfel, ca să facă referiri numai la gestiune şi grupă, adică toate articolele dintr-o gestiune+grupă trebuie să fie de acelaşi tip (cu sau fără CMPL),
  • la extragere se parcurg loturile de intrare, se calculează regimul fişei care se înscrie în câmpul METSTOC din lot şi din fişă.
    Astfel la implementare trebuie să se execute o extragere, fără să fie impuse criterii ???, astfel ca să se calculeze valoarea câmpului METSTOC pentru toate loturile.
  • Atenţie la definirea expresiei CRIT_CMPL !
    Atenţie la modificări, să nu rezulte loturi care la o definiţie să rezulte cu CMPL, iar dupa modificarea expresiei cu preţ unitar fix.

Algoritmul prin care este implementat CMPL

Structura fişierului Fişe de magazie:

CHEIE      C 70.0
EXTRASLA   C 18.0
NRTRAN     C  6.0
CODMAT     C 15.0
GRUPA      C  6.0
GEST       C  4.0
CONT       C 11.0
METSTOC    C  4.0
NRJUR      C  5.0
CODDOC     C  5.0
TRSF       C  1.0
NRDOC      C  6.0
DATADOC    D  8.0
CANTI      N 12.3
CANTE      N 12.3
PUSTOC     N 15.2
PUMED      N 15.2
VALI       N 15.2
VALE       N 15.2
TIP        C  3.0
OBS        C 20.0

Ordinea din fişă este determinată de câmpul CHEIE (??? unde este câmpul CHEIE) Conţinutul câmpului CHEIE este structurat în conformitate cu criteriile impuse la extragere + data tranzacţiei + tip.

Structura generală pentru conţinutul din CHEIE:

cccccccccccGGGGggggggmmmmmmmmmmmmmmmppppppppppppCCCCddddddddttt

unde:

  • ccccccccccc - cont, numai dacă s-a cerut gruparea pe conturi, altfel „“,
  • GGGG - gestiunea, numai dacă s-a cerut gruparea pe gestiuni, altfel „“,
  • gggggg - grupa, numai dacă s-a cerut gruparea pe grupe, altfel „“
  • mmmmmmmmmmmmmmm - cod material - obligatoriu
  • pppppppppppp - cu mai multe semnificaţii:
    • preţ unitar stoc - dacă s-a cerut gruparea pe preţ,
    • nr.recepţie - dacă s-a cerut gruparea pe recepţie,
    • „“ - dacă s-a cerut gruparea pe articol
  • CCCC - criterii de grupare astfel:
    • D/N - Fise pe conturi [D,N],
    • D/N - Fise pe gestiuni [D,N],
    • D/N - Fise pe grupe de articole [D,N],
    • ' ',P,L - Fise pe articole/Pu/Lot [' ',P,L]
  • dddddddd - data mişcării, astfel:
    • dată început-1 - pt.sold precedent,
    • data tranzacţiei - intrare/ieşire,
    • data sf. - pentru soldul final
  • ttt - tip mişcare, astfel:
    • B3+ - sold/stoc precedent,
    • C1+ - intrare,
    • C1- - ieşire,
    • D2 - sold/stoc final,
  • fişele se formeaza pentru un articol, pe baza criteriilor de grupare,
  • ordinea în cadrul unei fişe va fi:
    • sold/stoc precedent –> STOCP,
    • ziua 1 - intrat, ieşit,
    • ziua n - intrat, ieşit,
    • sold/stoc final –> TSUME,
  • pentru un articol se pot forma mai multe fişe, în funcţie de criteriile de grupare. De exemplu, gruparea pe loturi sau gruparea pe preţ unitar.

Extragere

Câmpurile se completează astfel:

  • CHEIE - cheia, cu structura prezentată mai sus,
  • EXTRASLA - data (aaaallzz) + când a fost extras (hh:mm:ss) + staţia de lucru,
  • CONT - contul - citit din lotul de intrare,
  • METSTOC - CMPL/„“ - se va completa la extragere,
  • GEST - gestiunea - citită din lotul de intrare/ieşire,
  • GRUPA - grupa- citită din lotul de intrare,
  • CODMAT - cod material,
  • NRTRAN - se completează astfel:
    • nr.recepţie pentru criteriul de grupare pe lot,
    • „ “ - dacă nu s-a cerut criteriul de grupare pe lot,
  • NRJUR - cod jurnal, numai pentru intrări,
  • CODDOC - cod document:
    • STOCP -sold/stoc precedent,
    • tip document din lotul de intrare - pt. intrări,
    • tip document din lotul de ieşire - pt. ieşiri,
    • TSUME - sold/stoc final,
  • TRSF - transfer - D sau N - pentru mişcările de intrări/ieşiri,
    „ “ - stoc/sold precedent/final.
    Indică dacă mişcarea rezultă dintr-un transfer sau nu.
  • NRDOC - număr document, „“ pentru stoc/sold precedent/final,
  • DATADOC
    • data documentului - pentru intrare/ieşire,
    • dată început-1 perioada - pentru stoc/sold precedent,
    • dată sfârşit perioadă - pentru stoc/sold final.
  • CANTI - în funcţie de tipul mişcării:
    • STOCP, stocul precedent, adică suma intrărilor precedente, din care se scade suma ieşirilor precedente.
    • intrare - cantitatea intrată,
    • ieşire - 0.
    • TSUME - suma cantităţilor intrate în perioada extrasa + stocul rezultat din perioada precedentă.
  • CANTE - în funcţie de tipul mişcării:
    • STOCP - 0,
    • intrare - 0,
    • ieşire - cantitatea ieşită,
    • TSUME - suma cantităţilor ieşite în perioada extrasă.
  • VALI - valoarea corespunzătoare cantităţilor intrate:
    • STOCP - suma valoarilor intrate în perioada precedentă, valoarea fiind calculată pentru fiecare mişcare precedentă şi cumulată.
      Formula cu care se calculează valoarea intrată/ieşită pentru o mişcare din perioada precedentă:
      • ROUND(lotm→STOCI*lotm→PCONT, 2) - pentru intrările precedente,
      • ROUND(facr→CANT*facr→PUCONT, 2) - pentru ieşirile precedente.
    • intrare - valoare intrată, calculată cu formula:
      lotf→CANTI*lotf→PUSTOC
    • ieşire -0
    • TSUME - suma valorilor corespunzătoare cantităţilor intrate (suma VALI din fişă, inclusiv STOCP)
  • VALE - valoarea corespunzătoare cantităţilor ieşite:
    • stoc/sold precedent - 0,
    • intrare - 0,
    • ieşire - valoare ieşită, calculata cu formula:
      lotf→CANTE*lotf→PUSTOC
      la calcul CMPL va fi recalculat !
    • stoc/sold final - suma valorilor corespunzătoare cantităţilor ieşite din fişă (suma VALE din fişă)
  • PUSTOC - preţul unitar al mişcării, astfel:
    • preţul este criteriu de grupare.
      La toate tipurile de mişcări preţul unitar contabil din lotul de intrare (deci şi la ieşiri, preţul unitar contabil din lotul de intrare corespunzător) (??? predicat)
    • preţul nu este criteriu de grupare:
      • STOCP: lotf→VALI/lotf→CANTI
      • intrare: lotm→PCONT
      • ieşire - METSTOC=CMPL: facr→PUCONT
      • METSTOC= : lotm→PCONT
      • TSUME : preţul unitar al stocului, calculat pe bază de intrări, ieşiri, inclusiv transferuri, cu formula:
        ROUND(lotf→VALI-lotf→VALE,2)/ROUND(lotf→CANTI-lotf→CANTE,3)
        La calcul CMPL va fi suprascris cu PUMED!
  • PUMED - preţ mediu,
    • STOCP, intrare, ieşire va fi 0,
    • TSUME, preţul unitar mediu al stocului, calculat pe bază de intrări, ieşiri, mai puţin transferuri, cu formula:
      ROUND(lotf→VALI-x_valtrsf,2)/ROUND(lotf→CANTI-x_canttrsf,3)
      x_valtrsf - suma valorilor transferate,
      x_canttrsf - suma cantităţilor transferate.
    • TIP - tipul tranzacţiei (B3+, C1+, C1-, D2).

Calcul CMPL

Algoritmul de calcul CMPL va aplica PUMED existent în TSUME, calculat la extragere peste:

  • mişcările de ieşire din fişă, cele care nu sunt transferuri
    lotf→PUSTOC ←- lotf→PUMED din TSUME
    lotf→VALE ←- lotf→PUSTOC * lotf→CANTE
  • în TSUME: VALE ←- suma VALE din mişcările de ieşire recalculate PUSTOC ←- PUMED
  • în loturile de ieşire corespunzătoare mişcărilor din fişă în facr→PUCONT se înscrie PUMED din TSUME.
hmarfa/x_cmpl.txt · Ultima modificare: 2024/11/11 09:00 (editare externă)