Bara de navigare

DOC. hMARFA - PDF
DOC. hMARFE - PDF

Reguli de licenţiere

hmarfa:x_mrfi

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:

  • în pachetul IFAC_1, în secţiunea #DOC_RIND se modifică rândul:
    pac_writefld(„GEST“, „MR “)
    în care expresia „MR “ se înlocuieşte cu o expresie nouă prin care se calculează codul gestiunii.
    Exemple:
    • codul unei gestiuni cu ridicata (ex. „MR1 “)
    • codul gestiunii se calculează în funcţie de codul agentului de vânzări:
      „M“+SUBSTR(ext1→COD_AGENT,2)
  • tipul documentului de ieşire generat de pachet este parametrizat pentru
    „TFAC “. Pentru schimbare în secţiunea #DOC_INCEPUT din pachetul IFAC_1 se modifică rândul
    pac_writefld(„DOC_TIP“, „TFAC “)
    în care se înlocuieşte „TFAC “ cu expresia dorită.

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.

  • jurnalizare la nivel de document - fiecare document este jurnalizat individual.
    Documentul odată generat este acceptat şi se începe jurnalizarea documentului următor. În caz de incident, operaţiile jurnalizate pot fi refăcute: documentele deja acceptate rămân în baza de date, documentul care a fost în curs de generare în momentul întreruperii va dispare.
    Operaţia de import poate fi reluată începând cu documentul pentru care generarea a fost întreruptă.
  • jurnalizare la nivel de pachet - se jurnalizează întreaga operaţie de import. În caz de incident se poate reveni la situaţia existentă dinaintea operaţiei de import.

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.

  • acceptarea stocului negativ şi marcarea documentului de ieşire.
    O altă posibilitate este ca stocurile negative să fie acceptate însă documentele de ieşire pe care apar să fie marcate în câmpul Stare prin semnul „!“.
    După desfăşurarea operaţiei de import, stocurile negative vor putea fi rezolvate prin anularea, modificarea şi revalidarea documentului.

    Pentru activarea acestei opţiuni se fac următoarele modificări:

    • modificări în formula de validare a documentului de ieşire ce se generează (ex. formula de validare din TFAC):
      • în secţiunea #INCEPUT se introduce linia:
        # pac_stocN := .F.
      • în secţiunea #RIND se introduc liniile:
     #DACA ROUND(lotm->STOCI-lotm->IESIRI-xF_Cantit, 2) < 0
         # pac_stocN := .T.
  • în pachetul IFAC_1 în secţiunea #DOC_SFIRSIT se activează liniile:
    #IF pac_stocN .AND. ! ("!" $ fac->STARE)
        fac->STARE := RTRIM(fac->STARE)+"!"
    #ENDIF
  • oprirea operatiei de import la primul stoc negativ.
    La validarea documentului generat se sesizează stocurile negative.
    Documentul se anuleaza şi operaţia de import se suspendă.
    Utilizatorul poate rezolva problema, după care se reia operaţia de import.

    Pentru implementare se procedeaza în felul următor:

    • se modifică formula de validare a tipului de document pa baza căreia sunt înregistrate ieşirile importate, ca la punctul anterior,
    • în pachetul IFAC_1 din secţiunea #DOC_SFIRSIT se activează liniile:
    #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
  • totalul facturii importate se recalculează în momentul validării şi se confruntă cu totalul transmis în fişierul de transfer.
    Dacă valorile calculate diferă de cele transmise, se semnalează. Valorile confruntate sunt total factura şi total TVA. .. În caz de diferenţe este posibilă şi întreruperea operaţiei de import.
    Pentru setarea acestei optiuni, în pachetul IFAC_1 secţiunea #DOC_SFIRSIT se activează linia: Abandon(,„R“)
  • arhivarea fişierelor de transfer preluate
    Articolele preluate din fişierul de transfer se marchează prin câmpul Rezolvat.
    Câmpul Rezolvat este un câmp logic şi pentru articolele deja importate conţine valoarea .T. Conţinutul fişierului de transfer nu se şterge, articolele nou transferate de pe dispozitivele PDA se adaugă la sfârşit.
    Din acest motiv se recomandă ca periodic fisierul de transfer să fie arhivat, iar conţinutul fişierului curent să fie şters. Acest lucru se realizează la comanda explicită a utilizatorului.
    Comanda este implementată printr-un script de tip hMET2UP.
    Se lansează prin fişierul de comenzi ARH_FIMP.BAT.
    După upgrade lansarea fişierului de comenzi este posibilă şi din hMENU, din baza de date.
    În urma comenzii articolele marcate prin câmpul Rezolvat vor fi copiate într-o copie de arhivă a fişierului.
    Fişierele de arhivă sunt definite de poziţiile „ext8“ si „ext9“ din catalogul fişierelor.
    Fişierul „ext8“ trebuie să aibă structura identică cu fişierul „ext1“.
    Fişierul „ext9“ trebuie sa aibă structura identică cu fişierul „ext2“.
  • executarea operaţiilor de transfer din linia de comandă.
    În unele situaţii este avantajoasă executarea operaţiilor de transfer din linia de comandă. De exemplu dacă agenţii transmit raportul vânzarilor/încasărilor în timp real de pe teren, acestea se depun în fişierele de transfer din calculator. În astfel de situaţii este recomandabil ca după actualizarea fişierului de transfer să se lanseze automat şi operaţia de preluare a datelor depuse. În paralel cu preluarea datelor din fişierele de transfer, baza de date poate fi operată de la o alta staţie de lucru dacă este disponibilă opţiunea de reţea.

    Lansarea transferului din linia de comanda:

    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.
hmarfa/x_mrfi.txt · Ultima modificare: 2024/11/11 09:00 (editare externă)