#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
This commit is contained in:
112
utile/Teste/facturare_unificat/probe_s8_surse.prg
Normal file
112
utile/Teste/facturare_unificat/probe_s8_surse.prg
Normal file
@@ -0,0 +1,112 @@
|
||||
* 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
|
||||
Reference in New Issue
Block a user