From 71bafec09b37c7e00325af574f577b415c002da2 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Tue, 7 Jul 2026 22:49:57 +0300 Subject: [PATCH] anaf efactura generare token cu citire automata token din romfast.ro --- COMUN/clase/anaf_efactura.vct | Bin 494337 -> 495175 bytes COMUN/clase/anaf_efactura.vcx | Bin 69811 -> 70138 bytes COMUN/programe/anaf_efactura.prg | 252 +++++++++++++++++++++++++++---- COMUN/programe/oexport.prg | 8 +- roacont.PJT | Bin 3851008 -> 3855744 bytes roacont.PJX | Bin 85953 -> 85953 bytes roacont.exe | Bin 18875191 -> 18880744 bytes 7 files changed, 232 insertions(+), 28 deletions(-) diff --git a/COMUN/clase/anaf_efactura.vct b/COMUN/clase/anaf_efactura.vct index 9eaab636f5f1e2eb21885be9f94143398130207b..e5e1ec5c97fda83eec9c6a4b6666ef9a98f49498 100644 GIT binary patch delta 3011 zcmZWr33OD|8NT$+h|6fHqOvT2u^9;aV3?qXL3fq32YkR;-5}5RbAL^|)30zf1zyo|$jn_y2eK zm;2xUO?ywy(LFgPV%k2B5CVOEDQmy7N1|T-iZqc9@Lw98d{D}rUD2ersLDJoq%~{m zI#sDt{i+g*Dq3rxC88>kaDx_7TGXhnYtfWOHJ~(w)rh93{zy~}2G*&(&zQ*@+!ouE zsfpGVfx1Y&GDGo|!tGy3PJWvul|O7YahBtwr-zLeOxIeQ0?n!tRFzc$&963VidP9n zLjk1)zuK??^k>8bnr#gD%hSvK=Tr;8p!lhgV7 zbCzth5syWy)VD?J6ELEX=GR&R5ndu^(1{~~B)dz07Kw+S&Tx!G(#?J&dpvGlVzKk* znQFbbEZl_gx=SbXY{PCgTlF_U*MoF)>;;3B%3hp#*w`m~eWg5L+QQGtSscthe5UeT zDZ~pBymTs_NCvXBSVzJ!CXoYN&2Y@C3atuHQ|h8CgHgpF4EP(ACQVs3bQ(=sDAF8N zR_kY`=dR@HS^Qs=7*j^3$CGG{yXpB^V0^z_f!Yi?fxkJvfGe3MTFxo+(rxHLK0mGe zEw(Ygj`CUA-^8XmO_a}ce9x=wU&i*P9iXv;qralDQK?VU*v-i=Qoc0nYkqs?w>W1U z-<0ugEN|>e8tcznLu2JR?NaRAxP3q`*yl^MF4R^<^qTY_A1TmsA5Sr7^HY{tY1dkeyMeCo3~LS89+7U~S*4R? z&y>l$s`Or4tRfl-FAc2IaJ%BlZga8o>dlFlS126C%KG23g6eeHYQyM8%zMi`e8BGD zkGboh?5vasCWn*;?;EB0P-9^>I6H~Cp|e$T!17cn3+~BfNpM_dNxb%-NpMPLi9Gkb zjo*6Ts95i$c{H|T@(u%y45gQ!dbgcFP;TM=_h#_U_xt$zk8}B~`39c+TpI7)Yk~W} zrhOxdSnuAo4*uNVGx?P1-^7w;3^qV-s$_~~AK7W(XUZqQzpkfd{-3ul#tyuhNv~Qs zI=pi})K<}JwpGp;hBOD~(wmbxOjICw4jlzbEu9;C;)K&kr$a>#wez!Y7eLWhbZFSj zD^J|XUFUXFl5uVsE};0dAZ|rIRVKvBpZ;ttf9fV1H!n)!Q)X^} zn`GwYJ3s#+Mqhf;%0K(-X^C23$y6zwk9+64SnqpnDc!Skpm8rP zv0#9DFe&shanlM6#7&{kPSZhoQf6rzaf0r?3Go=>WrP`Kb<$$^Lnm%-d)#P+P$w-B zMO)}DDk?V7?NprDNSmnG_7I(IySb>pXk9JF3XJ>+CO%jxLSw&5&~LjFhOA0Wm+ zb`LEUyL#w$2_7nDR;ccwH$rZmY!b!0XyY9MORbE;3r?w!_gXuk$|E_%p)_fp#CIww z@XUEBt)nDU5+#}P9YN9mpe)I-ZL^#S$2;V4`cEP}-yvttv5_U}YRz3-;g1B?;;U&S zjO1bcjrxmZXyiR~PfvJ!h3CqOAHd!z+q3jUUm5jY8O@VmQKy{cz{=5wftnGQ5mlHiD?U>YO~^MQGLer) zJcXPvLLB&TA_|aCLrg@TgHVx25PHxGVi)pf5GBZQ5^UchXTv9>rBu2MihCp%yuU>* z;f};KINBpE=HnC6dHwx4(3v5niDO&k@H+T*v=o62W273`@C()kjbkJ`)NGZDpk$9! z0_A6=QSoM_cPx{!rlnqO(s-AW$v-)gXg0-VFSNHx*FpbMww)V~B*P)b(nOh=9ihp- z(rez^lig(^(aL_Grr$>KMlQRJ3U?kekK*+gyI>(@6Tnu?%n}oN1w9S5#cY~bQ^M9$ zC@Voa!L8E^rED5}=wU8>k_~?6VTIyuFFWH9eqrx?}Rn4GN<*?`uK>Gz$Gp_#XYYvY*UZE!6MLJY0MWpjxrks_fbsc;1M zPl&gXudF3R!y-P3@_OVSp&yT+d0GtIRPx>b%eZ*vVJLULH_Bzgv`W? zwH#%`eT3At6S5fPH4-T#+fZnepVFAmJ6?$_dSU8C9`9*Ce6SsRl`!C>= Br#}Dy delta 2693 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 literal 69811 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 OU$ZhxOm-cwZ}xv9-kMhc diff --git a/COMUN/programe/anaf_efactura.prg b/COMUN/programe/anaf_efactura.prg index bff3d04..0a6fb1d 100644 --- a/COMUN/programe/anaf_efactura.prg +++ b/COMUN/programe/anaf_efactura.prg @@ -500,21 +500,200 @@ select a.*, cast(NULL as varchar2(1000)) as factura_detalii, 0 as modificat Endproc && SaveToken +*!* 07.07.2026 +*!* newToken - flux automat OAuth2: state + sesiune PHP + polling pick.php +*!* implementare unica in AnafeFacturaServer; ANAFeFactura deleaga +*!* kill switch ANAF_TOKEN_AUTOFLOW (1=automat, 0=vechi), garda headless + * Intoarce tokenul de acces la ANAF (eFactura) daca este salvat sau obtine un nou token -* Se apeleaza din formularul anaf_token.do_executa +* Se apeleaza din formularul anaf_token.do_executa (prin ANAFeFactura.newToken) Function newToken - Local lcTokenURL + LOCAL lnAutoFlowVal, lcAutoFlowStr, lcTokenURL, lcState, lcStatePrefix + LOCAL lcBuf1, lcBuf2, lni, lnAscByte, lcHexChars + LOCAL lcBrowserUrl, lcPickUrl, lcExitCode + LOCAL loHTTP, lnStatus, lcResponse, loJson + LOCAL lnStartSec, lnElapsed, lnStep, lnKey + LOCAL loExHTTP, loExJson, loExSave - This.Log('Introduceti in calculator tokenul USB cu semnatura electronica' + LF + ; - 'Se va deschide pagina ANAF de generare token. Introduceti PIN-ul pentru semnatura electronica.' + LF + ; - 'Copiati codurile "Token" si "Refresh Token" afisate si completati-le in ' + m.gcGeneralIniFile) + * --- Garda headless: server/ROAEFACTURA (lServer=.T.) sau _SCREEN invizibil --- + * Pastreaza EXACT comportamentul vechi al AnafeFacturaServer.newToken + IF This.lServer OR !_SCREEN.Visible + This.Log('Introduceti in calculator tokenul USB cu semnatura electronica' + LF + ; + 'Se va deschide pagina ANAF de generare token. Introduceti PIN-ul pentru semnatura electronica.' + LF + ; + 'Copiati codurile "Token" si "Refresh Token" afisate si completati-le in ' + m.gcGeneralIniFile) + lcTokenURL = This.cTokenUrl + open_default_app(m.gcGeneralIniFile) + open_default_app(m.lcTokenURL) + RETURN + ENDIF - lcTokenURL = This.cTokenUrl + * --- Kill switch: default 1 la NULL/inexistent/Oracle indisponibil --- + lnAutoFlowVal = 1 + TRY + lcAutoFlowStr = ALLTRIM(NVL(citeste_optiune("ANAF_TOKEN_AUTOFLOW"), '')) + IF !EMPTY(lcAutoFlowStr) + lnAutoFlowVal = INT(VAL(lcAutoFlowStr)) + ENDIF + CATCH + lnAutoFlowVal = 1 + ENDTRY - open_default_app(m.gcGeneralIniFile) - open_default_app(m.lcTokenURL) + lcTokenURL = ALLTRIM(NVL(This.cTokenUrl, '')) + IF EMPTY(lcTokenURL) + lcTokenURL = 'https://romfast.ro/oauth2/' + ENDIF - Endfunc + * --- Kill switch OFF (0) -> comportament vechi nemodificat --- + IF lnAutoFlowVal <> 1 + AMESSAGEBOX('Introduceti in calculator tokenul USB cu semnatura electronica' + CHR(13) + CHR(10) + ; + 'Se va deschide pagina ANAF de generare token. Introduceti PIN-ul pentru semnatura electronica.' + CHR(13) + CHR(10) + ; + 'Copiati codurile "Token" si "Refresh Token" afisate si completati-le in ROA.', 0 + 64, _Screen.Caption) + open_default_app(m.lcTokenURL) + RETURN + ENDIF + + * --- Modal initial OK/Anulare --- + IF aMESSAGEBOX('Se va genera un token nou eFactura.' + CHR(13) + ; + '1. Introduceti tokenul USB cu semnatura electronica in calculator.' + CHR(13) + ; + '2. Se va deschide pagina ANAF in browser: selectati certificatul dvs. si introduceti PIN-ul.' + CHR(13) + ; + '3. Reveniti in aplicatie - tokenul se preia automat.' + CHR(13) + CHR(13) + ; + 'Continuati?', 1 + 64, _Screen.Caption) <> 1 + RETURN + ENDIF + + IF RIGHT(lcTokenURL, 1) <> '/' + lcTokenURL = lcTokenURL + '/' + ENDIF + + * --- State anti-CSRF: 2 GUID-uri CoCreateGuid -> 64 hex (SYS(2015) e predictibil) --- + TRY + DECLARE INTEGER CoCreateGuid IN ole32 STRING @pguid + CATCH + * deja declarata in aceasta sesiune VFP + ENDTRY + lcBuf1 = REPLICATE(CHR(0), 16) + lcBuf2 = REPLICATE(CHR(0), 16) + CoCreateGuid(@lcBuf1) + CoCreateGuid(@lcBuf2) + lcBuf1 = lcBuf1 + lcBuf2 && 32 octeti aleatori = 256 biti entropie + lcHexChars = '0123456789abcdef' + lcState = '' + FOR lni = 1 TO 32 + lnAscByte = ASC(SUBSTR(lcBuf1, lni, 1)) + lcState = lcState + SUBSTR(lcHexChars, INT(lnAscByte/16)+1, 1) + SUBSTR(lcHexChars, MOD(lnAscByte,16)+1, 1) + ENDFOR + lcStatePrefix = LEFT(lcState, 8) && doar prefixul apare in log, niciodata tokenuri + + lcBrowserUrl = lcTokenURL + '?state=' + lcState + lcPickUrl = lcTokenURL + 'pick.php' + This.Log('[' + lcStatePrefix + '] start flux automat token') + + * --- Lansare browser; open_default_app (oexport.prg) intoarce .T./.F. (ShellExecute > 32) --- + IF !open_default_app(lcBrowserUrl) + AMESSAGEBOX('Nu s-a putut deschide browserul. Se continua cu fluxul manual: se va deschide pagina care afiseaza codurile pentru copiere.', 0 + 64, _Screen.Caption) + This.Log('[' + lcStatePrefix + '] esec lansare browser -> fallback manual') + open_default_app(lcTokenURL) && fara ?state -> pagina afiseaza codurile (retro-compat) + RETURN + ENDIF + + * --- Polling pick.php la 2s: timeout 10 minute, Esc = anulare --- + lcExitCode = '' + lnStartSec = SECONDS() + DO WHILE .T. + lnElapsed = SECONDS() - lnStartSec + IF lnElapsed < 0 + lnElapsed = lnElapsed + 86400 && trecere miezul noptii + ENDIF + IF lnElapsed >= 600 + lcExitCode = 'timeout' + EXIT + ENDIF + WAIT WINDOW 'Asteptare autorizare ANAF... Continuati in fereastra browserului: selectati certificatul si introduceti PIN-ul. (Esc = anulare)' NOWAIT + + lnStatus = 0 + lcResponse = '' + TRY + loHTTP = CREATEOBJECT('WinHttp.WinHttpRequest.5.1') + loHTTP.SetTimeouts(5000, 5000, 5000, 5000) + loHTTP.Open('POST', lcPickUrl, .F.) + loHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded') + loHTTP.Send('state=' + lcState) + lnStatus = loHTTP.Status + lcResponse = loHTTP.ResponseText + CATCH TO loExHTTP + * eroare retea tranzitorie -> continuam polling pana la timeout + ENDTRY + + IF lnStatus = 200 + loJson = NULL + TRY + loJson = nfjsonread(lcResponse) + CATCH TO loExJson + This.Log('[' + lcStatePrefix + '] eroare parsare JSON: ' + loExJson.Message) + ENDTRY + IF TYPE('loJson') = 'O' AND !ISNULL(loJson) + IF TYPE('loJson.error') <> 'U' + lcExitCode = 'anaf_error' + EXIT + ENDIF + IF TYPE('loJson.access_token') <> 'U' AND TYPE('loJson.refresh_token') <> 'U' + * Tokenuri primite - populare proprietati (fara valori de tokenuri in log) + This.cToken = loJson.access_token + This.cRefreshToken = loJson.refresh_token + This.dTokenGendate = DATE() + IF TYPE('loJson.expires_in') <> 'U' + This.dTokenExpdate = DATE() + INT(VAL(TRANSFORM(loJson.expires_in)) / 86400) + ELSE + This.dTokenExpdate = DATE() + 90 + ENDIF + lcExitCode = 'success' + EXIT + ENDIF + * {"status":"pending"} sau alt continut -> continuam polling + ENDIF + ENDIF + + * asteptare 2s cu verificare Esc la fiecare 0.5s + lnStep = 0 + DO WHILE lnStep < 4 + lnKey = INKEY(0.5) + IF lnKey = 27 && Esc + lcExitCode = 'esc' + EXIT + ENDIF + lnStep = lnStep + 1 + ENDDO + IF lcExitCode = 'esc' + EXIT + ENDIF + ENDDO + WAIT CLEAR + This.Log('[' + lcStatePrefix + '] iesire: ' + lcExitCode) + + DO CASE + CASE lcExitCode = 'success' + TRY + This.SaveToken() + AMESSAGEBOX('S-a generat token-ul eFactura, valabil pana la ' + DTOC(This.dTokenExpdate), 0 + 64, _Screen.Caption) + CATCH TO loExSave + * tokenul ramane in This.cToken; la reluarea operatiei va fi necesar PIN-ul din nou + AMESSAGEBOX('Tokenul a fost generat, dar salvarea in baza de date a esuat: ' + loExSave.Message + CHR(13) + ; + 'Reluati operatia Token nou sau contactati suportul ROA.', 0 + 48, _Screen.Caption) + ENDTRY + + CASE lcExitCode = 'esc' + AMESSAGEBOX('Ati anulat asteptarea. Daca ati introdus deja PIN-ul, autorizarea respectiva va fi ignorata; la reluare va trebui sa introduceti PIN-ul din nou.', 0 + 64, _Screen.Caption) + + CASE lcExitCode = 'timeout' + AMESSAGEBOX('Nu s-a primit tokenul in 10 minute. Se deschide pagina pentru completare manuala; puteti si relua operatia Token nou.', 0 + 48, _Screen.Caption) + open_default_app(lcTokenURL) + + CASE lcExitCode = 'anaf_error' + AMESSAGEBOX('Eroare la autorizarea ANAF: ' + TRANSFORM(NVL(loJson.error, '')) + '. Reluati operatia sau folositi completarea manuala (se deschide pagina care afiseaza codurile).', 0 + 48, _Screen.Caption) + open_default_app(lcTokenURL) + ENDCASE + + Endfunc && newToken * Actualizeaza data expirarii tokenului ANAF eFactura * Se apeleaza din formularul anaf_token.do_executa @@ -523,10 +702,11 @@ select a.*, cast(NULL as varchar2(1000)) as factura_detalii, 0 as modificat * tcMesaj (OUT) Local loHTTP As 'winHTTP.winHTTPrequest.5.1' - Local lcRefreshToken, lcResponse, lcURL, llSucces, loJson - llSucces = .F. + Local lcRefreshToken, lcResponse, lcURL, llSucces, loJson, loEx as Exception + llSucces = .T. lcRefreshToken = Alltrim(This.cRefreshToken) tcMesaj = '' + SET STEP ON If Empty(m.lcRefreshToken) tcMesaj = 'Completati Refresh Token' This.Log(m.tcMesaj) @@ -539,12 +719,21 @@ select a.*, cast(NULL as varchar2(1000)) as factura_detalii, 0 as modificat loHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") loHTTP.Send([refresh_token=] + m.lcRefreshToken) - CATCH - loHTTP = Createobject('MSXML2.XMLHTTP.6.0') - loHTTP.Open('POST', lcURL, .F.) - loHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") - loHTTP.Send([refresh_token=] + m.lcRefreshToken) + CATCH TO loEx + llSucces = .F. ENDTRY + + IF !m.llSucces OR TYPE('loHTTP') <> 'O' + TRY + loHTTP = Createobject('MSXML2.XMLHTTP.6.0') + loHTTP.Open('POST', lcURL, .F.) + loHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") + loHTTP.Send([refresh_token=] + m.lcRefreshToken) + CATCH TO loEx + llSucces = .F. + AMESSAGEBOX(loEx.Message,0,_screen.Caption) + ENDTRY + ENDIF llSucces = (TYPE('loHTTP') = 'O') IF m.llSucces @@ -578,7 +767,7 @@ select a.*, cast(NULL as varchar2(1000)) as factura_detalii, 0 as modificat Endif ELSE tcMesaj = 'Nu s-a regenerat token-ul! Status = ' + Transform(loHTTP.Status) + CRLF + m.lcResponse - This.Log(m.tcMesaj, 0 + 48, _Screen.Caption) + This.Log(m.tcMesaj) Endif Endif @@ -2154,7 +2343,7 @@ end; ENDIF IF m.llSucces - * Transformam raspunsul JSON într-un obiect FoxPro + * Transformam raspunsul JSON intr-un obiect FoxPro TRY loJson = nfjsonread(m.lcResponse) CATCH TO loEx @@ -2167,7 +2356,7 @@ end; * Verificam daca exista mesaje disponibile IF TYPE("loJson.mesaje") <> "U" - * Daca avem mesaje, le salvam într-un array + * Daca avem mesaje, le salvam intr-un array *!* laMesaje = loJson.mesaje *!* lnMesajeCount = ALEN(laMesaje, 1) @@ -2697,7 +2886,10 @@ select id, id_efactura, nr, articol, descriere, detalii, cantitate, um, pret, pr If m.tlShow Or Empty(m.lcToken) Or m.ldTokenExpDate <= Date() loFrmToken = Createobject("anaf_token", This) loFrmToken.Show(1) - If m.lcToken <> loServer.cToken + *!* 07.07.2026 + *!* dupa fluxul automat (newToken) datele sunt deja setate corect din expires_in + *!* (dTokenGendate = azi); suprascrierea cu +90 ramane doar pentru completarea manuala + If m.lcToken <> loServer.cToken And loServer.dTokenGendate <> Date() loServer.dTokenGendate = Date() loServer.dTokenExpdate = Date() + 90 Endif @@ -2719,15 +2911,23 @@ select id, id_efactura, nr, articol, descriere, detalii, cantitate, um, pret, pr Endproc && SaveToken +*!* 07.07.2026 +*!* newToken - deleaga la AnafeFacturaServer.newToken (implementare unica FR-7) +*!* pattern identic cu refreshToken: loServer = This.AnafeFacturaServer + * Intoarce tokenul de acces la ANAF (eFactura) daca este salvat sau obtine un nou token * Se apeleaza din formularul anaf_token.do_executa Function newToken - AMESSAGEBOX('Introduceti in calculator tokenul USB cu semnatura electronica' + Chr(13) + Chr(10) + ; - 'Se va deschide pagina ANAF de generare token. Introduceti PIN-ul pentru semnatura electronica.' + Chr(13) + Chr(10) + ; - 'Copiati codurile "Token" si "Refresh Token" afisate si completati-le in ROA.', 0 + 64, _Screen.Caption) - - lcURL = [https://romfast.ro/oauth2/] - open_default_app(m.lcURL) + LOCAL loServer + loServer = This.AnafeFacturaServer + * Asigura cTokenUrl populat din optiunile firmei (citit de GetToken din citeste_optiune) + loServer.GetToken() + loServer.newToken() + * Propagare proprietati actualizate catre ANAFeFactura (consistent cu getToken) + This.token = loServer.cToken + This.refresh_token = loServer.cRefreshToken + This.token_gendate = loServer.dTokenGendate + This.token_expdate = loServer.dTokenExpdate Endfunc * Actualizeaza data expirarii tokenului ANAF eFactura diff --git a/COMUN/programe/oexport.prg b/COMUN/programe/oexport.prg index 3efbb0e..dc40418 100644 --- a/COMUN/programe/oexport.prg +++ b/COMUN/programe/oexport.prg @@ -299,9 +299,12 @@ Define Class oExportConfig As wwConfig Endfunc && Report2File ************************************** INCEPUT : open_default_app + *!* 07.07.2026 + *!* open_default_app - intoarce .T./.F. dupa rezultatul ShellExecute (>32 = succes) + *!* apelantii existenti care ignora rezultatul nu sunt afectati Procedure OPEN_DEFAULT_APP Parameters tcNumeFisier - Local lcActiune + Local lcActiune, lnResult Declare Integer ShellExecute In shell32.Dll ; Integer hndWin, ; @@ -311,8 +314,9 @@ Define Class oExportConfig As wwConfig String cDir, ; Integer nShowWin lcActiune = "open" - ShellExecute(0, lcActiune, tcNumeFisier, "", "", 1) + lnResult = ShellExecute(0, lcActiune, tcNumeFisier, "", "", 1) + Return (m.lnResult > 32) Endproc && open_default_app ************************************** SFARSIT : open_default_app ************************************** INCEPUT : getExcelMask diff --git a/roacont.PJT b/roacont.PJT index 3d9e54959d738606dd13e6690f7e242e10feb8fb..76be18559268a00b612084156d484663b233a6b1 100644 GIT binary patch delta 9228 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 X@@GK)Ge-Q@eyQw;u|)k&+-dnAo^Lit delta 4962 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

i!bu$_jh5H#!+}rwQHwL(wXIl}f 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 delta 35234 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