* curata_s11_borderou.prg - sterge fizic borderourile semanate de proba S11 (rularile 2 si 4 ale * lui test_s9_4_regenerare.prg le lasa in urma; rularile 3 si 5 se curata singure). * Parametru: lista de id-uri FACT_BORDEROU, separate prin virgula. Borderourile dinainte de proba * (id <= 19 pe MARIUSM_AUTO la 04.09.2026) NU se ating. LPARAMETERS tcListaId SET SAFETY OFF SET TALK OFF PUBLIC gcErrLog gcErrLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\curata_s11_borderou_log.txt' STRTOFILE('start ' + TRANSFORM(DATETIME()) + ' lista=' + TRANSFORM(tcListaId) + CHR(13) + CHR(10), gcErrLog) ON ERROR DO test_error_handler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() LOCAL lcLista lcLista = CHRTRAN(ALLTRIM(TRANSFORM(tcListaId)), ' ', '') IF EMPTY(lcLista) OR !ISDIGIT(LEFT(lcLista, 1)) STRTOFILE('EROARE: se cere o lista de id-uri numerice, ex: DO curata_s11_borderou WITH "20,21"' + CHR(13) + CHR(10), gcErrLog, 1) QUIT ENDIF DO ('D:\ROA\ROAFACTURARE\COMUN\utile\Teste\test_init_env_auto_roafacturare.prg') WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' IF gnHandle <= 0 STRTOFILE('EROARE: conectare esuata' + CHR(13) + CHR(10), gcErrLog, 1) QUIT ENDIF LOCAL lnDet, lnAnt lnDet = -1 lnAnt = -1 goExecutor.oSelecteaza2Value([select count(*) as nr from ] + gcs + [.fact_borderou_detalii where id_borderou in (] + lcLista + [)], @lnDet) goExecutor.oSelecteaza2Value([select count(*) as nr from ] + gcs + [.fact_borderou where id in (] + lcLista + [)], @lnAnt) STRTOFILE('inainte: ' + TRANSFORM(lnAnt) + ' borderouri, ' + TRANSFORM(lnDet) + ' randuri de detaliu' + CHR(13) + CHR(10), gcErrLog, 1) IF goExecutor.oExecuta([delete from ] + gcs + [.fact_borderou_detalii where id_borderou in (] + lcLista + [)]) AND ; goExecutor.oExecuta([delete from ] + gcs + [.fact_borderou where id in (] + lcLista + [)]) goExecutor.oExecuta([COMMIT]) ELSE STRTOFILE('ESEC la stergere: ' + goExecutor.cEroare + CHR(13) + CHR(10), gcErrLog, 1) goExecutor.oExecuta([ROLLBACK]) ENDIF lnDet = -1 lnAnt = -1 goExecutor.oSelecteaza2Value([select count(*) as nr from ] + gcs + [.fact_borderou_detalii where id_borderou in (] + lcLista + [)], @lnDet) goExecutor.oSelecteaza2Value([select count(*) as nr from ] + gcs + [.fact_borderou where id in (] + lcLista + [)], @lnAnt) STRTOFILE('dupa: ' + TRANSFORM(lnAnt) + ' borderouri, ' + TRANSFORM(lnDet) + ' randuri de detaliu' + CHR(13) + CHR(10), gcErrLog, 1) lnDet = -1 goExecutor.oSelecteaza2Value([select count(*) as nr from ] + gcs + [.fact_borderou_detalii], @lnDet) STRTOFILE('total ramas in FACT_BORDEROU_DETALII: ' + TRANSFORM(lnDet) + CHR(13) + CHR(10), gcErrLog, 1) STRTOFILE('end ' + TRANSFORM(DATETIME()) + CHR(13) + CHR(10), gcErrLog, 1) QUIT PROCEDURE test_error_handler LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo STRTOFILE('EROARE ' + TRANSFORM(tnError) + ' [' + tcProgram + ':' + TRANSFORM(tnLineNo) + '] ' + tcMessage + CHR(13) + CHR(10), gcErrLog, 1) ENDPROC