CRMconnect Azuvio · Docs

Workflow: Purchase to Pay

Modules involved: Purchase (RFQ · Quotations · Purchase Orders · Vendor Invoices) · Warehouse (Goods Receipt) · Payments
Who uses it: Responsabil achiziții, Manager depozit, Financiar, Furnizori
Durata tipică: 1 zi – 4 săptămâni (depinde de termenele furnizorului)

Overview

Fluxul complet de aprovizionare: de la nevoia identificată intern (cerere de ofertă) până la plata facturii furnizorului și intrarea mărfii în stoc. Gestionat în principal de echipa de achiziții și depozit.


Diagrama fluxului

[CERERE DE OFERTĂ (RFQ)]
  │  status: Draft (1) → Approved (2) → Rejected (3) / Canceled (4)
  │  ↓ Aprobare internă → trimitere la furnizori
  │
[OFERTE PRIMITE (Quotations)]
  │  furnizorul răspunde prin portal sau manual
  │  status: Draft (1) → Accepted (2)
  │  ↓ Selectezi oferta câștigătoare → crezi Comandă Achiziție
  │
[COMANDĂ ACHIZIȚIE (Purchase Order)]
  │  status: Draft (1) → Approved (2) → Rejected (3) / Canceled (4)
  │  order_status: Not Started (1) → In Progress (2) → Completed (3)
  │  delivery_status: 0 = nelivrat / 1 = livrat
  │  ↓ Marfă sosește în depozit → Aviz de Recepție
  │
[AVIZ DE RECEPȚIE (Goods Receipt Note)]
  │  creat automat sau manual din PO
  │  stocul se actualizează în depozit
  │  ↓ Factură primită de la furnizor
  │
[FACTURĂ FURNIZOR (Vendor Invoice)]
  │  payment_status: unpaid → partially_paid → paid
  │  ↓ Înregistrezi plata
  │
[PLATĂ FURNIZOR]
  │
[CICLU ÎNCHIS ✓]

Pas cu pas

1. Cerere de Ofertă (RFQ) — Identificarea nevoii

Unde: /admin/purchase/purchase_request

Cum se creează:

  • Manual: buton Adaugă RFQ — completezi ce produse sunt necesare, cantități, termen
  • Automat: din Ordinul de Producție când materialele lipsesc din stoc (purchase_request_id setat pe MO)

Câmpuri cheie:

Câmp Note
Denumire RFQ Titlu intern descriptiv
Departament Departamentul solicitant
Responsabil Staff-ul care face cererea
Data solicitată Termenul de nevoie
Articole Produse + cantități necesare

Statusurile RFQ:

Cod Status Descriere
1 Draft Creat, nesupus aprobării
2 Approved Aprobat intern — se trimite la furnizori
3 Rejected Respins
4 Canceled Anulat

La trecerea în status Approved, sistemul apelează update_item_pur_request() pentru a sincroniza articolele cu catalogul de achiziții și loghează tranziția automat.


2. Ofertă Primită (Quotation) — Răspunsul furnizorului

Unde: /admin/purchase/myquotations

Cum intră oferta:

  • Portal furnizor: furnizorul primește link și completează oferta online
  • Manual: operatorul introduce oferta primit pe email/telefon
  • Upload: document PDF atașat cu prețuri completate manual

Câmpuri cheie pe ofertă:

Câmp Note
Furnizor Legătura cu fișa furnizorului
RFQ asociat Cererea de origine
Data expirare Valabilitatea ofertei
Articole + prețuri Ce oferă furnizorul și la ce preț
Termeni plată Zile credit comercial

Statusuri ofertă:

Cod Status Descriere
1 Draft / Pending Ofertă primită, neacceptată
2 Accepted Oferta selectată câștigătoare

Comparare oferte:
Poți primi multiple oferte pentru același RFQ și le poți compara pe coloane înainte de a selecta furnizorul.


Unde: /admin/purchase/purchase_order

