SAF-T DLL

.

Ce este SAF-T DLL  

Avantajele utilizării SAF-T DLL  

Instalarea și actualizarea SAF-T DLL  

Configurarea operației SAF-T în SOFTONE  

Prezentare consolă  

Procesarea datelor pentru generarea xml  

Customizări ale fișierului XML SAF-T  

.

.

.

.

.

.

.

Ce este SAF-T DLL

SAF-T DLL reprezintă o versiune a aplicației externe SAF-T, implementată sub forma unui fișier .dll. Aceasta păstrează funcționalitățile aplicației externe, dar permite integrarea procesului SAF-T direct în SOFTONE.

Principalul scop al acestei implementări este integrarea SAF-T în SOFTONE și salvarea în baza de date a informațiilor utilizate pentru generarea declarației D406. Astfel, datele SAF-T pot fi consultate și verificate direct în SOFTONE, facilitând identificarea eventualelor neconcordanțe între informațiile raportate în SAF-T și datele existente în modulele comerciale și financiar-contabile.

Avantajele utilizării SAF-T DLL

Unul dintre principalele avantaje este posibilitatea efectuării unui update incremental. După încărcarea inițială a datelor, nu mai este necesară procesarea tuturor informațiilor la fiecare rulare, ci doar actualizarea datelor noi sau modificate.

Procesarea prin SAF-T DLL poate avea o durată ușor mai mare comparativ cu vechea aplicație externă. În schimb, toate datele procesate sunt salvate în baza de date SOFTONE, ceea ce permite identificarea și investigarea mult mai ușoară a eventualelor erori sau neconcordanțe.

Instalarea și actualizarea SAF-T DLL

Atât instalarea inițială, cât și actualizările ulterioare ale fișierului SAF-T DLL se vor realiza de pe platforma Product. Pentru preluarea fișierului, se accesează ultima versiune disponibilă, se selectează Details, iar fișierul CST se descarcă și se încarcă în SOFTONE din meniul Unelte → S.D.K. → Customization Tools → Custom Administration. După încărcare, fișierul va fi disponibil în secțiunea SDK Code Files. Pentru actualizarea la o versiune nouă, recomandăm ștergerea cache-ului, atât în cazul instalărilor Cloud, cât și On-Premise, pentru a evita eventualele probleme la suprascrierea noului fișier DLL.

Ulterior, se are în vedere implementarea unui mecanism de actualizare automată la apariția unei versiuni noi, cu acordul utilizatorului.

Atenţie! Pentru utilizarea SAF-T DLL, este necesară actualizarea bazei de date la versiunea SOFTONE *623.11715 sau la o versiune ulterioară.

Configurarea operației SAF-T în SOFTONE

Pentru utilizarea SAF-T DLL trebuie creată în meniul SOFTONE operația specifică SAF-T.

Prin intermediul acestei operații se realizează procesarea și salvarea datelor SAF-T în baza de date. Tot de aici pot fi verificate interogările executate, log–urile procesului și testele de consistență.

Această operație reprezintă echivalentul rulării procesului SAF-T din aplicația externă, cu avantajul suplimentar că informațiile rezultate sunt integrate și păstrate în baza de date SOFTONE pentru verificări și analize ulterioare.

.S1ROSaft.dll;MainForm

În urma procesului de rulare SAF-T, documentele salvate în baza de date pot fi verificate accesând meniul standard Proceduri companie → Înregistrări SAF-T → Înregistrări SAF-T.

Prezentare consolă

Actualizare completă

Pe baza interogărilor definite, datele aferente documentelor, precum informațiile despre parteneri și valorile documentelor, sunt salvate în tabelele SAFTHEAD şi SAFTLINES. La fiecare rulare, aceste date sunt suprascrise integral, procesarea fiind reluată de la zero, indiferent dacă informațiile respective au fost procesate în cadrul unor rulări anterioare.

.

.

Actualizare modificări

