* test_s14_grid_coloane_modif.prg * Verifica headless coloanele noi de audit-modificare (id_utilm/utilm/dataoram) in cursorul * crsfacturi construit exact ca oproceduri_facturare.vizualizare_facturi (S14, decizia 65). * Nu deschide niciun formular - doar gencursor + afisare(), citire pe structura si valori. SET SAFETY OFF SET TALK OFF PUBLIC gcErrLog gcErrLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_s14_grid_coloane_modif_log.txt' STRTOFILE('start' + CHR(13) + CHR(10), gcErrLog) ON ERROR DO test_error_handler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() 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 gnIdUtil = 8 PUBLIC gnPass, gnFail gnPass = 0 gnFail = 0 Private poFacturi poFacturi = Null IF Used('crsfacturi') Use In crsfacturi ENDIF *!* --- exact lcSchema/lcSelect din oproceduri_facturare.prg:340-362, dupa S14 --- LOCAL lcSchema, lcSelect, lcOrder, lcFiltru lcSchema = ['ales n(1),id_vanzare n(20),id_comanda n(20),dataora t,dataora_exp t,data_act d,data_scad d,sters n(1),dataoras t,numar_act n(14),serie_act c(10),'+] + ; ['tip n(5),id_part n(10),discount n(17,4),disc_fara_tva n(17,4),discount_evidentiat n(1),text_aditional M,facturat n(1),data_facturat t,'+] + ; ['explicatie c(240),altele c(200),client c(100),cod n(20),id_util I,utilizator c(30),utils c(30),utilfact c(30),id_utilm I,utilm c(30),dataoram t,delegat c(70),'+] + ; ['bidelegat c(30),cnpdelegat c(15),nume_agent c(70),nrinmat c(10),total_fara_tva n(20,4),total_tva n(20,4),total_cu_tva n(20,4),id_gestiune n(10),'+] + ; ['serie_chit c(20),nr_incasare n(10),incasat n(17,4),in_valuta n(1),sucursala c(100),id_ruta n(10),ruta c(100),curs n(20,4),multiplicator n(10),nume_val c(50),'+] + ; ['valuta c(50), id_valuta n(5), valval n(20,4), tvaval n(20,4), totval n(20,4),'+] + ; ['id_delegat n(10),id_agent n(10),id_masina n(10),valoarea N(20,4),nume_gestiune C(50),id_sectie n(5),sectie c(50),id_lucrare n(20), lucrare c(200),'+] + ; ['tip_incasare n(10),afisare_scadenta n(1),id_ordl n(10),tva_incasare n(1),listare_detaliata n(1),'+] + ; ['id_facturare n(10),adresa_facturare c(250),email_facturare c(100),adresa_client c(250),email_client c(100),adresa_beneficiar c(250),email_beneficiar c(100),'+] + ; ['id_beneficiar n(20),beneficiar C(100),tip_factura N(5),ctip_factura C(100), id_ctr N(10), contract C(100),eproforma N(1),tip_saft N(3) null,tip_saftname V(250) null,'+]+; ['id_livrare N(10),adresa_livrare V(250), denumire_adresa_livrare V(100), email_livrare V(100),institutie_publica N(1) null,efactura N(1) null,cod_fiscal C(20),id_fact N(20)'] lcSelect = ['select 0 as ales,id_vanzare,id_comanda,dataora,dataora_exp,data_act,data_scad,sters,dataoras,numar_act,serie_act,'+] + ; ['tip,id_part,discount,disc_fara_tva,discount_evidentiat,text_aditional,facturat,data_facturat,'+] + ; ['explicatie,altele,client,cod,id_util,utilizator,utils,utilfact,id_utilm,utilm,dataoram,delegat,bidelegat,cnpdelegat,'+] + ; ['nume_agent,nrinmat,total_fara_tva,total_tva,total_cu_tva,id_gestiune,serie_chit,nr_incasare,incasat,'+] + ; ['in_valuta,sucursala,id_ruta,ruta,curs,multiplicator,nume_val,'+] + ; ['valuta,id_valuta,valval,tvaval,totval,'+] + ; ['id_delegat,id_agent,id_masina,valoarea,'+] + ; ['nume_gestiune,id_sectie,sectie,id_lucrare,lucrare,tip_incasare,afisare_scadenta,id_ordl,tva_incasare,listare_detaliata,'+] + ; ['id_facturare,adresa_facturare,email_facturare,adresa_client,email_client,adresa_beneficiar,email_beneficiar,'+] + ; ['id_beneficiar, beneficiar, tip_factura, ctip_factura, id_ctr, contract, eproforma,tip_saft,tip_saftname, '+]+; ['id_livrare,adresa_livrare,denumire_adresa_livrare,email_livrare,institutie_publica,efactura,cod_fiscal,id_fact from fact_vfacturi where '] lcOrder = [data_act,numar_act] lcFiltru = [rownum <= 10 and sters = 0] gencursor('poFacturi', 'crsfacturi', lcSelect, lcFiltru, lcSchema, lcOrder, .F., [], .F., []) poFacturi.ca_baza1.afisare() DO asserteaza WITH 'crsfacturi incarcat (rownum>0)', Used('crsfacturi') AND Reccount('crsfacturi') > 0, IIF(Used('crsfacturi'), TRANSFORM(Reccount('crsfacturi')), 'crsfacturi lipsa') IF Used('crsfacturi') Select crsfacturi DO asserteaza WITH 'camp id_utilm exista, tip N', Type('crsfacturi.id_utilm') = 'N', Type('crsfacturi.id_utilm') DO asserteaza WITH 'camp utilm exista, tip C', Type('crsfacturi.utilm') = 'C', Type('crsfacturi.utilm') DO asserteaza WITH 'camp dataoram exista, tip T', Type('crsfacturi.dataoram') = 'T', Type('crsfacturi.dataoram') LOCAL lnConIdUtilm lnConIdUtilm = 0 Select crsfacturi Scan IF !Isnull(id_utilm) AND id_utilm != 0 lnConIdUtilm = m.lnConIdUtilm + 1 ENDIF Endscan IF m.lnConIdUtilm = 0 STRTOFILE('ATENTIE: zero randuri cu id_utilm completat in esantion (rownum<=10) - absenta din date, nu dovada de defect' + CHR(13) + CHR(10), gcErrLog, 1) ELSE STRTOFILE('gasit ' + TRANSFORM(m.lnConIdUtilm) + ' rand(uri) cu id_utilm completat' + CHR(13) + CHR(10), gcErrLog, 1) ENDIF Use In crsfacturi ENDIF STRTOFILE('REZULTAT: ' + TRANSFORM(gnPass) + ' PASS / ' + TRANSFORM(gnFail) + ' FAIL' + CHR(13) + CHR(10), gcErrLog, 1) QUIT PROCEDURE asserteaza LPARAMETERS tcEticheta, tlConditie, tcDetaliu IF m.tlConditie gnPass = m.gnPass + 1 STRTOFILE('PASS: ' + m.tcEticheta + ' (' + Transform(m.tcDetaliu) + ')' + CHR(13) + CHR(10), gcErrLog, 1) ELSE gnFail = m.gnFail + 1 STRTOFILE('FAIL: ' + m.tcEticheta + ' (' + Transform(m.tcDetaliu) + ')' + CHR(13) + CHR(10), gcErrLog, 1) ENDIF ENDPROC PROCEDURE test_error_handler LPARAMETERS tnError, tcMessage, tcProgram, tnLine STRTOFILE('EROARE ' + TRANSFORM(m.tnError) + ': ' + m.tcMessage + ' in ' + m.tcProgram + ' linia ' + TRANSFORM(m.tnLine) + CHR(13) + CHR(10), gcErrLog, 1) QUIT ENDPROC