Creare:

  • Din oferta acceptată: buton Crează Comandă — preia furnizorul și articolele automat
  • Direct: /admin/purchase/pur_order → completezi manual

Statusurile PO:

Câmp Cod Descriere
status 1 Draft — neconfirmat
status 2 Approved — confirmat și trimis furnizorului
status 3 Rejected
status 4 Canceled
order_status 1 Not Started — livrarea nu a început
order_status 2 In Progress — livrare parțială sau în curs
order_status 3 Completed — toate articolele recepționate
delivery_status 0 Nelivrat
delivery_status 1 Livrat complet

Câmpuri importante:

Câmp Note
Termen de plată (days_owed) Zile de credit comercial de la livrare
Data livrare estimată Termenul promis de furnizor
Contract asociat Dacă există contract cadru cu furnizorul
Depozit destinație Unde vor intra mărfurile

Trimitere la furnizor:
Buton Trimite → email automat cu PDF-ul comenzii și link portal. Furnizorul confirmă recepția și poate actualiza statusul de livrare.


4. Aviz de Recepție (Goods Receipt Note) — Intrarea mărfii

Unde: /admin/warehouse/manage_purchase

Creare:

  • Automată: la aprobarea PO sau la schimbarea order_status → sistemul creează avizul via hook create_goods_receipt
  • Manuală: din PO confirmat → buton Crează Aviz Recepție

La recepție — cu sau fără scanner de coduri de bare:

Cu scanner (recomandat):

  1. Focusezi câmpul SKU din aviz → scanezi eticheta coletului/produsului
  2. Platforma identifică automat articolul — elimini erorile de SKU
  3. Introduci cantitatea recepționată → confirmi linia
  4. Scanezi toate liniile → salvezi — stocul se actualizează automat

Fără scanner:

  1. Verifici fizic marfa față de PO
  2. Completezi manual SKU + cantitățile recepționate (pot fi parțiale)
  3. Notezi discrepanțele (lipsuri, deteriorări)
  4. Salvezi — stocul se actualizează automat în depozitul configurat

Câmpuri cheie:

Câmp Note
Cod aviz recepție Generat automat cu prefix configurabil
PO asociat Legătura cu comanda de origine
Articole + cantități Ce s-a primit efectiv
Depozit Locația în care intră marfa
Data recepției Data fizică a intrării

Dacă recepția este parțială, delivery_status rămâne 0 și se poate crea un al doilea aviz la livrarea restului.


5. Factură Furnizor (Vendor Invoice) — Cererea de plată

Unde: /admin/purchase/myinvoices

Creare:

  • Automată din PO sau Contract: dacă opțiunea create_invoice_by este configurată
  • Manual: buton Adaugă Factură Furnizor — introduci datele de pe factura primită
  • Upload vendor: furnizorul încarcă factura prin portal

Statusurile facturii furnizor:

payment_status Descriere
unpaid Neachitată — nicio plată înregistrată
partially_paid Parțial achitată — suma plătită < total
paid Achitată integral

Statusul se calculează automat: dacă suma tuturor plăților înregistrate în pur_invoice_payment = totalul facturii → paid. Dacă 0 < plătit < total → partially_paid.

Câmpuri cheie:

Câmp Note
Număr factură furnizor Numărul de pe factura primită
Furnizor Fișa furnizorului
PO asociat Comanda de origine
Data scadență Calculată din invoice_date + days_owed
Total Suma din factură

6. Plată Furnizor — Stingerea datoriei

Unde: Din factura furnizorului → buton Înregistrează Plată

Câmpuri plată:

  • Suma
  • Data plății
  • Mod de plată (virament, cash, etc.)
  • Referință tranzacție (număr OP / extras bancă)
  • Status aprobare plată (dacă e activ fluxul de aprobare)

Plăți multiple:
Se pot înregistra plăți parțiale succesive — fiecare e logată în pur_invoice_payment. Factura trece în partially_paid și ulterior în paid când totalul e acoperit.


