achizitie import: diferenta (randul D) doar din documentele participante la pret; randul D manual pastrat la resincronizare; test e2e; stergere clasa legacy import_nir + ajustari layout (IDE)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KXsyJZBek1e9RvyLAQkoCx
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,765 @@
|
|||||||
|
* test_runda11_diferenta_participa.prg
|
||||||
|
* Verifica RUNDA 11 (COMUN\clase\ointroduceri.vcx, clasa import_nota) - vezi
|
||||||
|
* docs\diff_runda11_diferenta_participa_la_pret.patch:
|
||||||
|
* 1. recalc_diferente/do_calculeaza_diferente: baza pt. randul D = SUMA randurilor B/S care
|
||||||
|
* PARTICIPA la pret (participa_valuta, excluzand 4426/4428 si randurile fara explicatie TVA),
|
||||||
|
* NU mai e nbaza_lei (totalul TUTUROR documentelor). O secundara debifata "Participa la pret"
|
||||||
|
* nu mai intra in diferenta.
|
||||||
|
* 2. Randul D cu mod_manual=1 (suma editata manual in grid) nu se mai rescrie/sterge la
|
||||||
|
* sincronizare (ca randurile T manuale).
|
||||||
|
*
|
||||||
|
* Scenariul lui Marius: FACTURA 1000 EUR curs 5.23 (5230 lei), TVA 21%, participa la pret +
|
||||||
|
* DVI (BIROUL VAMAL) 500 lei, "Participa la pret" DEBIFAT + UN articol cant=1, pret valuta
|
||||||
|
* factura 1000 EUR (flux real: do_adauga_articol, apoi GridArt.cCant/cPretFactura ca la tastare).
|
||||||
|
*
|
||||||
|
* Rulare:
|
||||||
|
* powershell -ExecutionPolicy Bypass -File test_runda11_diferenta_participa.ps1
|
||||||
|
|
||||||
|
SET SAFETY OFF
|
||||||
|
SET TALK OFF
|
||||||
|
SET DELETED ON
|
||||||
|
SET EXACT ON
|
||||||
|
SET CENTURY ON
|
||||||
|
SET DATE DMY
|
||||||
|
SET DECIMALS TO 4
|
||||||
|
SET NULLDISPLAY TO ''
|
||||||
|
CLOSE DATABASES
|
||||||
|
|
||||||
|
PUBLIC gcUILog, gcSyncDir
|
||||||
|
gcUILog = "D:\ROA\ROAGEST\COMUN\utile\Teste\achizitie_import\test_runda11_diferenta_participa_log.txt"
|
||||||
|
gcSyncDir = "D:\ROA\ROAGEST\COMUN\utile\Teste\achizitie_import\uisync_runda11\"
|
||||||
|
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13)+CHR(10), gcUILog)
|
||||||
|
|
||||||
|
ON ERROR DO R11Err WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
||||||
|
ON SHUTDOWN QUIT
|
||||||
|
|
||||||
|
TRY
|
||||||
|
LOCAL gcAppPath, lcPath
|
||||||
|
gcAppPath = "D:\ROA\ROAGEST\"
|
||||||
|
SET DEFAULT TO (gcAppPath)
|
||||||
|
|
||||||
|
lcPath = gcAppPath + 'Date;' + gcAppPath + 'Include;' + gcAppPath + 'FERESTRE;' + ;
|
||||||
|
gcAppPath + 'GRAFICE;' + gcAppPath + 'CLASE;' + gcAppPath + 'MENIURI;' + ;
|
||||||
|
gcAppPath + 'PROGRAME;' + gcAppPath + 'RAPOARTE;' + gcAppPath + 'COMUN;' + ;
|
||||||
|
gcAppPath + 'COMUN\CLASE;' + gcAppPath + 'COMUN\FERESTRE;' + gcAppPath + 'COMUN\PROGRAME;' + ;
|
||||||
|
gcAppPath + 'COMUN\GRAFICE;' + gcAppPath + 'COMUN\RAPOARTE;' + gcAppPath + 'COMUN\MENIURI;' + ;
|
||||||
|
gcAppPath + 'COMUN\UTILE\GRIDEXTRAS;' + gcAppPath + 'COMUN\UTILE\CTL32;' + ;
|
||||||
|
gcAppPath + 'COMUN\UTILE\HPDF;' + gcAppPath + 'COMUN\UTILE\HPDF\REPORTOUTPUT;' + ;
|
||||||
|
gcAppPath + 'COMUN\UTILE\WEB;' + gcAppPath + 'COMUN\UTILE\EXCEL;' + ;
|
||||||
|
ADDBS(SUBSTR(gcAppPath,1,RAT([\],gcAppPath,2)))+[COMUNROA\]
|
||||||
|
SET PATH TO &lcPath ADDITIVE
|
||||||
|
DO R11Log WITH 'SET PATH OK'
|
||||||
|
|
||||||
|
*----- CLASE -----
|
||||||
|
SET CLASSLIB TO (gcAppPath + "comun\clase\appwiz") ADDITIVE
|
||||||
|
SET CLASSLIB TO GESTIUNI ADDITIVE
|
||||||
|
SET CLASSLIB TO CAUT ADDITIVE
|
||||||
|
SET CLASSLIB TO BAZA ADDITIVE
|
||||||
|
SET CLASSLIB TO comun ADDITIVE
|
||||||
|
SET CLASSLIB TO accessibility.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO messagebox ADDITIVE
|
||||||
|
SET CLASSLIB TO registry ADDITIVE
|
||||||
|
SET CLASSLIB TO cauta_alfa_forms.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO DECABAZA ADDITIVE
|
||||||
|
SET CLASSLIB TO onomenclatoare ADDITIVE
|
||||||
|
SET CLASSLIB TO stocuri.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO rulaje.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO ointroduceri ADDITIVE
|
||||||
|
SET CLASSLIB TO ointroduceri_web ADDITIVE
|
||||||
|
SET CLASSLIB TO ointroduceri_depozit ADDITIVE
|
||||||
|
SET CLASSLIB TO overificari ADDITIVE
|
||||||
|
SET CLASSLIB TO ferestre_oracle ADDITIVE
|
||||||
|
SET CLASSLIB TO ferestre_cere_date.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO configurare.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO serii_numere.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO omodificari.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO ocompensari.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO caut_ora ADDITIVE
|
||||||
|
SET CLASSLIB TO onote_contabile ADDITIVE
|
||||||
|
SET CLASSLIB TO otoolbar ADDITIVE
|
||||||
|
SET CLASSLIB TO bon_fisc ADDITIVE
|
||||||
|
SET CLASSLIB TO onom_articole ADDITIVE
|
||||||
|
SET CLASSLIB TO onom_retete ADDITIVE
|
||||||
|
SET CLASSLIB TO orapoarte ADDITIVE
|
||||||
|
SET CLASSLIB TO orapoarte_gestiuni ADDITIVE
|
||||||
|
SET CLASSLIB TO orapoarte_parametri ADDITIVE
|
||||||
|
SET CLASSLIB TO ONOM_CURS ADDITIVE
|
||||||
|
SET CLASSLIB TO ctl32_statusbar_fals.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO ctl32_common.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO ctl32_structs.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO ctl32_progressbar.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO ctl32_balloontip.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO ocriterii.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO oavize.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO onomenclatoare2 ADDITIVE
|
||||||
|
SET CLASSLIB TO wwdialogs.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO oimportxml.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO excelxml.vcx ADDITIVE
|
||||||
|
SET CLASSLIB TO orapoarte_obinv.vcx ADDITIVE
|
||||||
|
DO R11Log WITH 'SET CLASSLIB OK'
|
||||||
|
|
||||||
|
*----- PROCEDURI (mock amessagebox + mock cauta_nom_articole PRIMELE, ui_harness la final) -----
|
||||||
|
SET PROCEDURE TO PROCEDURI
|
||||||
|
SET PROCEDURE TO "D:\ROA\ROAGEST\COMUN\utile\Teste\mock_amessagebox.prg" ADDITIVE
|
||||||
|
SET PROCEDURE TO "D:\ROA\ROAGEST\COMUN\utile\Teste\mock_cauta_nom_articole.prg" ADDITIVE
|
||||||
|
SET PROCEDURE TO acces_meniu ADDITIVE
|
||||||
|
SET PROCEDURE TO cauta_alfa ADDITIVE
|
||||||
|
SET PROCEDURE TO pmenu ADDITIVE
|
||||||
|
SET PROCEDURE TO proceduri_comune ADDITIVE
|
||||||
|
SET PROCEDURE TO quitapp ADDITIVE
|
||||||
|
SET PROCEDURE TO init_program ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_listari.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_configurare.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_articole.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_retete.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO orapoarte.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO mesaje ADDITIVE
|
||||||
|
SET PROCEDURE TO oserii_numere.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oexport.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO wwConfig.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO proceduri_rapoarte.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO OPROCEDURI_CURS.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO validare.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO GENCURSOR.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO OPROCEDURI_COMUNE.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO OINIT_OPTIUNI.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO updateserver.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oinainte_de.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO ooperatii_comune.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO Ocompensari.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO OPROCEDURI_aMS.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_rulaje ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_stocuri ADDITIVE
|
||||||
|
SET PROCEDURE TO OINTRODUCERI ADDITIVE
|
||||||
|
SET PROCEDURE TO oHeader.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO proceduri_excel.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO onomenclatoare.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO osecurity ADDITIVE
|
||||||
|
SET PROCEDURE TO ocautare ADDITIVE
|
||||||
|
SET PROCEDURE TO orefaceri ADDITIVE
|
||||||
|
SET PROCEDURE TO ofacturare_comun.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO ofacturare_stoc.PRG ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_casademarcat ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_casa_marcat_e500 ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_casa_marcat_mp500 ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_util.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO wwxmlhttp.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO ini.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO odocumente.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO regex.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO wwutils.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO inchidere_k ADDITIVE
|
||||||
|
SET PROCEDURE TO iniacces.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oupdate.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO procese.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO version.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO xmlaccess.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO xmlparser.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO filebringer.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO wwcodeupdate.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO wwhttp.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO xdate.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO ofacturare.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_obinv.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO oproceduri_facturare.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO email.prg ADDITIVE
|
||||||
|
SET PROCEDURE TO "D:\ROA\ROAGEST\COMUN\utile\Teste\ui_harness.prg" ADDITIVE
|
||||||
|
DO R11Log WITH 'SET PROCEDURE OK'
|
||||||
|
|
||||||
|
*----- Globale -----
|
||||||
|
PUBLIC gnPc, gnPval, gnPcant, gnPpret, gnPPretval, gnPCurs, gnPVal, gnPPretV, gnPPretVal
|
||||||
|
STORE 2 TO gnPc, gnPval, gnPVal
|
||||||
|
gnPcant = 3
|
||||||
|
STORE 4 TO gnPpret, gnPPretval, gnPPretVal, gnPPretV, gnPCurs
|
||||||
|
PUBLIC gl406, gcS, gnAn, gnLuna, gnIdFirma, gnIdSucursala, gcAcces, gcFirma
|
||||||
|
gl406 = .T.
|
||||||
|
gcS = 'CONTAFIN'
|
||||||
|
gnAn = YEAR(DATE())
|
||||||
|
gnLuna = MONTH(DATE())
|
||||||
|
gnIdFirma = 110
|
||||||
|
gnIdSucursala = 110
|
||||||
|
gcAcces = "1;2;3;4;5;6;7;8;"
|
||||||
|
gcFirma = gcS
|
||||||
|
PUBLIC nror(65000)
|
||||||
|
|
||||||
|
PUBLIC gnButon
|
||||||
|
STORE 2 TO gnButon
|
||||||
|
PUBLIC gcMockArtCodmat
|
||||||
|
gcMockArtCodmat = ''
|
||||||
|
|
||||||
|
PUBLIC goExecutor, goApp
|
||||||
|
goExecutor = CREATEOBJECT('dummyexecutor')
|
||||||
|
goApp = CREATEOBJECT('dummyapp')
|
||||||
|
|
||||||
|
*----- poAct: antetul notei; dialogul mosteneste din el la Init -----
|
||||||
|
PUBLIC poAct
|
||||||
|
poAct = CREATEOBJECT('Custom')
|
||||||
|
poAct.AddProperty('nume_val', '')
|
||||||
|
poAct.AddProperty('curs', 5.23)
|
||||||
|
poAct.AddProperty('proc_tva', 1.21)
|
||||||
|
poAct.AddProperty('nnir', 0)
|
||||||
|
poAct.AddProperty('id_valuta', 978)
|
||||||
|
poAct.AddProperty('id_fdoc', 1)
|
||||||
|
poAct.AddProperty('fdoc', 'Factura')
|
||||||
|
poAct.AddProperty('id_partc', 500)
|
||||||
|
poAct.AddProperty('partc', 'FURNIZOR ANTET SRL')
|
||||||
|
poAct.AddProperty('serie_act', '')
|
||||||
|
poAct.AddProperty('dataact', DATE())
|
||||||
|
poAct.AddProperty('tva_incasare', 0)
|
||||||
|
poAct.AddProperty('id_set', 1)
|
||||||
|
poAct.AddProperty('id_gestin', 1)
|
||||||
|
|
||||||
|
*----- jtva_coloane2 / saft_taxtable: perechi reale 21% (ca in test_runda7_diferente). -----
|
||||||
|
IF USED('jtva_coloane2')
|
||||||
|
USE IN ('jtva_coloane2')
|
||||||
|
ENDIF
|
||||||
|
CREATE CURSOR jtva_coloane2 (ordine N(8), id_jtva_coloana N(14), denumire C(100), ;
|
||||||
|
jc N(1), jv N(1), afisat N(1), coloana_jc C(20), coloana_jv C(20), cota_tva N(6,2), id_tva N(14))
|
||||||
|
INSERT INTO jtva_coloane2 VALUES (0, 0, '', 0, 0, 1, '', '', 0, 0)
|
||||||
|
INSERT INTO jtva_coloane2 VALUES (1, 208, 'ACH. INT. 21%', 1, 0, 1, 'RO21B', 'RO21T', 21, 209)
|
||||||
|
INSERT INTO jtva_coloane2 VALUES (2, 209, 'TVA ACH. INT. 21%', 1, 0, 1, 'RO21T', '', 21, 0)
|
||||||
|
INSERT INTO jtva_coloane2 VALUES (3, 220, 'ACH. IMP. 21%', 1, 0, 1, 'FO21B', 'FO21T', 21, 221)
|
||||||
|
INSERT INTO jtva_coloane2 VALUES (4, 221, 'TVA ACH. IMP. 21%', 1, 0, 1, 'FO21T', '', 21, 0)
|
||||||
|
|
||||||
|
IF USED('saft_taxtable')
|
||||||
|
USE IN ('saft_taxtable')
|
||||||
|
ENDIF
|
||||||
|
CREATE CURSOR saft_taxtable (taxname C(250) NULL, typename C(250) NULL, taxcode N(6) NULL, ;
|
||||||
|
taxtype N(3) NULL, descriere C(250) NULL, tip C(100) NULL, descriere_tip C(250) NULL, ;
|
||||||
|
procent_taxa N(7,2) NULL, procent_prorata N(7,2) NULL, inactiv N(1) NULL, tva N(1) NULL, ;
|
||||||
|
wht N(1) NULL, tva_achizitii N(1) NULL, tva_livrari N(1) NULL)
|
||||||
|
INDEX ON taxcode TAG taxcode
|
||||||
|
INSERT INTO saft_taxtable (taxname, taxcode, descriere, procent_taxa, tva, wht, tva_achizitii, tva_livrari) ;
|
||||||
|
VALUES ('', 0, '', 0, 1, 1, 1, 1)
|
||||||
|
INSERT INTO saft_taxtable (taxname, taxcode, descriere, procent_taxa, tva, wht, tva_achizitii, tva_livrari) ;
|
||||||
|
VALUES ('301104-Achizitii de bunuri si servicii taxabile cu cota de 21%, altele decat importurile si cele supuse masurilor de simplificare', 301104, '', 21, 1, 0, 1, 0)
|
||||||
|
INSERT INTO saft_taxtable (taxname, taxcode, descriere, procent_taxa, tva, wht, tva_achizitii, tva_livrari) ;
|
||||||
|
VALUES ('301204-Import de bunuri cota 21%', 301204, '', 21, 1, 0, 1, 0)
|
||||||
|
|
||||||
|
DO CreeazaIntrodc WITH 'introdc'
|
||||||
|
DO CreeazaIntrodc WITH 'introdc_sablon'
|
||||||
|
INSERT INTO introdc_sablon (scd, scc, cu_tva, ordine, id_set, participa_valuta, tip_rand, ;
|
||||||
|
id_jtva_coloana, ptva, explicatie_tva) ;
|
||||||
|
VALUES ('371', '401', 1, 1, 1, .T., 'B', 208, 21, 'ACH. INT. 21%')
|
||||||
|
INSERT INTO introdc_sablon (scd, scc, cu_tva, ordine, id_set, participa_valuta, tip_rand, ;
|
||||||
|
id_jtva_coloana, ptva, explicatie_tva) ;
|
||||||
|
VALUES ('4426', '401', 1, 2, 1, .T., 'T', 209, 21, 'TVA ACH. INT. 21%')
|
||||||
|
GO TOP IN introdc_sablon
|
||||||
|
|
||||||
|
DO CreeazaRulTemp
|
||||||
|
INSERT INTO rul_temp (denumire, codmat, cant, pret, pret_lei, cont, cota_tva) ;
|
||||||
|
VALUES ('PLACEHOLDER', 'PH', 1, 1, 1, '371', 21)
|
||||||
|
|
||||||
|
*-- F1 (ointroduceri.prg): index ord_doc INAINTE de CREATEOBJECT - vezi docs/testare-ui-vfp.md capcana p.
|
||||||
|
SELECT introdc
|
||||||
|
INDEX ON Str(Nvl(nr_doc,0),8) + Icase(tip_rand='B','1', tip_rand='S','2', tip_rand='T','3', tip_rand='D','4', '5') + Padr(Nvl(scd,''),10) TAG ord_doc
|
||||||
|
SET ORDER TO ord_doc
|
||||||
|
|
||||||
|
DO R11Log WITH 'cursoare pregatite, CREATEOBJECT(import_nota, .F.) - lIntern=.F. (import)'
|
||||||
|
PUBLIC goObj
|
||||||
|
goObj = CREATEOBJECT('IMPORT_nota', .F.)
|
||||||
|
IF VARTYPE(goObj) <> 'O'
|
||||||
|
DO R11Log WITH 'FAIL: instantiere import_nota'
|
||||||
|
DO HarnessDone WITH 'done-error'
|
||||||
|
QUIT
|
||||||
|
ENDIF
|
||||||
|
goObj.lDialogAratat = .T.
|
||||||
|
goObj.oact = poAct
|
||||||
|
goObj.WindowType = 0
|
||||||
|
goObj.Visible = .T.
|
||||||
|
goObj.Show()
|
||||||
|
goObj.WindowState = 2
|
||||||
|
DOEVENTS FORCE
|
||||||
|
|
||||||
|
SELECT rul_temp
|
||||||
|
ZAP
|
||||||
|
goObj.gridart.Refresh()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
|
||||||
|
*========================= DOC 1 (principal, participa) + DOC 2 (DVI, NU participa) =========================
|
||||||
|
PUBLIC goDlg, goT
|
||||||
|
DO AdaugaDocPrincipal
|
||||||
|
DO AdaugaDocSecundarNeparticipant
|
||||||
|
|
||||||
|
DO R11Log WITH 'dump introdc dupa cele 2 documente:'
|
||||||
|
DO DumpIntrodc
|
||||||
|
|
||||||
|
DO HarnessStep WITH 0, 'dupa 2 documente (FACTURA participa + DVI NU participa): introdc=' + TRANSFORM(RECCOUNT_ACTIVE('introdc')) + ' randuri'
|
||||||
|
|
||||||
|
*========================= ARTICOL (flux real: do_adauga_articol + tastare cant/pret in grid) =========================
|
||||||
|
gcMockArtCodmat = 'ART-BULD-212'
|
||||||
|
TRY
|
||||||
|
goObj.do_adauga_articol()
|
||||||
|
CATCH TO loExcAdd
|
||||||
|
DO R11Log WITH 'EROARE do_adauga_articol ' + TRANSFORM(loExcAdd.ErrorNo) + ' [' + loExcAdd.Message + '] in ' + loExcAdd.Procedure + ':' + TRANSFORM(loExcAdd.LineNo)
|
||||||
|
ENDTRY
|
||||||
|
DOEVENTS FORCE
|
||||||
|
|
||||||
|
LOCAL lnRecArt
|
||||||
|
SELECT rul_temp
|
||||||
|
LOCATE FOR ALLTRIM(codmat) == 'ART-BULD-212'
|
||||||
|
IF !FOUND()
|
||||||
|
DO R11Log WITH 'FAIL: BULDOEXCAVATOR nu a fost adaugat de do_adauga_articol()'
|
||||||
|
ELSE
|
||||||
|
lnRecArt = RECNO()
|
||||||
|
*-- do_adauga_articol() nu completeaza cant/pret (ramane in seama utilizatorului, tastate
|
||||||
|
*-- in grid) - REPLACE direct, ca in restul suitei (test_scenariu_dvi_complet, test_runda7_diferente):
|
||||||
|
*-- apelul direct al metodelor de grid GotFocus/LostFocus e nefiabil headless (Thisform.nOldVal
|
||||||
|
*-- ramane netipizat fara focus real -> eroare 107 la comparatia de tip in LostFocus).
|
||||||
|
REPLACE cant WITH 1, pret_val WITH 1000, pretd WITH 1000, ;
|
||||||
|
pret WITH ROUND(1000*5.23,4), pret_lei WITH ROUND(1000*5.23,4)
|
||||||
|
DO R11Log WITH 'BULDOEXCAVATOR: cant=1, pret valuta factura=1000 EUR (pret asteptat 5230 lei la curs 5.23)'
|
||||||
|
ENDIF
|
||||||
|
goObj.gridart.Refresh()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
|
||||||
|
DO HarnessStep WITH 1, 'dupa introducere articol (cant=1, pret valuta=1000): rul_temp=' + TRANSFORM(RECCOUNT_ACTIVE('rul_temp'))
|
||||||
|
|
||||||
|
*========================= SINCRONIZARE =========================
|
||||||
|
LOCAL llEroareSync
|
||||||
|
llEroareSync = .F.
|
||||||
|
TRY
|
||||||
|
goObj.sincronizeaza()
|
||||||
|
CATCH TO loExcSync
|
||||||
|
llEroareSync = .T.
|
||||||
|
DO R11Log WITH 'EROARE la sincronizeaza() ' + TRANSFORM(loExcSync.ErrorNo) + ' [' + loExcSync.Message + '] in ' + loExcSync.Procedure + ':' + TRANSFORM(loExcSync.LineNo) + ' (' + loExcSync.LineContents + ')'
|
||||||
|
ENDTRY
|
||||||
|
DOEVENTS FORCE
|
||||||
|
goObj.grid1.Refresh()
|
||||||
|
IF !llEroareSync
|
||||||
|
DO R11Log WITH 'PASS sincronizare: sincronizeaza() fara eroare'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL sincronizare: sincronizeaza() a aruncat eroare'
|
||||||
|
ENDIF
|
||||||
|
DO R11Log WITH 'dump introdc dupa sincronizare:'
|
||||||
|
DO DumpIntrodc
|
||||||
|
|
||||||
|
*========================= ASSERT 1: pretul articolului = 5230 lei (1000 EUR x 5.23) =========================
|
||||||
|
*-- verific SI goObj.procent_lei == 100 (mecanismul real, runda11: pe import procent_lei e fix 100,
|
||||||
|
*-- indiferent de participa_valuta al secundarelor) - nu doar valoarea pretului (care a fost introdusa
|
||||||
|
*-- de test), ca sa confirm ca DVI-ul neparticipant nu a influentat procentul de incarcare a pretului.
|
||||||
|
IF ABS(goObj.procent_lei - 100) < 0.01
|
||||||
|
DO R11Log WITH 'PASS assert1-procent_lei: goObj.procent_lei=' + TRANSFORM(goObj.procent_lei) + ' (asteptat 100 - secundara DVI neparticipanta nu influenteaza incarcarea pretului)'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert1-procent_lei: goObj.procent_lei=' + TRANSFORM(goObj.procent_lei) + ' (asteptat 100)'
|
||||||
|
ENDIF
|
||||||
|
SELECT rul_temp
|
||||||
|
LOCATE FOR ALLTRIM(codmat) == 'ART-BULD-212'
|
||||||
|
IF FOUND()
|
||||||
|
LOCAL lnPretArt, lnPretdArt
|
||||||
|
lnPretArt = pret
|
||||||
|
lnPretdArt = pretd
|
||||||
|
IF ABS(lnPretArt - 5230) < 0.01 AND ABS(lnPretdArt - 1000) < 0.01
|
||||||
|
DO R11Log WITH 'PASS assert1-pret_articol: pret=' + TRANSFORM(lnPretArt) + ' pretd=' + TRANSFORM(lnPretdArt) + ' (asteptat pret=5230.00, pretd=1000.00 - secundara NU a incarcat pretul)'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert1-pret_articol: pret=' + TRANSFORM(lnPretArt) + ' pretd=' + TRANSFORM(lnPretdArt) + ' (asteptat pret=5230.00, pretd=1000.00)'
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert1-pret_articol: articolul BULDOEXCAVATOR nu mai exista in rul_temp'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
*========================= ASSERT 2: randul D lipseste SAU are suma 0 =========================
|
||||||
|
SELECT introdc
|
||||||
|
LOCATE FOR tip_rand == 'D'
|
||||||
|
IF !FOUND()
|
||||||
|
DO R11Log WITH 'PASS assert2-randD: nu exista rand D dupa sincronizare (diferenta participante-articole = 0, ca asteptat)'
|
||||||
|
ELSE
|
||||||
|
IF ABS(suma) < 0.01
|
||||||
|
DO R11Log WITH 'PASS assert2-randD: exista rand D dar cu suma=' + TRANSFORM(suma) + ' (~0, acceptat)'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert2-randD: exista rand D cu suma=' + TRANSFORM(suma) + ' (asteptat lipsa sau 0 - secundara DVI NU trebuia sa intre in diferenta)'
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
DO HarnessStep WITH 2, 'assert1+assert2 verificate - vezi log pentru PASS/FAIL'
|
||||||
|
|
||||||
|
*========================= ASSERT 3: diferenta REALA + editare manuala randul D nu se suprascrie =========================
|
||||||
|
*-- creez o diferenta reala: cantitatea articolului devine 2 (flux real GridArt.cCant), articolele
|
||||||
|
*-- (2x5230=10460) nu mai coincid cu baza participanta (5230) -> diferenta = 5230-10460 = -5230.
|
||||||
|
SELECT rul_temp
|
||||||
|
LOCATE FOR ALLTRIM(codmat) == 'ART-BULD-212'
|
||||||
|
IF FOUND()
|
||||||
|
lnRecArt = RECNO()
|
||||||
|
*-- REPLACE direct (vezi motivul la introducerea pretului mai sus) - GridArt.cCant.Text1.LostFocus
|
||||||
|
*-- ar face acelasi REPLACE cant WITH this.Value, apoi doar recalculeaza diferenta (nivel 3).
|
||||||
|
REPLACE cant WITH 2
|
||||||
|
DOEVENTS FORCE
|
||||||
|
DO R11Log WITH 'cant articol schimbat la 2 - astept diferenta reala pe randul D'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL setup-assert3: articolul BULDOEXCAVATOR nu mai exista in rul_temp'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
LOCAL llEroareSync2
|
||||||
|
llEroareSync2 = .F.
|
||||||
|
TRY
|
||||||
|
goObj.sincronizeaza()
|
||||||
|
CATCH TO loExcSync2
|
||||||
|
llEroareSync2 = .T.
|
||||||
|
DO R11Log WITH 'EROARE la sincronizeaza() (dupa cant=2) ' + TRANSFORM(loExcSync2.ErrorNo) + ' [' + loExcSync2.Message + ']'
|
||||||
|
ENDTRY
|
||||||
|
DOEVENTS FORCE
|
||||||
|
goObj.grid1.Refresh()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
DO R11Log WITH 'dump introdc dupa cant=2 + sincronizare:'
|
||||||
|
DO DumpIntrodc
|
||||||
|
|
||||||
|
LOCAL lnSumaDInainteManual, llGasitDInainteManual
|
||||||
|
SELECT introdc
|
||||||
|
LOCATE FOR tip_rand == 'D'
|
||||||
|
llGasitDInainteManual = FOUND()
|
||||||
|
IF llGasitDInainteManual
|
||||||
|
lnSumaDInainteManual = suma
|
||||||
|
IF ABS(lnSumaDInainteManual) > 0.01
|
||||||
|
DO R11Log WITH 'PASS setup-assert3: rand D real aparut, suma=' + TRANSFORM(lnSumaDInainteManual) + ' (diferenta nenula, ca asteptat)'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL setup-assert3: rand D exista dar suma~0 (asteptam diferenta reala nenula)'
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL setup-assert3: nu exista rand D dupa cant=2 (asteptam o diferenta reala)'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
*-- editare manuala a sumei pe randul D, prin metoda reala Grid1.cSuma.Text1.Valid() (marcheaza
|
||||||
|
*-- mod_manual=1) - Thisform.nOldVal se seteaza DIRECT (ca in test_runda7_diferente.VerificaGuardValid),
|
||||||
|
*-- nu prin GotFocus(): apelul GotFocus() direct, in afara unui focus real de grid, lasa nOldVal
|
||||||
|
*-- netipizat si Valid()/LostFocus arunca eroare 107 la comparatia de tip (vezi mai sus, articol).
|
||||||
|
LOCAL lnValoareManuala, llEroareEditManual
|
||||||
|
lnValoareManuala = 123.45
|
||||||
|
llEroareEditManual = .F.
|
||||||
|
IF llGasitDInainteManual
|
||||||
|
SELECT introdc
|
||||||
|
LOCATE FOR tip_rand == 'D'
|
||||||
|
goObj.nOldVal = lnSumaDInainteManual
|
||||||
|
goObj.Grid1.cSuma.Text1.Value = lnValoareManuala
|
||||||
|
TRY
|
||||||
|
goObj.Grid1.cSuma.Text1.Valid()
|
||||||
|
CATCH TO loExcEdit
|
||||||
|
llEroareEditManual = .T.
|
||||||
|
DO R11Log WITH 'EROARE Grid1.cSuma.Text1.Valid() ' + TRANSFORM(loExcEdit.ErrorNo) + ' [' + loExcEdit.Message + '] in ' + loExcEdit.Procedure + ':' + TRANSFORM(loExcEdit.LineNo)
|
||||||
|
ENDTRY
|
||||||
|
DOEVENTS FORCE
|
||||||
|
|
||||||
|
IF llEroareEditManual
|
||||||
|
*-- fallback: scriu direct campurile pe care Valid() le-ar fi scris (suma prin binding,
|
||||||
|
*-- mod_manual explicit), ca sa pot totusi verifica pastrarea la resincronizare (assert3b/c)
|
||||||
|
SELECT introdc
|
||||||
|
LOCATE FOR tip_rand == 'D'
|
||||||
|
IF FOUND()
|
||||||
|
REPLACE suma WITH lnValoareManuala, mod_manual WITH 1
|
||||||
|
ENDIF
|
||||||
|
DO R11Log WITH 'INFO assert3a-editare_manuala: Valid() a esuat headless - suma/mod_manual scrise direct ca fallback (comportamentul de PASTRARE la resincronizare tot se testeaza mai jos)'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
SELECT introdc
|
||||||
|
LOCATE FOR tip_rand == 'D'
|
||||||
|
IF FOUND() AND ABS(suma - lnValoareManuala) < 0.01 AND mod_manual = 1
|
||||||
|
DO R11Log WITH 'PASS assert3a-editare_manuala: rand D suma=' + TRANSFORM(suma) + ' mod_manual=' + TRANSFORM(mod_manual) + ' (asteptat suma=123.45, mod_manual=1)'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert3a-editare_manuala: rand D suma=' + TRANSFORM(IIF(FOUND(),suma,-99999)) + ' mod_manual=' + TRANSFORM(IIF(FOUND(),mod_manual,-1)) + ' (asteptat suma=123.45, mod_manual=1)'
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert3a-editare_manuala: nu am gasit rand D de editat (setup esuat)'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
*-- resincronizare (F5) - randul D marcat manual NU trebuie rescris/sters.
|
||||||
|
LOCAL llEroareSync3
|
||||||
|
llEroareSync3 = .F.
|
||||||
|
TRY
|
||||||
|
goObj.sincronizeaza()
|
||||||
|
CATCH TO loExcSync3
|
||||||
|
llEroareSync3 = .T.
|
||||||
|
DO R11Log WITH 'EROARE la sincronizeaza() (resincronizare post-editare manuala) ' + TRANSFORM(loExcSync3.ErrorNo) + ' [' + loExcSync3.Message + ']'
|
||||||
|
ENDTRY
|
||||||
|
DOEVENTS FORCE
|
||||||
|
goObj.grid1.Refresh()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
DO R11Log WITH 'dump introdc dupa resincronizare (post-editare manuala randul D):'
|
||||||
|
DO DumpIntrodc
|
||||||
|
|
||||||
|
SELECT introdc
|
||||||
|
LOCATE FOR tip_rand == 'D'
|
||||||
|
IF FOUND() AND ABS(suma - lnValoareManuala) < 0.01 AND mod_manual = 1
|
||||||
|
DO R11Log WITH 'PASS assert3b-resincronizare: rand D pastreaza suma=' + TRANSFORM(suma) + ' mod_manual=' + TRANSFORM(mod_manual) + ' dupa resincronizare (NU a fost suprascris)'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert3b-resincronizare: rand D suma=' + TRANSFORM(IIF(FOUND(),suma,-99999)) + ' mod_manual=' + TRANSFORM(IIF(FOUND(),mod_manual,-1)) + ' (asteptat suma=123.45, mod_manual=1, neschimbat)'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
*-- marcaj vizual D* in grid (Column24.ControlSource: tip_rand + Iif(mod_manual=1,'*',' '))
|
||||||
|
SELECT introdc
|
||||||
|
LOCATE FOR tip_rand == 'D'
|
||||||
|
IF FOUND()
|
||||||
|
LOCAL lcMarcaj
|
||||||
|
lcMarcaj = ALLTRIM(tip_rand) + IIF(mod_manual=1,'*',' ')
|
||||||
|
IF ALLTRIM(lcMarcaj) == 'D*'
|
||||||
|
DO R11Log WITH 'PASS assert3c-marcaj: coloana randului arata [' + lcMarcaj + '] (D*)'
|
||||||
|
ELSE
|
||||||
|
DO R11Log WITH 'FAIL assert3c-marcaj: coloana randului arata [' + lcMarcaj + '] (asteptat D*)'
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
DO HarnessStep WITH 3, 'final assert3 (diferenta reala + editare manuala + resincronizare) - vezi log pentru PASS/FAIL'
|
||||||
|
DO HarnessDone WITH 'done'
|
||||||
|
|
||||||
|
CATCH TO loExc
|
||||||
|
DO R11Log WITH 'CATCH ErrorNo=' + TRANSFORM(loExc.ErrorNo) + ' Message=' + loExc.Message + ' Proc=' + loExc.Procedure + ' Line=' + TRANSFORM(loExc.LineNo) + ' [' + loExc.LineContents + ']'
|
||||||
|
DO HarnessDone WITH 'done-error'
|
||||||
|
ENDTRY
|
||||||
|
|
||||||
|
QUIT
|
||||||
|
|
||||||
|
*==================================================================================
|
||||||
|
PROCEDURE AdaugaDocPrincipal
|
||||||
|
*-- FACTURA 1000 EUR curs 5.23 (5230 lei), RAJA, participa la pret BIFAT, TVA 21% normal (F).
|
||||||
|
goDlg = CREATEOBJECT('import_adauga_factura', goObj)
|
||||||
|
goDlg.cFelDoc = 'Factura'
|
||||||
|
goDlg.nIdFdoc = 1
|
||||||
|
goDlg.nNract = 200
|
||||||
|
goDlg.dDataAct = DATE()
|
||||||
|
goDlg.nIdPartener = 601
|
||||||
|
goDlg.cPartener = 'RAJA'
|
||||||
|
goDlg.cExplicatia = 'Import marfa RAJA'
|
||||||
|
goDlg.nSuma = 1000
|
||||||
|
goDlg.nSumaLei = 0
|
||||||
|
goDlg.nCurs = 5.23
|
||||||
|
goDlg.nIdValuta = 978
|
||||||
|
goDlg.cValuta = 'EUR'
|
||||||
|
goDlg.nIdExplicatieTva = 220
|
||||||
|
goDlg.cExplicatieTva = 'ACH. IMP. 21%'
|
||||||
|
goDlg.optTipTva.Value = 1 && F = furnizor (normal)
|
||||||
|
goDlg.chkInValutaCont.Value = 1
|
||||||
|
goDlg.chkParticipaValuta.Value = 1 && PARTICIPA la pret - BIFAT
|
||||||
|
goDlg.WindowType = 0
|
||||||
|
goDlg.Visible = .T.
|
||||||
|
goDlg.Show()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
DO R11Log WITH 'DOC1(principal): valideaza = ' + TRANSFORM(goDlg.valideaza())
|
||||||
|
DO ConstruiesteToDlg
|
||||||
|
DO R11Log WITH 'DOC1(principal): do_adauga_factura = ' + TRANSFORM(goObj.do_adauga_factura(goT)) + ' (suma calculata=' + TRANSFORM(goT.suma) + ' lei, participa_valuta=' + TRANSFORM(goT.participa_valuta) + ')'
|
||||||
|
goDlg.Hide()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE AdaugaDocSecundarNeparticipant
|
||||||
|
*-- DVI 500 lei, BIROUL VAMAL, participa la pret DEBIFAT (chkParticipaValuta.Value=0) - NU
|
||||||
|
*-- trebuie sa intre in baza diferentei (recalc_diferente/do_calculeaza_diferente, runda11).
|
||||||
|
goDlg = CREATEOBJECT('import_adauga_factura', goObj)
|
||||||
|
goDlg.cFelDoc = 'DVI'
|
||||||
|
goDlg.nIdFdoc = 2
|
||||||
|
goDlg.nNract = 300
|
||||||
|
goDlg.dDataAct = DATE()
|
||||||
|
goDlg.nIdPartener = 900
|
||||||
|
goDlg.cPartener = 'BIROUL VAMAL'
|
||||||
|
goDlg.cExplicatia = 'Taxe vamale DVI'
|
||||||
|
goDlg.nSuma = 500
|
||||||
|
goDlg.nSumaLei = 0
|
||||||
|
goDlg.nCurs = 0
|
||||||
|
goDlg.nIdExplicatieTva = 220
|
||||||
|
goDlg.cExplicatieTva = 'ACH. IMP. 21%'
|
||||||
|
goDlg.optTipTva.Value = 1 && F = furnizor (normal)
|
||||||
|
goDlg.chkInValutaCont.Value = 0
|
||||||
|
goDlg.chkParticipaValuta.Value = 0 && NU PARTICIPA la pret - DEBIFAT (miezul testului)
|
||||||
|
goDlg.WindowType = 0
|
||||||
|
goDlg.Visible = .T.
|
||||||
|
goDlg.Show()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
DO R11Log WITH 'DOC2(DVI, secundar, NU participa): valideaza = ' + TRANSFORM(goDlg.valideaza())
|
||||||
|
DO ConstruiesteToDlg
|
||||||
|
DO R11Log WITH 'DOC2(DVI, secundar, NU participa): do_adauga_factura = ' + TRANSFORM(goObj.do_adauga_factura(goT)) + ' (suma calculata=' + TRANSFORM(goT.suma) + ' lei, participa_valuta=' + TRANSFORM(goT.participa_valuta) + ')'
|
||||||
|
goDlg.Hide()
|
||||||
|
DOEVENTS FORCE
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE ConstruiesteToDlg
|
||||||
|
*-- toDlg construit INLINE in programul PRINCIPAL (vezi docs/testare-ui-vfp.md capcana l).
|
||||||
|
goT = CREATEOBJECT('Empty')
|
||||||
|
=ADDPROPERTY(goT,'serie_act',ALLTRIM(NVL(goDlg.cSerieAct,'')))
|
||||||
|
=ADDPROPERTY(goT,'nract',goDlg.nNract)
|
||||||
|
=ADDPROPERTY(goT,'dataact',goDlg.dDataAct)
|
||||||
|
=ADDPROPERTY(goT,'fdoc',goDlg.cFelDoc)
|
||||||
|
=ADDPROPERTY(goT,'id_fdoc',goDlg.nIdFdoc)
|
||||||
|
=ADDPROPERTY(goT,'id_partc',goDlg.nIdPartener)
|
||||||
|
=ADDPROPERTY(goT,'partc',goDlg.cPartener)
|
||||||
|
=ADDPROPERTY(goT,'explicatia',ALLTRIM(NVL(goDlg.cExplicatia,'')))
|
||||||
|
=ADDPROPERTY(goT,'suma',IIF(goDlg.chkInValutaCont.Value=1 AND goDlg.nCurs<>0,IIF(goDlg.nSumaLei<>0,goDlg.nSumaLei,ROUND(goDlg.nSuma*goDlg.nCurs,gnPC)),goDlg.nSuma))
|
||||||
|
=ADDPROPERTY(goT,'suma_val',IIF(goDlg.chkInValutaCont.Value=1 AND goDlg.nCurs<>0,goDlg.nSuma,0))
|
||||||
|
=ADDPROPERTY(goT,'in_valuta',goDlg.chkInValutaCont.Value)
|
||||||
|
=ADDPROPERTY(goT,'participa_valuta',(goDlg.chkParticipaValuta.Value=1))
|
||||||
|
=ADDPROPERTY(goT,'id_valuta',IIF(goDlg.chkInValutaCont.Value=1,goDlg.nIdValuta,0))
|
||||||
|
=ADDPROPERTY(goT,'curs',IIF(goDlg.chkInValutaCont.Value=1,goDlg.nCurs,0))
|
||||||
|
=ADDPROPERTY(goT,'nume_val',IIF(goDlg.chkInValutaCont.Value=1,ALLTRIM(NVL(goDlg.cValuta,'')),''))
|
||||||
|
=ADDPROPERTY(goT,'cTipTva',IIF(goDlg.optTipTva.Value=1,'F',IIF(goDlg.optTipTva.Value=2,'D','N')))
|
||||||
|
=ADDPROPERTY(goT,'id_jtva_coloana',goDlg.nIdExplicatieTva)
|
||||||
|
=ADDPROPERTY(goT,'dvi_serie',CHRTRAN(ALLTRIM(NVL(goDlg.cSerieDvi,'')),CHR(34),''))
|
||||||
|
=ADDPROPERTY(goT,'dvi_nract',goDlg.nNractDvi)
|
||||||
|
=ADDPROPERTY(goT,'dvi_dataact',goDlg.dDviData)
|
||||||
|
=ADDPROPERTY(goT,'dvi_id_fdoc',goDlg.nIdFdocDVI)
|
||||||
|
=ADDPROPERTY(goT,'dvi_fdoc',goDlg.cFelDocDvi)
|
||||||
|
=ADDPROPERTY(goT,'dvi_id_partc',goDlg.nDviIdPartener)
|
||||||
|
=ADDPROPERTY(goT,'dvi_partc',goDlg.cDviPartener)
|
||||||
|
=ADDPROPERTY(goT,'dvi_scc','401')
|
||||||
|
=ADDPROPERTY(goT,'dvi_tva_lei',goDlg.nDviTvaLei)
|
||||||
|
=ADDPROPERTY(goT,'dvi_tva_val',goDlg.nDviTvaVal)
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE CreeazaRulTemp
|
||||||
|
*-- structura reala rul_temp (vezi test_adauga_repere_212.prg / ointroduceri.vc2:11030).
|
||||||
|
IF USED('rul_temp')
|
||||||
|
USE IN ('rul_temp')
|
||||||
|
ENDIF
|
||||||
|
CREATE CURSOR rul_temp ( ;
|
||||||
|
id_rul N(20,0), an N(4,0), luna N(2,0), cod N(20,0);
|
||||||
|
, serie C(100), nnir N(20,0), id_articol N(10,0), denumire C(100);
|
||||||
|
, codmat C(50), codmatf C(50), codbare C(50), um C(20);
|
||||||
|
, id_gestiune N(5,0), nume_gestiune C(50), cgest C(20), nr_pag N(2,0);
|
||||||
|
, gestionar C(50), comisie_receptie1 C(50), comisie_receptie2 C(50), comisie_receptie3 C(50);
|
||||||
|
, cant N(14,3), cante N(14,3), cont C(10), acont C(20);
|
||||||
|
, pret N(18,4), tva N(18,4), valoare N(18,4), valtva N(18,4);
|
||||||
|
, proc_tva N(5,2), pretv N(18,4), pretvtva N(18,4), tvav N(18,4);
|
||||||
|
, valoarev N(18,4), valtvav N(18,4), proc_tvav N(5,2), adaos N(18,4);
|
||||||
|
, adaos_tva N(18,4), valoare_adaos N(18,4), valtva_adaos N(18,4), procent N(10,3);
|
||||||
|
, discunitar N(18,4), discount_tva N(18,4), valoare_discount N(18,4), valtva_discount N(18,4);
|
||||||
|
, proc_disc N(7,3), pretd N(14,4), curs N(18,4), id_valuta N(10,0);
|
||||||
|
, nume_val C(20), id_lucrare N(20,0), nrord C(100), id_responsabil N(10,0);
|
||||||
|
, nresp C(100), resp_marca N(18,4), dataact T, id_util N(5,0);
|
||||||
|
, util C(30), dataora T, id_sectie N(5,0), sectie C(50);
|
||||||
|
, csectie C(10), alcooltutun N(1,0), datain T, dataout T;
|
||||||
|
, id_fact N(20,0), id_gestiunec N(10,0), nume_gestiunec C(50), cgestc C(20);
|
||||||
|
, id_responsabilc N(5,0), id_reteta N(10,0), reteta C(50), nrespc C(100);
|
||||||
|
, respc_marca N(18,4), id_set N(20,0), id_tip_rulaj N(10,0), tip_rulaj C(50);
|
||||||
|
, id_obiect_depozit N(10,0), id_rul_aux N(10,0), nract N(20,0), serie_act C(10);
|
||||||
|
, dataoras T, id_utils N(10,0), lot C(30), adata_expirare T;
|
||||||
|
, id_sucursala N(5,0), sucursala C(250), id_part_rez N(10,0), part_rez C(100);
|
||||||
|
, id_lucrare_rez N(10,0), nrord_rez C(100), subgrupa C(100), grupa C(100);
|
||||||
|
, id_subgrupa N(5,0), id_grupa N(5,0), in_stoc N(1,0), in_crm N(1,0);
|
||||||
|
, id_furnizor N(10,0), furnizor C(100), id_jtva_coloana N(4,0), explicatie_tva C(100);
|
||||||
|
, taxcode N(6,0), taxname C(254), saft_procent N(18,4), codnc8 C(20);
|
||||||
|
, id_tara_origine N(4,0), cod_tara_origine C(5), tara_origine C(50), greutate N(12,4);
|
||||||
|
, fdoc C(30), id_fdoc N(18,4);
|
||||||
|
, pret_lei N(18,4), pret_val N(14,4), cota_tva N(6,2))
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE CreeazaIntrodc
|
||||||
|
LPARAMETERS tcAlias
|
||||||
|
IF USED(tcAlias)
|
||||||
|
USE IN (tcAlias)
|
||||||
|
ENDIF
|
||||||
|
CREATE CURSOR (tcAlias) ( ;
|
||||||
|
id_note N(14), explicatia C(100), scd C(10), ascd C(20), scc C(10), ascc C(20), ;
|
||||||
|
cu_tva N(1), id_set N(14), ordine N(8), in_valuta N(1), id_jtva_coloana N(14) NULL, ;
|
||||||
|
ptva N(6,2), explicatie_tva C(50), tipjurnal C(2), taxcode N(6), paymentcode C(9), ;
|
||||||
|
suma N(18,4), suma_val N(18,4), id_partd N(14), id_partc N(14), partd C(100), partc C(100), ;
|
||||||
|
id_fact N(14), id_factd N(14), id_factc N(14), pereched N(14), perechec N(14), ;
|
||||||
|
nract N(14), serie_act C(10), explicatia4 C(50), explicatia5 C(50), participa_valuta L, ;
|
||||||
|
id_valuta N(14), curs N(14,4), nume_val C(10), dataact D, fdoc C(50), id_fdoc N(14), ;
|
||||||
|
se_scrie N(1), tva_incasare N(1), doc_color N(10), doc_label C(10), tip_rand C(1), ;
|
||||||
|
doc_key C(80), nr_doc N(8), suma_doc N(18,4), suma_doc_val N(18,4), mod_manual N(1), ;
|
||||||
|
scd_orig C(20), ascd_orig C(20))
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE DumpIntrodc
|
||||||
|
LOCAL lnSel
|
||||||
|
lnSel = SELECT()
|
||||||
|
SELECT introdc
|
||||||
|
SCAN
|
||||||
|
DO R11Log WITH ' recno=' + TRANSFORM(RECNO()) + ' nract=' + TRANSFORM(nract) + ' tip_rand=' + tip_rand + ;
|
||||||
|
' scd=' + ALLTRIM(scd) + ' scc=' + ALLTRIM(scc) + ' suma=' + TRANSFORM(suma) + ' suma_val=' + TRANSFORM(suma_val) + ;
|
||||||
|
' participa_valuta=' + TRANSFORM(participa_valuta) + ' mod_manual=' + TRANSFORM(mod_manual) + ;
|
||||||
|
' explicatia=[' + ALLTRIM(NVL(explicatia,'')) + '] partc=[' + ALLTRIM(NVL(partc,'')) + '] doc_key=[' + ALLTRIM(doc_key) + ']'
|
||||||
|
ENDSCAN
|
||||||
|
SELECT (lnSel)
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
FUNCTION RECCOUNT_ACTIVE
|
||||||
|
LPARAMETERS tcAlias
|
||||||
|
LOCAL lnSel, lnCnt
|
||||||
|
lnSel = SELECT()
|
||||||
|
SELECT (tcAlias)
|
||||||
|
COUNT TO lnCnt FOR !DELETED()
|
||||||
|
SELECT (lnSel)
|
||||||
|
RETURN lnCnt
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
PROCEDURE R11Err
|
||||||
|
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
|
||||||
|
DO R11Log WITH 'ON ERROR ' + TRANSFORM(tnErr) + ' [' + tcProg + ':' + TRANSFORM(tnLine) + '] ' + tcMsg
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE R11Log
|
||||||
|
LPARAMETERS tcMsg
|
||||||
|
SET SAFETY OFF
|
||||||
|
LOCAL lcL
|
||||||
|
lcL = IIF(FILE(gcUILog), FILETOSTR(gcUILog), '')
|
||||||
|
STRTOFILE(lcL + tcMsg + CHR(13)+CHR(10), gcUILog)
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
DEFINE CLASS dummyapp AS Custom
|
||||||
|
PROCEDURE ReadIni
|
||||||
|
LPARAMETERS tcSection, tcKey
|
||||||
|
RETURN ''
|
||||||
|
ENDPROC
|
||||||
|
PROCEDURE WriteIni
|
||||||
|
LPARAMETERS tcSection, tcKey, tcValue
|
||||||
|
RETURN .T.
|
||||||
|
ENDPROC
|
||||||
|
ENDDEFINE
|
||||||
|
|
||||||
|
DEFINE CLASS dummyexecutor AS Custom
|
||||||
|
cEroare = ''
|
||||||
|
PROCEDURE oExecute
|
||||||
|
LPARAMETERS tcSql, tcCursor
|
||||||
|
IF USED(m.tcCursor)
|
||||||
|
USE IN (m.tcCursor)
|
||||||
|
ENDIF
|
||||||
|
IF 'VJTVA_COLOANE' $ UPPER(m.tcSql)
|
||||||
|
DO CreeazaJtvaColoaneView WITH m.tcCursor
|
||||||
|
RETURN 1
|
||||||
|
ENDIF
|
||||||
|
IF UPPER(ALLTRIM(m.tcCursor)) == 'RUL_TEMP'
|
||||||
|
DO CreeazaRulTemp
|
||||||
|
ELSE
|
||||||
|
CREATE CURSOR (m.tcCursor) (id_temp N(1))
|
||||||
|
ENDIF
|
||||||
|
RETURN 1
|
||||||
|
ENDPROC
|
||||||
|
PROCEDURE oExecuta
|
||||||
|
LPARAMETERS tcSql, tcCursor
|
||||||
|
IF !EMPTY(m.tcCursor)
|
||||||
|
IF USED(m.tcCursor)
|
||||||
|
USE IN (m.tcCursor)
|
||||||
|
ENDIF
|
||||||
|
IF UPPER(m.tcCursor) == 'CJTVACOL4427'
|
||||||
|
CREATE CURSOR (m.tcCursor) (id_jtva_coloana N(14))
|
||||||
|
ELSE
|
||||||
|
CREATE CURSOR (m.tcCursor) (id_temp N(1))
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
RETURN .T.
|
||||||
|
ENDPROC
|
||||||
|
PROCEDURE oSelect2Value
|
||||||
|
LPARAMETERS tcSql, toValue
|
||||||
|
toValue = ''
|
||||||
|
RETURN 1
|
||||||
|
ENDPROC
|
||||||
|
PROCEDURE oReset
|
||||||
|
ENDPROC
|
||||||
|
ENDDEFINE
|
||||||
|
|
||||||
|
PROCEDURE CreeazaJtvaColoaneView
|
||||||
|
LPARAMETERS tcCursor
|
||||||
|
IF USED(m.tcCursor)
|
||||||
|
USE IN (m.tcCursor)
|
||||||
|
ENDIF
|
||||||
|
CREATE CURSOR (m.tcCursor) (id_jtva_coloana N(14), denumire C(100), jc N(1), jv N(1), ;
|
||||||
|
coloana_jc C(20), coloana_jv C(20), cota_tva N(6,2), id_tva N(14) NULL, afisat N(1), ;
|
||||||
|
id_jtva_ex N(14) NULL, id_jtva_neex N(14) NULL, ordine N(8), ;
|
||||||
|
taxcode N(6) NULL, taxcode_neexigibil N(6) NULL, taxcode_n50 N(6) NULL, ;
|
||||||
|
taxcode_n50_tvai N(6) NULL, taxcode_n100 N(6) NULL, taxcode_regularizare N(6) NULL, taxcode_tvai N(6) NULL)
|
||||||
|
INSERT INTO (m.tcCursor) (id_jtva_coloana, denumire, jc, jv, afisat, ordine, cota_tva) VALUES (0, '', 0, 0, 1, 0, 0)
|
||||||
|
INSERT INTO (m.tcCursor) (id_jtva_coloana, denumire, jc, jv, coloana_jc, cota_tva, id_tva, afisat, ordine, taxcode) ;
|
||||||
|
VALUES (208, 'ACH. INT. 21%', 1, 0, 'RO21B', 21, 209, 1, 1, 301104)
|
||||||
|
INSERT INTO (m.tcCursor) (id_jtva_coloana, denumire, jc, jv, coloana_jc, cota_tva, afisat, ordine, taxcode) ;
|
||||||
|
VALUES (209, 'TVA ACH. INT. 21%', 1, 0, 'RO21T', 21, 1, 2, 301104)
|
||||||
|
INSERT INTO (m.tcCursor) (id_jtva_coloana, denumire, jc, jv, coloana_jc, cota_tva, id_tva, afisat, ordine, taxcode) ;
|
||||||
|
VALUES (220, 'ACH. IMP. 21%', 1, 0, 'FO21B', 21, 221, 1, 3, 301204)
|
||||||
|
INSERT INTO (m.tcCursor) (id_jtva_coloana, denumire, jc, jv, coloana_jc, cota_tva, afisat, ordine, taxcode) ;
|
||||||
|
VALUES (221, 'TVA ACH. IMP. 21%', 1, 0, 'FO21T', 21, 1, 4, 301204)
|
||||||
|
ENDPROC
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# test_runda11_diferenta_participa.ps1 - wrapper peste harness-ul generic pentru RUNDA 11
|
||||||
|
# (baza randului D = doar documente participante la pret; randul D mod_manual=1 nu se rescrie).
|
||||||
|
# Rulare: powershell -ExecutionPolicy Bypass -File test_runda11_diferenta_participa.ps1
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
$Teste = $PSScriptRoot
|
||||||
|
& (Join-Path (Split-Path $Teste -Parent) 'vfp_ui_harness.ps1') `
|
||||||
|
-TestPrg (Join-Path $Teste 'test_runda11_diferenta_participa.prg') `
|
||||||
|
-Steps @('doc2','articol','asserts12','asserts3') `
|
||||||
|
-ShotsDir (Join-Path $Teste 'screenshots_runda11') `
|
||||||
|
-SyncDir (Join-Path $Teste 'uisync_runda11')
|
||||||
Reference in New Issue
Block a user