Pe baza interogărilor definite, în tabelele SAFTHEAD și SAFTLINES sunt inserate doar documentele noi, iar pentru documentele existente sunt actualizate doar informațiile care au fost modificate.

.

.

Teste consistenţă

Poate fi consultată lista testelor de consistență disponibile, iar în urma executării acestora pot fi identificate și verificate testele care nu îndeplinesc condițiile necesare de validare.

.

.

Filtrare

În această secțiune sunt disponibile filtrele pentru definirea perioadei pentru care se realizează procesarea datelor aferente declarației D406, precum și informațiile din antetul declarației, care identifică societatea și stabilesc tipul de raportare.

.

Opţiuni

Contul contabil este bazat pe macheta de note contabile

Dacă se dorește ca, în aplicația SAF-T, conturile să fie preluate din fișele entităților (Articole / Servicii / Mijloace fixe / Debite și credite), și nu din machetele de note contabile, așa cum se întâmplă în mod implicit, această bifă trebuie debifată.

Documentele de retur vor fi transmise cu semnul minus în fişierul XML

Pentru ca documentele de retur să fie transmise cu semnul minus în fișierul XML, în aplicația SAF-T trebuie păstrată această opțiune, care este activată în mod implicit. O altă condiție necesară pentru transmiterea documentelor de retur cu semnul minus și pentru calcularea corectă a rulajelor este ca comportamentul documentelor să fie configurat cu una dintre următoarele valori: 151, 152, 154 sau 102.

.

.

Totaluri categorii TVA

Când această opțiune este activată, în secțiunea Taxe din SAF-T sunt calculate și afișate separat totalurile corespunzătoare fiecărei categorii de TVA.

.

.

Entităţi de actualizat

Sunt selectate modulele care vor fi incluse în xml.

Generează xml

Generează xml pe baza datelor procesate.

Generează csv SBS

În curs de dezvoltare

Generează SBS

În curs de dezvoltare

Declaraţii SBS

În curs de dezvoltare

Interogări

Pentru fiecare rulare SAF-T se pot verifica modulele pentru care a fost efectuată procesarea, durata procesării, precum și interogarea SQL (SQL Query) executată pentru fiecare modul în parte.

.

.

Log

Log cu privire la eventuale erori tehnice. Acesta este salvat fizic pe disc, în fişier txt.

.

.

Setări

.

Secțiunea Setări conține parametrizările privind modalitatea de export și validare a fișierului XML prin DUK, configurarea mediului SBS (teste / producţie), în cazul în care acest modul a fost achiziționat, precum și opțiunile pentru detalierea logului aferent erorilor identificate în procesul de validare (câmpul [Tip log]).

.

ℹ️ Opțiunea [Generare XML fără salvarea datelor] este implicit debifată iar la selectarea „Actualizare modificări” sau „Actualizare completă”, datele documentelor sunt salvate în baza de date.

Dacă opțiunea [Generare XML fără salvarea datelor] este bifată, butoanele de actualizare sunt inactive şi nu efectuează salvarea datelor în baza de date. Procesul funcționează similar aplicației externe: se generează fișierul XML, iar utilizatorul poate identifica documentele cu erori. Dacă, în urma generării și validării XML prin DUK, nu sunt identificate erori, se rulează testele de consistență.

.

ℹ️ Opţiunea [Nr. maxim linii/lot] din tab-ul [Debug] permite gruparea documentelor în loturi (batch-uri), astfel încât numărul total de linii cumulate să nu depăşească limita configurată în setări. Documentele din acelaşi lot sunt procesate simultan, în vederea optimizării procesului de actualizare a datelor.

Exemplu: Dacă în setări este definită o limită de 100 de linii, un document cu 95 de linii şi unul cu 4 linii vor fi grupate în acelaşi lot şi procesate împreună, deoarece numărul cumulat de linii (99) nu depăşeşte limita stabilită.

Această opţiune este utilă exclusiv pentru procesul de actualizare a datelor.

.

.

 

