158 lines
6.0 KiB
Plaintext
158 lines
6.0 KiB
Plaintext
SET SAFETY OFF
|
|
SET TALK OFF
|
|
SET NOTIFY OFF
|
|
CLOSE DATABASES
|
|
|
|
PUBLIC gcLog, gcCaz, gnPass, gnFail
|
|
gcLog = "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\out\probe_cont_667b.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)
|
|
gcCaz = ""
|
|
gnPass = 0
|
|
gnFail = 0
|
|
ON ERROR DO AfErr WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
|
|
|
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 AfLog WITH "FAIL: conexiune Oracle esuata"
|
|
DO Final
|
|
ENDIF
|
|
gnIdUtil = 8
|
|
DO AfLog WITH "ENV OK"
|
|
|
|
LOCAL lnOk, lnIdPolStoc, lcSql, lcMesaj, lnIdArt667, lcNumeArt667, lnIdArtNise, lnIdNotaOrig
|
|
lnOk = SQLEXEC(gnHandle, "select varvalue from optiuni where program='ROAFACTURARE' and varname='ID_POL_PRET_STOC'", "crsopt")
|
|
lnIdPolStoc = IIF(lnOk > 0 AND USED('crsopt') AND !ISNULL(crsopt.varvalue), VAL(ALLTRIM(crsopt.varvalue)), 0)
|
|
IF USED('crsopt')
|
|
USE IN crsopt
|
|
ENDIF
|
|
PUBLIC gnId_pol_pret_stoc
|
|
gnId_pol_pret_stoc = lnIdPolStoc
|
|
DO AfLog WITH "politica stoc id_pol=" + TRANSFORM(lnIdPolStoc)
|
|
IF lnIdPolStoc <= 0
|
|
DO Final
|
|
ENDIF
|
|
|
|
IF USED('crspol')
|
|
USE IN crspol
|
|
ENDIF
|
|
lnOk = SQLEXEC(gnHandle, "select nume_lista_preturi, id_nota, preturi_cu_tva from crm_politici_preturi where id_pol = " + TRANSFORM(lnIdPolStoc), "crspol")
|
|
IF lnOk > 0 AND USED('crspol') AND RECCOUNT('crspol') > 0
|
|
lnIdNotaOrig = crspol.id_nota
|
|
DO AfLog WITH "politica nume=[" + ALLTRIM(NVL(crspol.nume_lista_preturi,[])) + "] id_nota=" + TRANSFORM(NVL(crspol.id_nota,0)) + " preturi_cu_tva=" + TRANSFORM(NVL(crspol.preturi_cu_tva,0))
|
|
ENDIF
|
|
IF USED('crspol')
|
|
USE IN crspol
|
|
ENDIF
|
|
|
|
IF !ISNULL(lnIdNotaOrig) AND NVL(lnIdNotaOrig,0) > 0
|
|
IF USED('crsn')
|
|
USE IN crsn
|
|
ENDIF
|
|
lnOk = SQLEXEC(gnHandle, "select scd, scc from crm_note_vanzari v join note_contabile n on n.id_set=v.id_set where v.id_nota=" + TRANSFORM(lnIdNotaOrig), "crsn")
|
|
IF lnOk > 0 AND USED('crsn') AND RECCOUNT('crsn') > 0
|
|
DO AfLog WITH "nota politicii: scd=[" + ALLTRIM(NVL(crsn.scd,[])) + "] scc=[" + ALLTRIM(NVL(crsn.scc,[])) + "]"
|
|
ENDIF
|
|
IF USED('crsn')
|
|
USE IN crsn
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF USED('crsart')
|
|
USE IN crsart
|
|
ENDIF
|
|
lnOk = SQLEXEC(gnHandle, "select a.id_articol, e.denumire from crm_politici_pret_art a join nom_articole e on e.id_articol=a.id_articol where a.id_pol=" + TRANSFORM(lnIdPolStoc) + " and trim(e.cont)='667' and rownum=1", "crsart")
|
|
IF lnOk > 0 AND USED('crsart') AND RECCOUNT('crsart') = 1
|
|
lnIdArt667 = crsart.id_articol
|
|
lcNumeArt667 = ALLTRIM(NVL(crsart.denumire,[]))
|
|
ENDIF
|
|
IF USED('crsart')
|
|
USE IN crsart
|
|
ENDIF
|
|
IF USED('crsartn')
|
|
USE IN crsartn
|
|
ENDIF
|
|
lnOk = SQLEXEC(gnHandle, "select a.id_articol, e.denumire from crm_politici_pret_art a join nom_articole e on e.id_articol=a.id_articol where a.id_pol=" + TRANSFORM(lnIdPolStoc) + " and trim(e.cont)='371' and rownum=1", "crsartn")
|
|
IF lnOk > 0 AND USED('crsartn') AND RECCOUNT('crsartn') = 1
|
|
lnIdArtNise = crsartn.id_articol
|
|
ENDIF
|
|
IF USED('crsartn')
|
|
USE IN crsartn
|
|
ENDIF
|
|
|
|
DO AfLog WITH "--- STARE CURENTA (cu nota politicii setata) ---"
|
|
lcMesaj = verifica_cont_venit_linie(lnIdArt667, lnIdPolStoc)
|
|
DO AfLog WITH "667 [" + lcNumeArt667 + "] -> [" + lcMesaj + "]"
|
|
IF !EMPTY(lcMesaj)
|
|
gnFail = gnFail + 1
|
|
ELSE
|
|
gnPass = gnPass + 1
|
|
ENDIF
|
|
IF lnIdArtNise > 0
|
|
lcMesaj = verifica_cont_venit_linie(lnIdArtNise, lnIdPolStoc)
|
|
DO AfLog WITH "371 art=" + TRANSFORM(lnIdArtNise) + " -> [" + lcMesaj + "]"
|
|
ENDIF
|
|
|
|
DO AfLog WITH "--- REPRODUCERE: id_nota politica = NULL (tranzactie, ROLLBACK la final) ---"
|
|
lnOk = SQLEXEC(gnHandle, "UPDATE crm_politici_preturi SET id_nota = NULL WHERE id_pol = " + TRANSFORM(lnIdPolStoc))
|
|
DO AfLog WITH "update id_nota=NULL lnOk=" + TRANSFORM(lnOk)
|
|
lcMesaj = verifica_cont_venit_linie(lnIdArt667, lnIdPolStoc)
|
|
DO AfLog WITH "667 art=" + TRANSFORM(lnIdArt667) + " fara nota politica -> [" + lcMesaj + "]"
|
|
IF !EMPTY(lcMesaj)
|
|
gnPass = gnPass + 1
|
|
DO AfLog WITH "REPRODUS: eroarea 'nu are cont de venit' apare cand politica nu are nota si articolul e 667"
|
|
ELSE
|
|
gnFail = gnFail + 1
|
|
DO AfLog WITH "NU S-A REPRODUS"
|
|
ENDIF
|
|
lcMesaj = deriva_cont_venit_fara_pol(lnIdArt667, "667")
|
|
DO AfLog WITH "deriva_cont_venit_fara_pol(667,667)=[" + lcMesaj + "]"
|
|
|
|
DO AfLog WITH "--- simulare cursor_articol Oracle pentru articolul 667, fara nota politica ---"
|
|
lcSql = "select nvl(pack_facturare.nid_venchelt, nvl(a.id_venchelt, 0)) as id_venchelt, " + ;
|
|
"(case when " + TRANSFORM(lnIdPolStoc) + " = 0 then nvl(a.id_nota, b.id_nota) else b.id_nota end) as nota_fol, " + ;
|
|
"d.scd as scd, d.scc as scc, d.id_set " + ;
|
|
"from crm_politici_pret_art a " + ;
|
|
"left join crm_politici_preturi b on a.id_pol = b.id_pol " + ;
|
|
"left join crm_note_vanzari c on (case when a.id_pol = " + TRANSFORM(lnIdPolStoc) + " then nvl(a.id_nota, b.id_nota) else b.id_nota end) = c.id_nota " + ;
|
|
"left join note_contabile d on d.id_set = c.id_set " + ;
|
|
"where a.id_pol = " + TRANSFORM(lnIdPolStoc) + " and a.id_articol = " + TRANSFORM(lnIdArt667)
|
|
IF USED('crssim')
|
|
USE IN crssim
|
|
ENDIF
|
|
lnOk = SQLEXEC(gnHandle, lcSql, "crssim")
|
|
IF lnOk > 0 AND USED('crssim')
|
|
IF RECCOUNT('crssim') > 0
|
|
DO AfLog WITH "Oracle ar folosi nota " + TRANSFORM(NVL(crssim.nota_fol,0)) + " -> scd=[" + ALLTRIM(NVL(crssim.scd,[])) + "] scc=[" + ALLTRIM(NVL(crssim.scc,[])) + "] => daca scc e gol, FACT-033 'nu are cont de venit'"
|
|
ELSE
|
|
DO AfLog WITH "Oracle: zero randuri pentru articol in politica"
|
|
ENDIF
|
|
ENDIF
|
|
IF USED('crssim')
|
|
USE IN crssim
|
|
ENDIF
|
|
|
|
DO Final
|
|
|
|
PROCEDURE AfLog
|
|
LPARAMETERS tcMsg
|
|
STRTOFILE(tcMsg + CHR(13) + CHR(10), gcLog, 1)
|
|
ENDPROC
|
|
|
|
PROCEDURE AfErr
|
|
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
|
|
DO AfLog WITH "ERROR " + TRANSFORM(tnErr) + " [" + gcCaz + tcProg + ":" + TRANSFORM(tnLine) + "] " + tcMsg
|
|
ENDPROC
|
|
|
|
PROCEDURE Final
|
|
IF TYPE('gnHandle') = 'N' AND gnHandle > 0
|
|
SQLEXEC(gnHandle, "ROLLBACK")
|
|
DO AfLog WITH "ROLLBACK trimis"
|
|
ENDIF
|
|
DO AfLog WITH "TOTAL PASS=" + TRANSFORM(gnPass) + " FAIL=" + TRANSFORM(gnFail)
|
|
DO AfLog WITH "END " + TTOC(DATETIME())
|
|
QUIT
|
|
ENDPROC
|