Files
comun/utile/Teste/facturare_unificat/probe_s8_surse.prg
Marius Mutu 8e022d332e #13: formular de facturare unificat - etapa curenta
Squash al branch-ului de lucru plan13-s2.

Clase: ofacturare (nucleul formularului unificat), ofacturare_comun,
ferestre_cere_date, ocomenzi, caut_ora (lista de preturi in combo-urile de
cautare), omodificari.

Programe: ofacturare impartit - ofacturare_antet, ofacturare_rutare_scriere si
ogrid_latimi sunt fisiere noi; oproceduri_facturare primeste discountul pe linie
si cota standard de TVA cand articolul nu are cota pe politica.

Documentatie: capcana SQLExec no_data_found, conventia de encoding, depanarea
testelor VFP si regulile de lucru - conflictele cu modificarile venite din alte
proiecte sunt rezolvate pastrand ambele parti.

Loguri de rulare a testelor scoase din versionare; testele raman.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
2026-09-09 21:38:25 +03:00

113 lines
3.8 KiB
Plaintext

* 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