Log de actualizare cu statusul actualizarii parcurgerii modulelor si inserării în tabelele SAFTHEAD și SAFTLINES a datelor.

.

Procesarea datelor pentru generarea xml

La prima rulare, se va efectua un update total, pentru a prelua și procesa toate datele disponibile necesare raportării SAF-T. Evoluția procesării poate fi urmărită în log, iar la finalizarea acesteia va fi afișat un mesaj de confirmare.

În cazul în care sunt efectuate modificări asupra documentelor existente, sunt introduse documente noi sau sunt șterse documente, se va utiliza opțiunea Update incremental, pentru a procesa doar modificările intervenite și a reduce astfel timpul de procesare.

Pentru validarea datelor prin DUK Integrator, se va accesa butonul Generare XML.

În cazul în care sunt identificate erori în procesul de validare, fișierul care conține detaliile acestora va putea fi accesat din folderul de instalare SOFTONE.

.

Pentru identificarea și corectarea mai ușoară a erorilor, se va accesa butonul Corecție erori.

În cazul în care erorile sunt generate de date lipsă sau incorecte din nomenclatoare, precum Terți sau Articole, prin selectarea liniei corespunzătoare erorii vor fi afișate detaliile terțului sau articolului care necesită verificare și corectare.

În cazul erorilor aferente facturilor, va fi disponibil un link de redirecționare către documentul corespunzător din SOFTONE, pentru a facilita verificarea și corectarea acestuia.

După corectarea erorilor identificate, se va efectua un Refresh, urmat de un Update incremental. Ulterior, se va accesa din nou butonul Generare XML, pentru regenerarea și validarea fișierului XML pe baza datelor corectate. Dacă, în urma validării fișierului XML prin DUK, nu sunt identificate alte erori, se vor rula testele de consistență.

.

Pentru a consulta lista completă a înregistrărilor salvate în tabelele SAFTHEAD și SAFTLINES, se va accesa meniul standard Proceduri companie→ Înregistrări SAF-T→ Înregistrări SAF-T.

Pentru verificarea punctuală, la nivel de document, a datelor preluate în SAF-T, se va accesa, din bara laterală, opțiunea Operații → Înregistrare SAF-T.

.

.

Această opțiune de verificare este disponibilă în următoarele module: Vânzări, Achiziții, Tranzacții diverse, Documente de gestiune, Tranzacții numerar și bancă, Compensări și Documente ale mijloacelor fixe.

Câmpurile din tabelele SAFTHEAD și SAFTLINES, cu valorile prezentate în figurile de mai sus din „Înregistrare SAFT”, pot fi utilizate pentru verificarea documentelor din SOFTONE.

Astfel, se pot realiza cross-check-uri pentru identificarea eventualelor erori, precum documente neincluse în declarație sau diferențe între valorile declarate și cele din SOFTONE.

Mai jos este prezentat un exemplu de browser care poate fi creat pornind de la valorile standard.

VMULTIQUERY

SELECT

1 AS VMULTIQUERY , FINDOC,ACCOUNTID, NETTOTAL as NETTOTAL,GROSSTOTAL as GROSSTOTAL, TRADERID,

INVOICETYPE as SAFTINVOICETYPE, SELFBILLINGINDICATOR,COUNTRY, UPDDATE as SAFTUPDDATE

from SAFTHEAD

where FINDOC=A.FINDOC

.

SAFTERROR

CASE WHEN NOT EXISTS ( select FINDOC from SAFTHEAD where FINDOC=A.FINDOC ) THEN 0

WHEN EXISTS

(SELECT FINDOC from SAFTHEAD where FINDOC=A.FINDOC and ( ACCOUNTID is null or TRADERID is null or

INVOICETYPE is null or COUNTRY is null or (ABS(NETTOTAL)-ABS(A.LNETAMNT)>0) or (ABS(GROSSTOTAL)-ABS(A.SUMLAMNT)>0) )

) THEN 1

ELSE 2

END

 

NETTOTALDIFF

Abs(SALDOC.NETTOTAL) – Abs(SALDOC.NETAMNT)

