SET SAFETY OFF SET TALK OFF SET NOTIFY OFF CLOSE DATABASES PUBLIC gcLog, gcCaz, gnPass, gnFail gcLog = "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\probe_cont_667.log" IF !DIRECTORY("D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out") MD "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out" ENDIF STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLog) gcCaz = "" gnPass = 0 gnFail = 0 ON ERROR DO AfErr WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() DO "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\test_init_env_auto_roafacturare.prg" WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' IF TYPE('gnHandle') <> 'N' OR gnHandle <= 0 DO AfLog WITH "FAIL: conexiune Oracle esuata" DO Final ENDIF gnIdUtil = 8 DO AfLog WITH "ENV OK gnHandle=" + TRANSFORM(gnHandle) LOCAL lnOk, lnIdPolStoc, lcSql lnOk = SQLEXEC(gnHandle, "select varvalue from optiuni where program='ROAFACTURARE' and varname='ID_POL_PRET_STOC'", "crsopt") lnIdPolStoc = IIF(lnOk > 0 AND USED('crsopt') AND !ISNULL(crsopt.varvalue), VAL(ALLTRIM(crsopt.varvalue)), 0) IF USED('crsopt') USE IN crsopt ENDIF DO AfLog WITH "politica stoc (CATALOG ARTICOLE) id_pol=" + TRANSFORM(lnIdPolStoc) IF lnIdPolStoc <= 0 DO AfLog WITH "FAIL: nu exista ID_POL_PRET_STOC in OPTIUNI" DO Final ENDIF PUBLIC gnId_pol_pret_stoc gnId_pol_pret_stoc = lnIdPolStoc DO AfLog WITH "--- note existente 667/709 ---" lcSql = "select v.id_nota, v.denumire, n.scd, n.scc, n.ascc, n.ascd, n.in_valuta, n.cu_tva " + ; "from crm_note_vanzari v join note_contabile n on n.id_set = v.id_set " + ; "where (trim(n.scd) in ('667','709') or trim(n.scc) in ('667','709')) order by v.id_nota" lnOk = SQLEXEC(gnHandle, lcSql, "crsnote") IF lnOk > 0 SCAN DO AfLog WITH " id_nota=" + TRANSFORM(crsnote.id_nota) + " den=[" + ALLTRIM(NVL(crsnote.denumire,[])) + "] scd=" + ALLTRIM(NVL(crsnote.scd,[])) + " scc=" + ALLTRIM(NVL(crsnote.scc,[])) + " inv=" + TRANSFORM(NVL(crsnote.in_valuta,0)) + " cu_tva=" + TRANSFORM(NVL(crsnote.cu_tva,0)) ENDSCAN ELSE DO AfLog WITH " select note a esuat lnOk=" + TRANSFORM(lnOk) ENDIF IF USED('crsnote') USE IN crsnote ENDIF DO AfLog WITH "--- articole cu cont 667/709 in politica de stoc ---" lcSql = "select a.id_articol, e.denumire, e.cont, e.acont, a.id_nota, a.pret " + ; "from crm_politici_pret_art a join nom_articole e on e.id_articol = a.id_articol " + ; "where a.id_pol = " + TRANSFORM(lnIdPolStoc) + " and nvl(trim(e.cont),'x') in ('667','709')" lnOk = SQLEXEC(gnHandle, lcSql, "crsart") IF lnOk <= 0 DO AfLog WITH " select articole a esuat lnOk=" + TRANSFORM(lnOk) DO Final ENDIF IF RECCOUNT('crsart') = 0 DO AfLog WITH " INFO: niciun articol cu cont 667/709 in politica de stoc - caut in tot nomenclatorul" USE IN crsart lnOk = SQLEXEC(gnHandle, "select 0 as id_articol, denumire, cont, acont, null as id_nota, 0 as pret from nom_articole where trim(cont) in ('667','709')", "crsart") ENDIF DO AfLog WITH " gasite: " + TRANSFORM(RECCOUNT('crsart')) SCAN gcCaz = "[art " + TRANSFORM(crsart.id_articol) + "] " DO AfLog WITH "ART id=" + TRANSFORM(crsart.id_articol) + " den=[" + ALLTRIM(NVL(crsart.denumire,[])) + "] cont=[" + ALLTRIM(NVL(crsart.cont,[])) + "] acont=[" + ALLTRIM(NVL(crsart.acont,[])) + "] id_nota_pol_art=" + TRANSFORM(NVL(crsart.id_nota,0)) LOCAL lnIdArt, lcDedus, lcMesaj, lcContDedus, lcRezultat lnIdArt = crsart.id_articol lcDedus = [] IF USED('crsded') USE IN crsded ENDIF lnOk = SQLEXEC(gnHandle, "select pack_facturare.cont_venit_articol_stoc(" + TRANSFORM(lnIdArt) + ") as dedus from dual", "crsded") IF lnOk > 0 AND USED('crsded') lcDedus = ALLTRIM(NVL(crsded.dedus,[])) ENDIF IF USED('crsded') USE IN crsded ENDIF DO AfLog WITH " cont_venit_articol_stoc(" + TRANSFORM(lnIdArt) + ") = [" + lcDedus + "]" lcRezultat = deriva_cont_venit_fara_pol(lnIdArt, ALLTRIM(NVL(crsart.cont,[]))) DO AfLog WITH " deriva_cont_venit_fara_pol(id,cont) = [" + lcRezultat + "]" lcMesaj = verifica_cont_venit_linie(lnIdArt, lnIdPolStoc) DO AfLog WITH " verifica_cont_venit_linie = [" + lcMesaj + "]" IF EMPTY(lcMesaj) gnPass = gnPass + 1 DO AfLog WITH " REZULTAT: PASS (are cont de venit)" ELSE gnFail = gnFail + 1 DO AfLog WITH " REZULTAT: REPRODUS - eroarea 'nu are cont de venit'" ENDIF IF !ISNULL(crsart.id_nota) AND NVL(crsart.id_nota,0) > 0 IF USED('crsnoteart') USE IN crsnoteart ENDIF lnOk = SQLEXEC(gnHandle, "select n.scd, n.scc from crm_note_vanzari v join note_contabile n on n.id_set=v.id_set where v.id_nota=" + TRANSFORM(crsart.id_nota), "crsnoteart") IF lnOk > 0 AND USED('crsnoteart') AND RECCOUNT('crsnoteart') > 0 DO AfLog WITH " nota articolului (id_nota=" + TRANSFORM(crsart.id_nota) + "): scd=[" + ALLTRIM(NVL(crsnoteart.scd,[])) + "] scc=[" + ALLTRIM(NVL(crsnoteart.scc,[])) + "]" ENDIF IF USED('crsnoteart') USE IN crsnoteart ENDIF ENDIF ENDSCAN IF USED('crsart') USE IN crsart ENDIF DO AfLog WITH "--- conturi in PLCCONT anul curent ---" IF USED('crsplcont') USE IN crsplcont ENDIF lnOk = SQLEXEC(gnHandle, "select cont from plcont where an = 2026 and trim(cont) in ('667','709','4111','704','707') order by cont", "crsplcont") IF lnOk > 0 SCAN DO AfLog WITH " plcont 2026: [" + ALLTRIM(crsplcont.cont) + "]" ENDSCAN ENDIF IF USED('crsplcont') USE IN crsplcont ENDIF DO Final PROCEDURE AfLog LPARAMETERS tcMsg STRTOFILE(tcMsg + CHR(13) + CHR(10), gcLog, 1) ENDPROC PROCEDURE AfErr LPARAMETERS tnErr, tcMsg, tcProg, tnLine DO AfLog WITH "ERROR " + TRANSFORM(tnErr) + " [" + gcCaz + tcProg + ":" + TRANSFORM(tnLine) + "] " + tcMsg ENDPROC PROCEDURE Final DO AfLog WITH "TOTAL PASS=" + TRANSFORM(gnPass) + " FAIL=" + TRANSFORM(gnFail) DO AfLog WITH "END " + TTOC(DATETIME()) QUIT ENDPROC