Cuprins

Pachete şi structuri în hMARFI

1. Întreţinerea pachetelor

Comenzile generice livrate conţin pachetele de comenzi:

IFAC_1 - Preluare ieşiri înregistrate prin Optimall
IINC_1 - Preluare încasări înregistrate prin Optimall

Pachetele de comenzi generice livrate implementează o procedură de import bine definită. Dacă este necesar, pachetele pot fi modificate de către distribuitor, astfel procedura de import poate fi schimbată în funcţie de specificul firmei beneficiare.

Facturile/comenzile se importă din fişierul de transfer definit de poziţia „ext1“ din catalogul fişierelor.

Încasările se importă din fişierul de transfer definit de poziţia „ext2“ din catalogul fişierelor.

În continuare prezentăm câteva situaţii specifice ce pot să apară şi modul în care acestea se rezolvă:

gestiunea din care se operează ieşirile

În mod prestabilit gestiunea din care se operează ieşirile este MR - Depozit mărfuri cu ridicata. Dacă este necesar gestiunea poate fi modificată astfel:

jurnalizare la nivel de pachet/document

Operaţia de import este jurnalizată, prin urmare în caz de incident operaţia care era în curs de execuţie în momentul întreruperii, poate fi refăcută.
În funcţie de parametrizare se poate reveni la ultimul document validat sau la situaţia existentă înainte de lansarea operaţiei de import.
Jurnalizarea poate avea loc la nivel de document sau la nivel de pachet.

La livrare pachetul este parametrizat pentru jurnalizare la nivel de document.
Pentru jurnalizare la nivel de pachet în secţiunea #PAC_INCEPUT în pachetul IFAC_1 se modifică rândul:
pac_writefld(„PAC_JURNALIZARE“, „D“)
în care se schimbă „D“ în „P“.

acceptarea stocului negativ

În documentele de ieşire generate pot să apară stocuri negative.
Acceptarea/tratarea stocurilor negative este o opţiune.
În mod prestabilit stocurile negative sunt acceptate şi nu sunt semnalate.

     #DACA ROUND(lotm->STOCI-lotm->IESIRI-xF_Cantit, 2) < 0
         # pac_stocN := .T.
    #IF pac_stocN .AND. ! ("!" $ fac->STARE)
        fac->STARE := RTRIM(fac->STARE)+"!"
    #ENDIF
    #IF pac_stocN
        fac_nb_upd := fac->NB_UPD
        fac_stare  := fac->STARE
        fac_valid("   ")
        h_meserr("Stoc negativ ! Factura: "+fac_nrfac, 1)
        h_PutLine("Stoc negativ ! Factura: "+fac_nrfac)
        Abandon(,"R")
    #ENDIF
    hMARFI dbf IFAC_1  --> import facturi pt. baza de date dbf
    hMARFI dbf IINC_1  --> import încasări pt. baza de date dbf

2. Structura fişierelor de interfaţă

Formatul fişierelor este dBASE III
Va exista un fişier pentru facturi şi un alt fişier pentru încasări.
Fişierele de transfer se găsesc în catalogul <dbf>\IMPEX şi sunt următoarele: - FACTURI.DBF - identificat prin poziţia „ext1“ din Catalogul fişierelor
În fişier documentele de ieşire se transmit pe rânduri: pentru fiecare document de ieşire se completează un număr de articole egal cu numărul de rânduri de pe document.
O parte din câmpurile fişierului descriu informaţii de identificare ale documentului (ex.DOC_DATA, PART_COD), iar o altă parte descriu rândurile documentului (ex.CANT, PULIV). Câmpurile ce aparţin de partea de identificare a documentului vor avea acelaşi conţinut pentru toate rândurile documentului.
Ex. PART_COD va avea acelaşi conţinut pentru toate rândurile de pe factura cu numărul 030123.

Fişierul de interfaţă va trebui să conţină articolele grupate pe documente.
Adică articolele care descriu acelaşi document trebuie să urmeze unul după celălalt.

Structura fişierului de interfaţă:

  COD_AGENT C, 3   - agentID (A01, A02, ...)
  DOC_NR    C, 6   - număr document
                     Se completează cu numărul intern al facturii/comenzii.
                     Se completează:
                     -factura - numărul intern din firmă folosit pentru
                      identificarea facturii emise (vansales). Va fi 
                      înscris în câmpul NRFAC din fişierul FACT\FACTURI.DBF.
                     -comanda - numărul comenzii pe baza căreia se va genera
                      factura (presales),
  DOC_NRRS  C,15   - număr regim special (opţional)
                     Primele 3 caractere sunt considerate seria, restul 
                     de 12 caractere reprezintă numărul. Nu este 
                     obligatoriu ca toate caracterele din serie şi 
                     număr să fie ocupate.
                     Exemplu: Seria: ACA nr: 6298299
  DOC_DATA  D      - data facturii/comenzii
  DOC_DSCAD D      - data scadenţei facturii emise
                     Data la care documentul devine scadent.
                     Trebuie să existe următoarea relaţie: 
                     DOC_DATA <= DOC_DSCAD.
  PART_COD  C, 7   - cod partener (ClientID)
                     Codul unei firme existenta din PART\FIRM.DBF, identificat
                     prin câmpul COD.
  DOC_VAL   N,15,2 - total factură cu TVA inclus (pentru comandă nu 
                     se completeaza)
                     Total de plată de pe factură.
  DOC_VALTVA N,15,2 - din care valoare TVA
                      DOC_VALTVA = suma valoare TVA din rândurile 
                      documentului.
                      DOC_VALTVA = suma din rînduri
                         (CANT * PULIV * CotaTVA / 100 rotunjit la zero).
                      CotaTVA = cota TVA din ListaArticoleNomenclator.
  CODMAT    C,15   - cod material (articolID)
  CANT      N,12,3 - cantitate (coloana 3 de pe factura)
  PULIV     N,15,2 - preţ livrare (coloana 4 de pe factura)
  REZOLVAT  L, 1   - se completează cu false
                     După preluarea completă a unui document programul de
                     transfer va înscrie true.

- INCASARI.DBF - identificat prin poziţia „ext2“ din Catalogul fişierelor.

Structura fişierului de interfaţă:

  COD_AGENT C, 3   - agentID (A01, A02, ...)
  DOC_NR    C,20   - număr document
                     Număr chitanţă. Este un număr unic în baza de date.
  DOC_DATA  D      - data document
                     Data chitanţei.
  NRFAC     C, 6   - număr factură client.
                     NrFactura din ListaFacturiRestante, sau 
                     o factură curentă.
  PART_COD  C, 7   - cod partener
                     Codul unei firme existenta din PART\FIRM.DBF, 
                     identificat prin câmpul COD.
  DOC_VAL   N,15,2 - suma încasată
  REZOLVAT  L, 1   - se completează cu false
                     După preluarea unei chitanţe programul de transfer va
                     înscrie true.