.

.

TOTALDIFF

Abs(SALDOC.GROSSTOTAL) – Abs(SALDOC.SUMAMNT)

.

.

SAFTERRORDESC

SELECT

ISNULL(TRADERIDStatus,”) +

ISNULL(ACCOUNTIDStatus,”) +

ISNULL(COUNTRYStatus,”) +

ISNULL(INVOICETYPEStatus,”) +

ISNULL(SAFTNETTOTALStatus,”) +

ISNULL(SAFTGROSSTOTALStatus,”)

FROM

( SELECT

CASE

WHEN S.ACCOUNTID IS NULL

THEN ‘Accountid is null,’

END AS ACCOUNTIDStatus,

.

CASE

WHEN S.TRADERID IS NULL

THEN ‘TRADERID is null,’

END AS TRADERIDStatus,

.

CASE

WHEN S.COUNTRY IS NULL

THEN ‘Document COUNTRY is null,’

END AS COUNTRYStatus,

.

CASE

WHEN S.INVOICETYPE IS NULL

THEN ‘INVOICETYPE is null,’

END AS INVOICETYPEStatus,

.

CASE

WHEN ABS(ABS(S.NETTOTAL) – ABS(F.NETAMNT)) > 0

THEN ‘Difference in NETTOTAL,’

END AS SAFTNETTOTALStatus,

.

CASE

WHEN ABS(ABS(S.GROSSTOTAL) – ABS(F.SUMAMNT)) > 0

THEN ‘Difference in GROSSTOTAL,’

END AS SAFTGROSSTOTALStatus

.

FROM SAFTHEAD S

INNER JOIN FINDOC F ON F.FINDOC = S.FINDOC

WHERE S.FINDOC = A.FINDOC) C

.

Customizări ale fișierului XML SAF-T

.

Toate fișierele menționate mai jos vor fi adăugate în folderul de instalare SOFTONE. Pentru fiecare tip de fișier sunt disponibile hyperlinkuri pentru descărcarea unor fișiere exemplu.

.

1. paramsSaft.cfg – configurarea excluderilor

Pentru aplicarea diverselor excluderi la generarea fișierului XML SAF-T, acestea vor fi definite în fișierul paramsSaft.cfg.

Acest fișier va conține exclusiv setările referitoare la excluderi, fără alte informații de configurare, precum directoare de salvare, parole de autentificare sau alte date similare.

.

2. DS_SAFT.CFG – modificarea valorilor utilizate în query-urile SQL

Dacă se dorește actualizarea sau modificarea valorilor utilizate de query-ul configurat pentru un anumit modul, se va crea fișierul DS_SAFT.CFG.  În ataşament regăsiţi valorile default calculate.

.

3. CustomStatements.txt – modificarea query-urilor SQL

Dacă se dorește modificarea integrală a query-ului utilizat pentru un anumit modul, se va folosi fișierul CustomStatements.txt. În atașament regăsiți structura corespunzătoare fiecărui modul. Mai jos este prezentat un exemplu pentru antetul companiei. Pentru verificarea query-ului SQL aferent modulului dorit, se vor consulta integrările disponibile în SAFT DLL.

ℹ️ În cazul utilizării acestor custom queries, eventualele erori sau probleme rezultate în urma modificărilor nu pot beneficia de suport din partea SOFTONE.

.

CompanyHeader

***

SELECT CONVERT(VARCHAR(70),A.NAME) AS NAME, REPLACE(A.AFM,’RO’,”) AS AFM ,A.COUNTRY, CO.COUNTRYTYPE,CO.SHORTCUT

    ,CATEGORY as CMPMODE,REPLACE(A.AFM,’RO’,”) as TRDR,REPLACE(A.AFM,’RO’,”) as CODE,A.VATSTS

FROM COMPANY A

    LEFT OUTER JOIN COUNTRY CO ON CO.COUNTRY=A.COUNTRY

WHERE COMPANY={3}

;

—