Logica de business

Transformarea unei comenzi POS in documente contabile

Pentru transformarea unei comenzi din modulul de Hospitality în documente contabile sistemul parcurge următorii pași:

  • plata comenzii din ecranul POS (se execută continuu pentru fiecare comandă). Se pot de asemenea emite facturi pentru produsele vândute, după emiterea bonului fiscal;
  • se rulează programul Run Goods Issue Reconciliation (Sales -> Production) STEP 1 (job) pentru spargerea produselor în materii prime (se poate executa oricând pentru informare și analiză);
  • se rulează programul Run Goods Receipt Reconciliation (Production -> Warehouse) STEP 2 (job) pentru scăderea produselor din inventar (se va executa numai după ce toate documentele de achiziție – NIR sunt introduse în sistem);

Plata comenzii

Sistemul POS operează asupra unor comenzi (entități de tip Order) pana la achitarea acestora. Pentru plata unei comenzi se apasă pe butonul Bill pentru emiterea proformei iar după încasare se apasă pe butonul Cash pentru confirmarea plătii.

Comanda pe ecranul POS

După achitare, aceste comenzi se transforma în documente contabile. Din punctul de vedere al contabilității, aceste documente exista doar după ce tranzacția cu clientul este încheiată (după plata comenzii).

Incasarea unei comenzi pe POS

Documentele contabile sunt înregistrate în tranzacții de jurnal (JournalRecord si JournalRecordLine) și au referințe la produsele vândute (ProductDefinition), taxele aplicate tranzacției (Tax), mișcările de mărfuri în inventar (BinLocationTransaction), clienți (BusinessPartner) și unitatea financiar-contabilă (FinancialAccountingUnit) responsabilă cu emiterea documentelor (firma emitentă).

Transformarea unei comenzi în înregistrare de jurnal

Pașii pe care ii execută sistemul când o comandă este achitată sunt:

  • Se crează un document JournalRecord de tipul SalesReceipt căruia i se adaugă linii de tipul JournalRecordLine. Fiecare linie corespunde unui produs inclus pe comandă. Cantitățile, prețul și taxele sunt copiate din comanda. Dacă există un client atașat comenzii (cazul sistemului de livrări, încasări de avansuri sau fidelizare clienți), o referință la acesta (BusinessPartner) este salvată în înregistrarea din jurnal.
  • Se crează mișcările de mărfuri prin crearea de tranzacții (BinLocationTransaction) în depozit. Fiecare linie din înregistrarea din jurnal are corespondentă o linie de mișcare de mărfuri. Aceste mișcări de mărfuri nu sunt finale pentru produsele cu rețetă. Produsele cu rețetă vor fi procesate (împărțite în materii prime) la execuția unui alt program. Scăderile din stoc se efectuează după execuția ulterioară a acestui program.
  • Se crează un document contabil (AccountingDocument) de tipul SalesReceipt, cu o referință la înregistrarea din jurnal și i se adaugă linii (AccountingDocumentLine) cu referințe la liniile înregistrării din jurnal. Acesta va salva documentul emis de către imprimanta fiscală.
  • Se crează documente pentru tranzacțiile care achită comanda (CashJournalTransaction) (tranzacții numerar / card / voucher) care sunt referfenițate de către comandă și de către documentul de contabilitate.
  • Se trimite către imprimanta fiscală o comandă pentru tipărirea bonului fiscal. Dacă aceasta tipărește cu succes un bon fiscal, va returna detaliile tranzacției (număr bon, raport Z etc.), care vor fi salvate în documentul contabil (AccountingDocument). Dacă imprimanta fiscală nu funcționează încasarea nu este posibilă și va trebui efectuată manual direct pe aceasta. De asemena comanda nu va fi închisă.
  • Dacă emiterea bonului fiscal se executa cu succes, comanda va fi marcată ca plătită și aceasta va dispărea de pe ecranul POS.

Toate documentele și liniile create vor conține detalii despre tranzacții în câmpurile Description și/sau Note. Acestea ajuta la ușoara lor identificare lor când sunt afișate în diverse tabele sau în baza de date.

Sistemul suportă conectarea la orice imprimanta fiscală sau casă de marcat. In prezent sistemul suportă imprimante fiscale comercializate de către DATECS dar pot fi conectate și imprimante comercializate de către alți furnizori.

Spargerea produselor în materii prime

In general produsele vândute vor fi de 2 tipuri:

  • materii prime vândute ca atare (RawMaterial), de exemplu băuturile vândute la sticlă;
  • produse cu rețetă (BillOfMaterial)

