diff --git a/clase/anaf_efactura.vc2 b/clase/anaf_efactura.vc2 index 5337032..5a067da 100644 --- a/clase/anaf_efactura.vc2 +++ b/clase/anaf_efactura.vc2 @@ -11989,11 +11989,12 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx" Anchor = 0, ; ControlSource = "crsFacturi.NrActROA", ; Format = "K", ; + InputMask = "99999999999999", ; Left = 72, ; Name = "txtNrAct", ; TabIndex = 2, ; Top = 397, ; - Width = 100, ; + Width = 110, ; ZOrderSet = 14 *< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" /> diff --git a/programe/coada_contabilizare_ef.prg b/programe/coada_contabilizare_ef.prg index b893d47..5078756 100644 --- a/programe/coada_contabilizare_ef.prg +++ b/programe/coada_contabilizare_ef.prg @@ -107,7 +107,7 @@ DEFINE CLASS CoadaContabilizareEF AS Custom RETURN '' ENDPROC - *!* Numarul de document dedus din numarul eFacturii: ultimele 12 cifre din primul grup de cifre + *!* Numarul de document dedus din numarul eFacturii: ultimele 14 cifre din primul grup de cifre *!* de la dreapta ('ZZT-A1-C' -> 1, 'F1234' -> 1234, 'FACTURA' -> 0). 0 inseamna ca nu s-a putut deduce. PROCEDURE NrActDinNumarAct LPARAMETERS tcNumarAct @@ -126,8 +126,7 @@ DEFINE CLASS CoadaContabilizareEF AS Custom ENDIF ENDIF ENDFOR - *!* ultimele 12 cifre, cat se afiseaza in ROA - RETURN INT(VAL(RIGHT(m.lcCifre, 12))) + RETURN INT(VAL(RIGHT(m.lcCifre, 14))) ENDPROC *!* Textul lipsurilor facturii al carei cursor de linii e deschis (tcAliasDetalii), calculat diff --git a/utile/Teste/efactura_import/test_rezolvare_partener_ef.prg b/utile/Teste/efactura_import/test_rezolvare_partener_ef.prg index 0323f69..0085a0f 100644 --- a/utile/Teste/efactura_import/test_rezolvare_partener_ef.prg +++ b/utile/Teste/efactura_import/test_rezolvare_partener_ef.prg @@ -128,16 +128,16 @@ TRY LOCATE FOR id = 5 DO PrTest WITH 'randul 5 (numar fara cifre) BLOCAT', eligibil_lot = 0 AND ales = 0 AND 'numarul documentului' $ motiv_lot - DO PrLogLocal WITH '=== NrActDinNumarAct: primul grup de cifre de la dreapta, ultimele 12 ===' + DO PrLogLocal WITH '=== NrActDinNumarAct: primul grup de cifre de la dreapta, ultimele 14 ===' DO PrTest WITH 'ZZT-A1-C -> 1', loCoada.NrActDinNumarAct('ZZT-A1-C') = 1 DO PrTest WITH 'ZZT-A10-C -> 10', loCoada.NrActDinNumarAct('ZZT-A10-C') = 10 DO PrTest WITH 'F1234 -> 1234 (neschimbat fata de regula veche)', loCoada.NrActDinNumarAct('F1234') = 1234 DO PrTest WITH '2026-000123 -> 123 (neschimbat)', loCoada.NrActDinNumarAct('2026-000123') = 123 DO PrTest WITH 'FACTURA (fara cifre) -> 0', loCoada.NrActDinNumarAct('FACTURA') = 0 DO PrTest WITH 'gol -> 0', loCoada.NrActDinNumarAct('') = 0 - DO PrTest WITH 'RO20709900053983 -> 709900053983 (14 cifre, ultimele 12)', loCoada.NrActDinNumarAct('RO20709900053983') = 709900053983 - DO PrTest WITH '017524993734246 -> 524993734246 (15 cifre, ultimele 12)', loCoada.NrActDinNumarAct('017524993734246') = 524993734246 - DO PrTest WITH '1021024019453 -> 21024019453 (13 cifre, ultimele 12, zeroul din fata cade)', loCoada.NrActDinNumarAct('1021024019453') = 21024019453 + DO PrTest WITH 'RO20709900053983 -> 20709900053983 (14 cifre)', loCoada.NrActDinNumarAct('RO20709900053983') = 20709900053983 + DO PrTest WITH '017524993734246 -> 17524993734246 (15 cifre, ultimele 14)', loCoada.NrActDinNumarAct('017524993734246') = 17524993734246 + DO PrTest WITH '1021024019453 -> 1021024019453 (13 cifre, neschimbat)', loCoada.NrActDinNumarAct('1021024019453') = 1021024019453 DO PrTest WITH '259105268697 -> 259105268697 (12 cifre, neschimbat)', loCoada.NrActDinNumarAct('259105268697') = 259105268697 USE IN crsFactTest diff --git a/utile/Teste/efactura_import/test_splitter_ef.prg b/utile/Teste/efactura_import/test_splitter_ef.prg index d09af57..3584e27 100644 --- a/utile/Teste/efactura_import/test_splitter_ef.prg +++ b/utile/Teste/efactura_import/test_splitter_ef.prg @@ -112,6 +112,7 @@ distribuie N(1), id_tip N(10) null, id_articol N(20) null, id_gestiune N(20) nul loForm = CREATEOBJECT('frm_import_efactura', .T.) loForm.WindowType = 0 DO PrTest WITH 'formular instantiat', TYPE('loForm') == 'O' + DO PrTest WITH 'txtNrAct afiseaza 14 cifre fara *', TRANSFORM(12345678901234, loForm.txtNrAct.InputMask) == '12345678901234' AND loForm.txtNrAct.Width >= 110 loForm.Show() lnTopInitial = loForm.Sfsplitterv1.Top DO PrTest WITH 'T1 grdFacturi.Height = 292 (design)', loForm.grdFacturi.Height = 292, 'obtinut=' + TRANSFORM(loForm.grdFacturi.Height) diff --git a/utile/Teste/efactura_import/test_ui_nract14.prg b/utile/Teste/efactura_import/test_ui_nract14.prg new file mode 100644 index 0000000..b02bd67 --- /dev/null +++ b/utile/Teste/efactura_import/test_ui_nract14.prg @@ -0,0 +1,110 @@ +* test_ui_nract14.prg - afisare txtNrAct (frm_import_efactura) cu 14 cifre, nu '******'. +* Rulare: powershell -ExecutionPolicy Bypass -File test_ui_nract14.ps1 (captura PrintWindow prin harness) +PUBLIC gcUILog, gcSyncDir +gcUILog = 'D:\ROA\ROACONT\COMUN\utile\Teste\efactura_import\test_ui_nract14_log.txt' +gcSyncDir = 'D:\ROA\ROACONT\COMUN\utile\Teste\efactura_import\uisync_nract14\' +SET SAFETY OFF +SET TALK OFF +SET DELETED ON +SET EXACT ON +SET CENTURY ON +SET DATE DMY +SET NULLDISPLAY TO '' +CLOSE DATABASES +STRTOFILE('START ' + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog) +ON ERROR DO TErr WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() +ON SHUTDOWN QUIT +SET PROCEDURE TO 'D:\ROA\ROACONT\COMUN\utile\Teste\mock_amessagebox.prg' ADDITIVE +SET PROCEDURE TO ('D:\ROA\ROACONT\COMUN\utile\Teste\ui_harness.prg') ADDITIVE +DO ('D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg') WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' +IF gnHandle <= 0 + DO HarnessLog WITH 'FAIL conectare' + DO HarnessDone WITH 'done FAIL' + QUIT +ENDIF +SET PROCEDURE TO import_efactura.prg ADDITIVE +SET PROCEDURE TO recunoastere_articol_ef.prg ADDITIVE +SET PROCEDURE TO coada_contabilizare_ef.prg ADDITIVE +TEXT TO lcSchemaFacturi NOSHOW +ales N(1), id N(20), id_fact N(20), data_act D, data_scad D, numar_act C(30), xfurnizor C(200), xclient C(200), partener C(200), id_incarcare C(36), id_descarcare c(36) null, tip_mesaj_raspuns C(50) null,mesaj_raspuns C(250) null, data_raspuns D null, trimis N(1) null, data_trimis T null, cod_fiscal C(30) null, cod_fiscal_emitent C(30) null, cod_fiscal_beneficiar C(30) null, detalii M null, total_fara_tva N(16,4), total_tva N(16,4), total_tva_ron N(16,4), total_cu_tva N(16,4), discount_fara_tva N(16,4), taxe_fara_tva N(16,4), valoare_fara_tva N(16,4), total_de_plata N(16,4), nume_valuta C(5), test N(1) null, jtotctva N(16,4) null, descriere M null, detalii_plata M null, diferenta N(16,4) null, procesat N(1), SerieActRoa V(10) Null, NrActRoa N(14) Null, IdPartRoa N(10) Null, PartenerRoa V(100) null, codFiscalROA V(20), idValutaROA N(5) null,numeValutaROA V(5) null, cursROA N(16,6) null,Cont c(4) Null,ACont c(4) Null,TVAIncasare N(1),Fdoc V(20) null,Id_Fdoc N(5) Null,Nrord V(100) null,Id_Lucrare I Null,Contract V(100) Null,Id_Ctr I Null,Sectie V(100) null,Id_Sectie I Null,dst_chlt V(100) null, Id_venchelt I NUll, nresp V(100) null, Id_responsabil I NUll , completat N(1), completatdet N(1), creditnote N(1), explicatiaROA V(100) null, explicatia4ROA V(100) null, explicatia5ROA V(100) null, eligibil_lot N(1), motiv_lot V(120), eroare_lot N(1), de_completat V(80), gest c(1), part_inactiv N(1) +ENDTEXT + +IF USED('crsFacturi') + USE IN crsFacturi +ENDIF +CREATE CURSOR crsFacturi (&lcSchemaFacturi) +INSERT INTO crsFacturi (ales, id, id_fact, data_act, numar_act, xfurnizor, partener, cod_fiscal, ; + total_cu_tva, nume_valuta, procesat, completat, completatdet, creditnote, detalii, ; + eligibil_lot, motiv_lot, eroare_lot, de_completat, gest) ; + VALUES (0, 1, 0, DATE(), 'TEST-SPL-1', 'FIXTURA SPLITTER 1', 'FIXTURA SPLITTER 1', 'RO99970001', ; + 100, 'RON', 0, 0, 0, 0, 'x', 1, '', 0, '1 cont', '') + +TEXT TO lcSchemaDetalii NOSHOW +distribuie N(1), id_tip N(10) null, id_articol N(20) null, id_gestiune N(20) null, cont C(4) null, acont C(4) null, sursa_cont V(10) null, id N(20), id_efactura N(20), nr N(5), articol V(250), descriere V(250), detalii M, cantitate N(18,6), um V(20), um_iso V(50), um_roa V(50), pret N(20,6), proctva N(7,2), tiptva V(2), valoarefaratva N(20,6), discountfaratva N(20,6), in_stoc N(1), articol_roa V(250), codmat_roa V(50), codbare V(50), codclient V(100), codfurnizor V(100), codcpv V(50), codnc8 V(50), nume_gestiune V(50), cgest V(20), tva N(20,6), pretv N(20,6), tvav N(20,6), pretvtva N(20,6), explicatia V(100), explicatia4 V(100), explicatia5 V(100) +ENDTEXT +IF USED('crsDetaliiFacturi') + USE IN crsDetaliiFacturi +ENDIF +CREATE CURSOR crsDetaliiFacturi (&lcSchemaDetalii) +* rand mut pe id_efactura=1, ca actualizeaza_grid2 sa gaseasca detaliile deja in cursor (fara poFacturiDetalii/Oracle) +INSERT INTO crsDetaliiFacturi (id, id_efactura, nr, articol) VALUES (100, 1, 1, 'FIXTURA') + +CREATE CURSOR cTipArticoleP (id I, in_stoc N(1), tip V(50), cont V(4), ordine I) +INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (0, 'Nedefinit','', 0, 0) +SELECT cTipArticoleP +GO TOP IN cTipArticoleP +INDEX ON ordine TAG ordine + +CREATE CURSOR cTipArticoleE (id I, in_stoc N(1), tip V(50), cont V(4), ordine I) +INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (0, 'Nedefinit','', 0, 0) +SELECT cTipArticoleE +GO TOP IN cTipArticoleE +INDEX ON ordine TAG ordine + +SELECT id, tip, cont, in_stoc, ordine FROM cTipArticoleP ORDER BY ordine INTO CURSOR cTip +SELECT cTip +INDEX ON id TAG id + +goExecutor.oExecuta([select distinct nume_gestiune,cgest,id_gestiune,nr_pag,cont from vgest_gestiuni_util where inactiv = 0 and id_util = ] + ALLTRIM(STR(m.gnIdUtil)), 'cGestiuni') +SELECT cGestiuni +APPEND BLANK +INDEX ON id_gestiune TAG id_gest +SELECT CAST(ALLTRIM(nume_gestiune) + '-' + ALLTRIM(NVL(cgest, '')) AS V(50)) AS nume_gestiune, id_gestiune FROM cGestiuni ORDER BY nume_gestiune INTO CURSOR cGestiuni2 + +goExecutor.oExecuta("select cod_um_iso, um_iso from syn_vnom_um_iso", 'cUMISO') +SELECT cUMISO +INDEX ON cod_um_iso TAG cod_um_iso + +goExecutor.oExecuta("select id, um, cod_um_iso, um_iso from vnom_um", 'cUM') +SELECT cUM +INDEX ON id TAG id +SELECT crsFacturi +GO TOP +LOCAL loForm +loForm = CREATEOBJECT('frm_import_efactura', .T.) +loForm.WindowType = 0 +loForm.Show() +loForm.WindowState = 2 +DO HarnessLog WITH 'ClassLibrary=' + loForm.ClassLibrary + ' Width=' + TRANSFORM(loForm.txtNrAct.Width) + ' Mask=' + loForm.txtNrAct.InputMask + ' CS=' + loForm.txtNrAct.ControlSource +DO Pas WITH loForm, 12345678901234, 0, '14 cifre' +DO Pas WITH loForm, 1021024019453, 1, '13 cifre' +DO Pas WITH loForm, 259105268697, 2, 'scurt' +loForm.Release() +DO HarnessDone WITH 'done' +QUIT + +PROCEDURE Pas + LPARAMETERS toF, tnVal, tnPas, tcEt + SELECT crsFacturi + GO TOP + REPLACE NrActROA WITH tnVal IN crsFacturi + toF.txtNrAct.Refresh() + toF.Refresh() + DO HarnessLog WITH tcEt + ': Value=' + TRANSFORM(toF.txtNrAct.Value) + ' Text=[' + toF.txtNrAct.Text + '] Width=' + TRANSFORM(toF.txtNrAct.Width) + DO HarnessStep WITH tnPas, tcEt +ENDPROC + +PROCEDURE TErr + LPARAMETERS tnE, tcM, tcP, tnL + DO HarnessLog WITH 'EROARE ' + TRANSFORM(tnE) + ' ' + tcM + ' ' + tcP + ':' + TRANSFORM(tnL) +ENDPROC diff --git a/utile/Teste/efactura_import/test_ui_nract14.ps1 b/utile/Teste/efactura_import/test_ui_nract14.ps1 new file mode 100644 index 0000000..5ec7dcd --- /dev/null +++ b/utile/Teste/efactura_import/test_ui_nract14.ps1 @@ -0,0 +1,8 @@ +$ErrorActionPreference = 'Stop' +$Teste = $PSScriptRoot +& (Join-Path (Split-Path $Teste -Parent) 'vfp_ui_harness.ps1') ` + -TestPrg (Join-Path $Teste 'test_ui_nract14.prg') ` + -Steps @('14cifre','13cifre','scurt') ` + -ShotsDir (Join-Path $Teste 'screenshots_nract14') ` + -SyncDir (Join-Path $Teste 'uisync_nract14') ` + -ReadyTimeoutSec 300 -StepTimeoutSec 120