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
146 lines
6.0 KiB
Plaintext
146 lines
6.0 KiB
Plaintext
* test_jtva_v2_constatare.prg
|
|
* Headless, read-only, fara formulare, fara emitere: constatare pe date deja existente in
|
|
* MARIUSM_AUTO@ROA_CENTRAL despre tiparul ID_JTVA_COLOANA/PROC_TVA/TAXCODE gol pe documentele
|
|
* emise de frm_facturare_articole2 (v2), gasit in S6-2 pe comanda SSS656/id_vanzare=1114.
|
|
* Nu emite nimic, doar SELECT.
|
|
*
|
|
* Rulare: vfp9.exe -A -T "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\test_jtva_v2_constatare.prg"
|
|
* Log: D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\test_jtva_v2_constatare.log
|
|
|
|
SET SAFETY OFF
|
|
SET TALK OFF
|
|
CLOSE DATABASES
|
|
|
|
PUBLIC gcLog
|
|
gcLog = "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\test_jtva_v2_constatare.log"
|
|
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcLog)
|
|
|
|
TRY
|
|
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 JLog WITH 'EROARE: conectare Oracle esuata'
|
|
DO JFinal
|
|
ENDIF
|
|
DO JLog WITH 'ENV OK gnHandle=' + TRANSFORM(gnHandle)
|
|
|
|
DO JLog WITH CHR(13) + CHR(10) + '===== 1. cele 4 documente cunoscute (VANZARI + rezumat VANZARI_DETALII + rezumat ACT) ====='
|
|
DO Raporteaza WITH 1111
|
|
DO Raporteaza WITH 1112
|
|
DO Raporteaza WITH 1113
|
|
DO Raporteaza WITH 1114
|
|
|
|
DO JLog WITH CHR(13) + CHR(10) + '===== 2. esantion productie recenta (v1), serie <> SSS, tip in (2,3), ordonat id_vanzare desc ====='
|
|
LOCAL lcSql
|
|
lcSql = [select id_vanzare, tip, id_part, serie_act, numar_act as nract, total_fara_tva, total_tva from vanzari ] + ;
|
|
[where serie_act <> 'SSS' and tip in (2,3) and rownum <= 15 order by id_vanzare desc]
|
|
IF goExecutor.oExecute(lcSql, 'crsesantion') < 0
|
|
DO JLog WITH 'EROARE esantion productie: ' + goExecutor.oPrelucrareEroare()
|
|
ELSE
|
|
SELECT crsesantion
|
|
SCAN
|
|
DO Raporteaza WITH id_vanzare
|
|
ENDSCAN
|
|
USE IN crsesantion
|
|
ENDIF
|
|
|
|
DO JLog WITH CHR(13) + CHR(10) + '===== 3. documente istorice ale clientilor 2873 si 2874 (test decisiv client vs formular) ====='
|
|
lcSql = [select id_vanzare, tip, id_part, serie_act, numar_act as nract, total_fara_tva, total_tva from vanzari ] + ;
|
|
[where id_part in (2873,2874) and rownum <= 20 order by id_part, id_vanzare desc]
|
|
IF goExecutor.oExecute(lcSql, 'crsclienti') < 0
|
|
DO JLog WITH 'EROARE esantion clienti: ' + goExecutor.oPrelucrareEroare()
|
|
ELSE
|
|
SELECT crsclienti
|
|
SCAN
|
|
DO Raporteaza WITH id_vanzare
|
|
ENDSCAN
|
|
USE IN crsclienti
|
|
ENDIF
|
|
|
|
DO JFinal
|
|
|
|
CATCH TO loExc
|
|
DO JLog WITH 'CATCH TOP-LEVEL ErrorNo=' + TRANSFORM(loExc.ErrorNo) + ' Message=' + loExc.Message + ;
|
|
' Proc=' + loExc.Procedure + ' Line=' + TRANSFORM(loExc.LineNo)
|
|
DO JFinal
|
|
ENDTRY
|
|
|
|
QUIT
|
|
|
|
*----------------------------------------------------------------------------------------
|
|
* Raporteaza: pentru un id_vanzare dat, scrie in log randul VANZARI relevant, rezumatul
|
|
* VANZARI_DETALII (jonctiune pe id_vanzare) si rezumatul ACT (jonctiune pe serie_act+nract).
|
|
PROCEDURE Raporteaza
|
|
LPARAMETERS tnIdVanzare
|
|
LOCAL lcSql, lcSerieAct, lnNract, lcJtvaSet, lcTaxSet
|
|
|
|
lcSql = [select id_vanzare, tip, id_part, serie_act, numar_act as nract, total_fara_tva, total_tva, ] + ;
|
|
[total_cu_tva from vanzari where id_vanzare = ] + TRANSFORM(tnIdVanzare)
|
|
IF goExecutor.oExecute(lcSql, 'crsv') < 0
|
|
DO JLog WITH 'EROARE VANZARI id_vanzare=' + TRANSFORM(tnIdVanzare) + ': ' + goExecutor.oPrelucrareEroare()
|
|
RETURN
|
|
ENDIF
|
|
IF !USED('crsv') OR RECCOUNT('crsv') = 0
|
|
DO JLog WITH 'VANZARI id_vanzare=' + TRANSFORM(tnIdVanzare) + ' NEGASIT'
|
|
IF USED('crsv')
|
|
USE IN crsv
|
|
ENDIF
|
|
RETURN
|
|
ENDIF
|
|
SELECT crsv
|
|
lcSerieAct = ALLTRIM(NVL(serie_act, ''))
|
|
lnNract = NVL(nract, 0)
|
|
DO JLog WITH 'VANZARI id_vanzare=' + TRANSFORM(tnIdVanzare) + ' tip=' + TRANSFORM(tip) + ;
|
|
' id_part=' + TRANSFORM(id_part) + ' serie_act=' + lcSerieAct + ' nract=' + TRANSFORM(lnNract) + ;
|
|
' total_fara_tva=' + TRANSFORM(total_fara_tva) + ' total_tva=' + TRANSFORM(total_tva) + ;
|
|
' total_cu_tva=' + TRANSFORM(total_cu_tva)
|
|
USE IN crsv
|
|
|
|
* rezumat VANZARI_DETALII (jonctiune pe id_vanzare)
|
|
lcSql = [select count(*) as nlinii, sum(nvl(proc_tvav,0)) as sumproc, ] + ;
|
|
[min(nvl(id_jtva_coloana,-1)) as minjtva, max(nvl(id_jtva_coloana,-1)) as maxjtva, ] + ;
|
|
[sum(case when id_jtva_coloana is null then 1 else 0 end) as njtvanull, ] + ;
|
|
[sum(case when taxcode is null then 1 else 0 end) as ntaxnull from vanzari_detalii ] + ;
|
|
[where sters = 0 and id_vanzare = ] + TRANSFORM(tnIdVanzare)
|
|
IF goExecutor.oExecute(lcSql, 'crsd') < 0
|
|
DO JLog WITH ' EROARE VANZARI_DETALII: ' + goExecutor.oPrelucrareEroare()
|
|
ELSE
|
|
SELECT crsd
|
|
DO JLog WITH ' VANZARI_DETALII linii=' + TRANSFORM(nlinii) + ' sum_proc_tvav=' + TRANSFORM(sumproc) + ;
|
|
' id_jtva_coloana[min,max]=[' + TRANSFORM(minjtva) + ',' + TRANSFORM(maxjtva) + ']' + ;
|
|
' linii_jtva_null=' + TRANSFORM(njtvanull) + ' linii_taxcode_null=' + TRANSFORM(ntaxnull)
|
|
USE IN crsd
|
|
ENDIF
|
|
|
|
* rezumat ACT (jonctiune pe serie_act+nract)
|
|
IF EMPTY(lcSerieAct) OR lnNract = 0
|
|
DO JLog WITH ' ACT: fara serie_act/nract, sarit'
|
|
RETURN
|
|
ENDIF
|
|
lcSql = [select count(*) as nlinii, sum(nvl(suma,0)) as sumasuma, ] + ;
|
|
[min(nvl(id_jtva_coloana,-1)) as minjtva, max(nvl(id_jtva_coloana,-1)) as maxjtva, ] + ;
|
|
[sum(case when id_jtva_coloana is null then 1 else 0 end) as njtvanull, ] + ;
|
|
[sum(nvl(proc_tva,0)) as sumproctva, ] + ;
|
|
[sum(case when taxcode is null then 1 else 0 end) as ntaxnull from act where sters = 0 ] + ;
|
|
[and serie_act = '] + lcSerieAct + [' and nract = ] + TRANSFORM(lnNract)
|
|
IF goExecutor.oExecute(lcSql, 'crsa') < 0
|
|
DO JLog WITH ' EROARE ACT: ' + goExecutor.oPrelucrareEroare()
|
|
ELSE
|
|
SELECT crsa
|
|
DO JLog WITH ' ACT linii=' + TRANSFORM(nlinii) + ' suma=' + TRANSFORM(sumasuma) + ;
|
|
' id_jtva_coloana[min,max]=[' + TRANSFORM(minjtva) + ',' + TRANSFORM(maxjtva) + ']' + ;
|
|
' linii_jtva_null=' + TRANSFORM(njtvanull) + ' sum_proc_tva=' + TRANSFORM(sumproctva) + ;
|
|
' linii_taxcode_null=' + TRANSFORM(ntaxnull)
|
|
USE IN crsa
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROCEDURE JLog
|
|
LPARAMETERS tcMsg
|
|
STRTOFILE(tcMsg + CHR(13) + CHR(10), gcLog, 1)
|
|
ENDPROC
|
|
|
|
PROCEDURE JFinal
|
|
DO JLog WITH 'END ' + TTOC(DATETIME())
|
|
QUIT
|
|
ENDPROC
|