Unelte utilizator

Unelte site


Bara de navigare

DOC. hMARFA - PDF
DOC. hMARFE - PDF

Reguli de licenţiere

upgrade:x_var_ip

Funcţii de setare a plafonului de încasare/plată facturi

Setul de functii xR_SumaPla(), xF_SumaInc(), xI_SumaInc(), xI_SumaPla() se va utiliza la validare facturi, receptii, incasari/plati pentru testarea depasirii plafonului admis.

La implementare, in formula de validare se apeleaza functia si valoarea returnata se compara cu valoarea plafonului admis. In cazul depasirii plafonului se poate afisa un mesaj in acest sens si se poate abandona validarea.

Vor fi luate in calcul doar incasarile/platile validate. Recomandam utilizarea acestor functii in momentul validarii documentelor si evitarea lor la anulare. Acest lucru este si mai evident in cazul functiilor xI_SumaInc(), xI_SumaPla():

  • la validare, documentul curent nu este luat in calcul, deoarece starea lui din fisier in momentul evaluarii formulelor de calcul indica starea de anulat. Din acest motiv, la testare, suma returnata de functie va trebui corectata cu suma din documentul curent.
  • la anulare, in momentul evaluarii formulelor de calcul starea din fisier este „validat“, astfel suma returnata va contine si valoarea documentului curent.

Un lucru asemanator se intampla si la validarea documentelor de intrare si iesire cand acestea se utilizeaza in combinatie cu functiile xR_PlataFurn() respectiv xF_Incasare().
Aceste functii pot valida/anula plati si incasari.
Pentru a lua in calcul acest efect, testul trebuie sa fie implementat dupa revenirea din functiile(xR_PlataFurn(), xF_Incasare())

Pentru testarea starii exista variabilele de sistem xR_StareRec (documente de intrare), xF_StareFac (documente de iesire0, xI_StareIP (documente de incasare/plata).
Acestea contin litera „V“ daca urmeaza operatia de validare.
Variabilele se vor testa cu expresii de forma: „V“$xI_StareIP

xR_SumaPla (nrjur,[datafila],[partener],[nrdoc],[@nrincpla]) si
xI_SumaPla (nrjur,[datafila],[partener],[nrdoc],[@nrincpla]]

Calculeaza sumele platite prin operatiile de plata care corespund
parametrilor transmisi.
Vor fi luate in calcul doar platile validate.
nrjur    -obligatoriu, poate reprezenta si o familie de jurnale.
          Ex. MIC,MICL,MICL1 etc.
datafila -optional, data filei in care a fost inregistrata plata, 
partener -optional, codul furnizorului, F-cod
nrdoc    -optional, numarul receptiei urmat de tip (F-factura, V-vama, C-cheltuieli)
nrincpla -numar plati
Platile unei facturi:          
         xI_SumaPla("MIC",,,xI_NrFac+xI_TipRel)           
Plati catre un partner intr-o zi:                    
         xI_SumaPla("MIC",xI_DataFila,xI_TipPart+-"+xI_CodPart,)
Plati intr-o zi catre Firme:                    
         xI_SumaPla("MIC",xI_DataFila,"F-",) 

xF_SumaInc (nrjur,[datafila],[partener],[nrdoc],[@nrincpla]) si
xI_SumaPla (nrjur,[datafila],[partener],[nrdoc],[@nrincpla])

Calculeaza sumele incasate prin operatiile de incasare care corespund
parametrilor transmisi.
Vor fi luate in calcul doar incasarile validate.
nrjur    -obligatoriu, poate reprezenta si o familie de jurnale.
          Ex. MIC,MICL,MICL1,etc.
datafila -optional, data filei in care a fost inregistrata plata,
partner  -optional, codul clientului, F-cod
nrdoc    -optional, numarul facturii
nrincpla -numar incasari
Incasarile unei facturi:          
         xI_SumaInc("MIC",,,xI_NrFac+xI_TipRel)           
Incasari de la un partner intr-o zi:                    
         xI_SumaPla("MIC",xI_DataFila,xI_TipPart+-"+xI_CodPart,)

Un exemplu de testare plafon plati (PCH in MICL):

  // este PJ/PF/"  "   ?
  # xI_4 := "D"
  # xI_1 := IF(xI_TipPart="P","PF",IF(xI_TipPart="F",IF(LEN(RTRIM(xI_CodFis))=13.OR.xI_CodFis="0 ","PF","PJ")," "))
  # xI_TipPart:=LEFT(xI_TipPart,1) 
  #DACA !EMPTY(xI_1).AND.!"V"$inc->STARE .AND.xI_DataFila>=h_CTOD("09/05/2015")
      # xI_3 := {CoFct("PLAFN-FAC-"+xI_1),CoFct("PLAFN-ZI-1"+xI_1),CoFct("PLAFN-ZI-TPJ")}
      #DACA !EMPTY(xI_NrFac).AND.xI_TotFac>xI_3[1].AND.xI_SumaPla(xI_Jrn,,,xI_NrFac)>0.AND.(!h_MesQry("Incasare/Plata fragmentata ! Validati? [D/N]","DN",@xI_4).OR.xI_4="N")
          #ABANDON
      #DACA !EMPTY(xI_NrFac).AND.xI_Suma>xI_3[1].AND.(!h_MesQry("Depasire plafon factura. Validati? [D/N]","DN",@xI_4).OR.xI_4="N")
          #ABANDON
      #DACA xI_SumaPla(xI_Jrn,xI_DataFila,xI_TipPart+"-"+xI_CodPart,)+xI_Suma>xI_3[2].AND.(!h_MesQry("Depasire plafon partener/zi. Validati? [D/N]","DN",@xI_4).OR.xI_4="N")
          #ABANDON
      #DACA xI_1="PJ".AND.xI_SumaPla(xI_Jrn,xI_DataFila,"F-",)+xI_Suma>xI_3[3].AND.(!h_MesQry("Depasire plafon zi. Validati? [D/N]","DN",@xI_4).OR.xI_4="N")
          #ABANDON
upgrade/x_var_ip.txt · Ultima modificare: 2024/11/11 09:01 (editare externă)