După rularea programului Run Goods Issue Reconciliation (Sales -> Production) STEP 1 (job) în sistem va fi creat un singur document JournalRecord de tipul GoodsIssue care va conține linii pentru fiecare ingredient de tip RawMaterial conținut în rețetele (BillOfMaterial) produselor vândute conținute în documentele JournalRecord de tipul SalesReceipt sau SalesInvoice și câte mai multe linii pentru fiecare linie din aceleași documente de vânzare pentru materiile prime (RawMaterial) vândute ca atare. Programul rulează ca job.

Acest document servește ca bază pentru procesarea mișcărilor de mărfuri în inventar.

Fiecare linie conține referința la materia primă (ProductDefinition), o referință nouă la o tranzacție de inventar care conține doar data vânzării produsului (copiată din linia documentului creat la plată), cantitatea materiei prime (calculata din rețetă și cantitatea vândută) și unitatea de măsură. Liniile create rulând acest program vor fi copiii liniilor documentelor create la plata comenzii, astfel pot fi identificate documentele de vânzare care au fost deja procesate.

Liniile din documentele de tip GoodsIssue sunt copii liniilor din documentele de tip SalesReceipt sau SalesInvoice, in consecință acestea le vor fi părinți. De asemenea documentele JournalRecord de tipul GoodsIssue sunt copii documentelor de tip SalesReceipt sau SalesInvoice, in consecință acestea le vor fi părinți.

Toate documentele și liniile create vor conține detalii despre tranzacții în câmpurile Description și/sau Note. Acestea ajuta la ușoara lor identificare lor când sunt afișate în diverse tabele sau în baza de date.

Reconcilierea iesirilor cu intrarile de marfuri

Scăderea produselor din inventar

După ce toate documentele de achiziție au fost introduse, se poate rula programul Run Goods Receipt Reconciliation (Production -> Warehouse) STEP 2 (job) pentru scăderea stocurilor produselor din inventar. Rularea acestui program leagă stocurile materiilor prime utilizate în produsele vândute de materiile prime recepționate prezente în stoc, de aceea este important ca toate documentele de achiziție sa fie introduse în sistem înainte de execuție.

Scăderea din inventar folosește logica FIFO.

ATENȚIE: Dacă există documente de intrare lipsă și se dorește o corecție, trebuie șters documentul generat de acest program, introduse documentele lipsă și rulat programul din nou. Documentele blocate de o închidere de luna nu mai pot fi modificate sau șterse.

Inainte ca documentele finale sa fie generate, vor fi căutate toate retururile (PurchaseGoodsReturn) si vor fi create documente de tip GoodsIssue pentru fiecare.

Rularea acestui program crează doua documente JournalRecord de tipul ReconciliationOfGoodsIssuesAndGoodsReceipts si MismatchedReconciliationOfGoodsIssues care vor conține linii cu referințe la documentul anterior generat JournalRecord  de tipul GoodsIssue și la linii ale documentelor de achiziție JournalRecord  de tipul GoodsReceipt, astfel:

  • liniile documentului de tipul ReconciliationOfGoodsIssuesAndGoodsReceipts  vor fi copii liniilor documentului de tipul GoodsIssue (vor avea unii părinți linii din documentele de tip GoodsIssue);
  • liniile documentului de tipul ReconciliationOfGoodsIssuesAndGoodsReceipts  vor fi de asemenea copii liniilor documentului de tipul GoodsReceipt (vor avea ca părinți și linii din documentele de tip GoodsIssue);

In mod normal, dacă toate documentele de achiziție au fost introduse și stocul este corect, documentul de tip MismatchedReconciliationOfGoodsIssues nu trebuie sa conțină nici o linie.

Toate documentele și liniile create vor conține detalii despre tranzacții în câmpurile Description și/sau Note. Acestea ajuta la ușoara lor identificare lor când sunt afișate în diverse tabele sau în baza de date. Dacă documentul de tipul MismatchedReconciliationOfGoodsIssues va conține linii, se vor putea identifica ușor problemele apărute prin consultarea acestor câmpuri.

Liniile din documentele de tip ReconciliationOfGoodsIssuesAndGoodsReceipts si MismatchedReconciliationOfGoodsIssues sunt copii liniilor din documentele de tip GoodsIssue, in consecință acestea le vor fi părinți. De asemenea documentele JournalRecord de tipul ReconciliationOfGoodsIssuesAndGoodsReceipts si MismatchedReconciliationOfGoodsIssues sunt copii documentelor de tip GoodsIssue, in consecință acestea le vor fi părinți.

Inventarul

După rularea acestor programe, dacă totul a decurs fără probleme, stocurile prezente în raportul de inventar ar trebui sa reflecte realitatea.