Ce se creează automat

Eveniment Se creează automat
RFQ aprobat Email notificare furnizori; sync articole în catalog
Ofertă acceptată Link pur_orders.sales order → oferta câștigătoare
PO aprobat Hook create_goods_receipt → aviz de recepție inițiat
Aviz recepție salvat Stoc actualizat în depozit; delivery_status actualizat pe PO
PO order_status → 2 delivery_status setat la 1 cu data curentă
Plăți cumulate = total factură payment_statuspaid automat

Retururi la Furnizor — Sub-flux

Când marfa primită este defectă, în exces sau neconformă, returnezi furnizorului și recuperezi valoarea prin Notă de Debit.

Problemă identificată la recepție sau ulterior
       ↓
Izolezi fizic marfa în depozitul de Carantină
  (Transfer Intern dacă e necesar)
       ↓
Contactezi furnizorul → confirmare retur (RMA / email)
       ↓
Depozit → Retururi Achiziție → Adaugă
  → Asociezi PO-ul sau NIR-ul original
  → Articolele și cantitățile de returnat
  → Depozitul sursă
       ↓
Confirmi → stocul scade automat din Carantină
       ↓
Dacă furnizorul are Portal Furnizori:
  → Vede returul în secțiunea Comenzi Retur
  → Poate actualiza status: Primit / Aprobat / Respins
  → Monitorizezi din Retururi Achiziție fără apeluri telefonice
       ↓
[Achiziții] Contabil AP emite Notă de Debit
  → Reduce suma de plătit furnizorului
  → Sau generează credit pentru comanda viitoare
       ↓
Pregătești fizic coletul → AWB de retur
  (furnizorul trimite eticheta sau plătești tu transportul)
       ↓
Predai curierului → furnizorul confirmă primirea

Cazuri speciale:

Situație Acțiune
Marfă defectă la recepție, 5 buc. din 100 NIR pentru 95 buc. conforme + Retur pentru 5 buc.
Tot lotul neconform NU finalizezi NIR → returnezi tot
Furnizorul contestă returul Documentezi în sistem cu fotografii + motivul notei de debit
Furnizorul refuză să primească returul Escaladare Manager Achiziții + Juridic

Puncte unde fluxul poate bloca

Problemă Cauză probabilă Soluție
Furnizorul nu vede portalul Contul de furnizor nu e creat sau nu are acces Verifică /admin/purchase/vendors → email acces portal
Avizul de recepție nu se generează Hook dezactivat sau PO neaprobat Aprobă PO mai întâi; verifică setări modul
Stocul nu se actualizează Depozit neasociat pe aviz Completează câmpul depozit pe avizul de recepție
Factura furnizorului rămâne unpaid Plata nu a fost înregistrată în CRM Adaugă înregistrarea plății manual din factură
Două avize pentru același PO Livrare parțială neîncadrată corect Normal — avizele parțiale se sumează; verifică delivery_status

Rapoarte relevante

  • Rapoarte Achiziții/admin/purchase/myreports — cheltuieli pe furnizor, perioadă, categorie
  • Lista Comenzi Achiziție — filtre pe delivery_status pentru comenzile nelivrate
  • Istoric Inventar/admin/warehouse/warehouse_history — intrări de stoc per furnizor

Module implicate — documentație detaliată

← Înapoi la Workflows

Tip

Completați verificarea în trei pași (Comandă de Achiziție + Recepție Marfă + Factură Furnizor) înainte de aprobarea oricărei facturi de furnizor pentru plată — aceasta este controlul principal care previne plata pentru mărfuri care nu au fost livrate niciodată.

Warning

Nu aprobați o factură de furnizor înainte ca Recepția de Marfă să fie confirmată în depozit. Aprobarea fără GRN confirmat plătește pentru mărfuri a căror livrare nu o puteți verifica încă — un vector comun de fraudă și eroare.