* probe_s8_surse.prg - alege sursele pentru test_s8_cablare_incarcare (comanda tip 3 din * MARIUSM_AUTO): una obisnuita si una cu linie de discount (cantitate negativa). * Cheama direct pack_facturare.cursor_comanda, exact cum o face incarca_cursor_articole. * Rulare: vfp9.exe -A -T probe_s8_surse.prg 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 gcLog gcLog = "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\probe_s8_surse.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) ON ERROR DO PsLog WITH 'ON ERROR ' + TRANSFORM(ERROR()) + ' [' + PROGRAM() + ':' + TRANSFORM(LINENO()) + '] ' + MESSAGE() ON SHUTDOWN QUIT TRY SET PATH TO "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\achizitie_import\stub_verificare" 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 PsLog WITH 'EROARE: conectare Oracle esuata' QUIT ENDIF SQLSETPROP(gnHandle, "QueryTimeOut", 45) IF !actualizeaza_optiuni_program() DO PsLog WITH 'EROARE: actualizeaza_optiuni_program()' QUIT ENDIF gnScadereStoc = 0 gnIdSucursala = 167 goExecutor.oExecuta([begin pack_contafin.set_id_sucursala(?gnIdSucursala); end;]) gnIdUtil = 8 goExecutor.oExecuta([begin pack_sesiune.set_Id_Util(?gnIdUtil); end;]) DO PsLog WITH 'ENV OK gnHandle=' + TRANSFORM(gnHandle) + ' gcS=' + gcS LOCAL lnQ lnQ = goExecutor.oExecute([select c.id_comanda, c.nr_comanda, c.id_part, p.nume ] + ; [from comenzi c, nom_parteneri p where c.id_part = p.id_part ] + ; [order by c.id_comanda desc], 'crsCom') IF lnQ < 0 OR !USED('crsCom') DO PsLog WITH 'EROARE lista comenzi: ' + TRANSFORM(goExecutor.oPrelucrareEroare()) QUIT ENDIF DO PsLog WITH 'comenzi total=' + TRANSFORM(RECCOUNT('crsCom')) PRIVATE poDate poDate = CREATEOBJECT('empty') ADDPROPERTY(poDate, 'zi_curs', DATE()) ADDPROPERTY(poDate, 'tip', 3) ADDPROPERTY(poDate, 'listaid', '') LOCAL lnI, lnNeg, lnGest, lnCnt, lcLinie, lnCandidati lnCandidati = 0 SELECT crsCom GO TOP SCAN WHILE lnCandidati < 60 lnCandidati = lnCandidati + 1 poDate.listaid = ALLTRIM(TRANSFORM(crsCom.id_comanda)) lcLinie = 'id_comanda=' + PADR(poDate.listaid, 8) + ' nr=' + PADR(ALLTRIM(TRANSFORM(crsCom.nr_comanda)), 10) + ; ' client=' + PADR(ALLTRIM(NVL(crsCom.nume, '')), 30) IF USED('crsart') USE IN crsart ENDIF lnQ = goExecutor.oExecute([{call ] + gcS + [.pack_facturare.cursor_comanda(?poDate.zi_curs,?poDate.tip,?poDate.listaid,?gnIdUtil)}], 'crsart') IF lnQ < 0 DO PsLog WITH lcLinie + ' -> EROARE ' + TRANSFORM(goExecutor.oPrelucrareEroare()) ELSE lnCnt = RECCOUNT('crsart') lnNeg = 0 lnGest = 0 IF lnCnt > 0 SELECT crsart COUNT FOR cantitate < 0 TO lnNeg COUNT FOR NVL(gestionabil, 0) = 1 TO lnGest ENDIF DO PsLog WITH lcLinie + ' -> linii=' + TRANSFORM(lnCnt) + ' negative=' + TRANSFORM(lnNeg) + ' gestionabile=' + TRANSFORM(lnGest) ENDIF SELECT crsCom ENDSCAN *-- structura cursorului, o singura data, pe ultima comanda cu linii IF USED('crsart') AND RECCOUNT('crsart') > 0 LOCAL ARRAY laF[1] LOCAL lnF, lcS lnF = AFIELDS(laF, 'crsart') lcS = '' FOR lnI = 1 TO lnF lcS = lcS + laF[lnI, 1] + ' ' ENDFOR DO PsLog WITH 'CAMPURI crsarticole: ' + lcS ENDIF DO PsLog WITH 'END ' + TTOC(DATETIME()) CATCH TO loExc DO PsLog WITH 'CATCH ' + TRANSFORM(loExc.ErrorNo) + ' ' + loExc.Message + ' [' + loExc.Procedure + ':' + TRANSFORM(loExc.LineNo) + ']' ENDTRY QUIT PROCEDURE PsLog LPARAMETERS tcMsg STRTOFILE(tcMsg + CHR(13) + CHR(10), gcLog, 1) ENDPROC