sync SVN r18211

This commit is contained in:
2026-09-28 09:17:38 +03:00
parent 7c8da7bf66
commit 35dbaa4446
8 changed files with 316 additions and 19 deletions

View File

@@ -17,6 +17,11 @@
*!* 15.09.2021
*!* verific_analitic - acont_alt, explicatie_alt
*!* 25.09.2026
*!* marius.mutu
*!* verificare_note_contabile - garzi pe id_fact/tva_incasare/nract, pentru cursorii care nu au aceste campuri
*!* LipsuriNoteContabile - coloreaza celulele cu campuri lipsa si sare la urmatorul rand cu lipsuri
******************************** INCEPUT: viz_act ********************************
Procedure viz_act
Lparameters tnCurs,tcValuta
@@ -589,9 +594,11 @@ Procedure verificare_note_contabile
*!* 18.09.2026
*!* marius.mutu
*!* marcaj opt-in al randurilor cu campuri lipsa, doar daca apelantul are campul clipsa pe cursor
Local llMarcajLipsuri, llMesajConstruit, lcClipsaRand, lcScopVerif
Local llMarcajLipsuri, llMesajConstruit, lcClipsaRand, lcScopVerif, llCuIdFact, llCuNract
lcScopVerif = Iif(Vartype(tnRecno) = 'N' And tnRecno > 0, 'RECORD ' + Transform(tnRecno), 'ALL') && tnRecno: verific doar randul dat
llMarcajLipsuri = (Type(lcAct + '.clipsa') = 'C')
llCuIdFact = (Type(lcAct + '.id_fact') = 'N' And Type(lcAct + '.tva_incasare') = 'N')
llCuNract = (Type(lcAct + '.nract') <> 'U')
llMesajConstruit = .F.
If llMarcajLipsuri
Replace &lcScopVerif clipsa With '' In (lcAct)
@@ -604,7 +611,7 @@ Procedure verificare_note_contabile
lcScc = Alltrim(Nvl(scc,''))
*!* 07.05.2013 : verific id_fact de pe notele de TVA devenit exigibil ( 4426 - 4428 si 4428 - 4427 ), id_factc
*!* si id_factd sa nu fie marcate ca sterse in tabela "documente"
lcIdFact = Iif(id_fact>0 and tva_incasare=1 and ((scd = [4426] and scc = [4428]) or (scd = [4428] and scc = [4427])),Alltrim(Str(id_fact)),[])
lcIdFact = Iif(llCuIdFact And id_fact>0 and tva_incasare=1 and ((scd = [4426] and scc = [4428]) or (scd = [4428] and scc = [4427])),Alltrim(Str(id_fact)),[])
lcIdFact = lcIdFact + Iif(id_factc>0,Iif(!Empty(lcIdFact),[,],[]) + Alltrim(Str(id_factc)),[])
lcIdFact = lcIdFact + Iif(id_factd>0,Iif(!Empty(lcIdFact),[,],[]) + Alltrim(Str(id_factd)),[])
*!* 07.05.2013 ^
@@ -629,7 +636,7 @@ Procedure verificare_note_contabile
Endif
Endif
*!* 11.03.2008 ^
If Empty(nract)
If llCuNract And Empty(nract)
ll_return = .F.
If !llMesajConstruit
lcMesaj = lcMesaj + ',' + 'nr.document'
@@ -1060,6 +1067,7 @@ Procedure verificare_note_contabile
*!* modificare 14.11.2007
*!* Verificare mai multe nr act pe acelasi Id fact
If llCuIdFact And llCuNract
Select Distinct id_fact,nract From &lcAct Where !Inlist(Nvl(id_fact,0),0,-1) ;
and !(tva_incasare=1 and ((scd = [4426] and scc = [4428]) or (scd = [4428] and scc = [4427]))) ; && modificare ROACONT v 2.4.4
Into Cursor cduplicatetemp1
@@ -1081,6 +1089,7 @@ Procedure verificare_note_contabile
ll_return = .F.
Endif
Use In (Select("cduplicatetemp"))
Endif
*!* modificare ROAPRODUCTIE v 2.0.2
If !Empty(lcMesaj) And !tlFaraMesaj
@@ -2129,3 +2138,164 @@ Procedure Eval_balanta
Repl All totcred With Round(totcred/tnCurs,gnPval)
Endproc && eval_balanta
******************************************************************************************
Define Class LipsuriNoteContabile As Custom
cAlias = ''
lVerificAnalitic = .F.
lCacheProprie = .F.
Procedure Init(tcAlias, tlVerificAnalitic)
This.cAlias = tcAlias
This.lVerificAnalitic = tlVerificAnalitic
Endproc
Procedure Coloreaza(toGrid)
*!* coloanele de completat se coloreaza roz; coloana se recunoaste dupa ControlSource, nu dupa pozitia din grila
Local lnCol, lnCfg, lnI, loCol, lcCs, lcCamp, lcExpr
Local Array laCfg(10,3)
laCfg(1,1) = 'scd'
laCfg(1,2) = 'S'
laCfg(1,3) = 'Empty(' + This.cAlias + '.scd) Or Upper(Left(' + This.cAlias + '.scd,1)) = "X"'
laCfg(2,1) = 'scc'
laCfg(2,2) = 'C'
laCfg(2,3) = 'Empty(' + This.cAlias + '.scc) Or Upper(Left(' + This.cAlias + '.scc,1)) = "X"'
laCfg(3,1) = 'ascd'
laCfg(3,2) = 'a'
laCfg(3,3) = '.T.'
laCfg(4,1) = 'ascc'
laCfg(4,2) = 'b'
laCfg(4,3) = '.T.'
laCfg(5,1) = 'partd'
laCfg(5,2) = 'p'
laCfg(5,3) = 'Empty(Nvl(' + This.cAlias + '.id_partd,0))'
laCfg(6,1) = 'partc'
laCfg(6,2) = 'q'
laCfg(6,3) = 'Empty(Nvl(' + This.cAlias + '.id_partc,0))'
laCfg(7,1) = 'pereched'
laCfg(7,2) = 'd'
laCfg(7,3) = 'Empty(Nvl(' + This.cAlias + '.pereched,0))'
laCfg(8,1) = 'perechec'
laCfg(8,2) = 'c'
laCfg(8,3) = 'Empty(Nvl(' + This.cAlias + '.perechec,0))'
laCfg(9,1) = 'nume_val'
laCfg(9,2) = 'V'
laCfg(9,3) = 'Empty(Nvl(' + This.cAlias + '.id_valuta,0))'
laCfg(10,1) = 'denumiretax'
laCfg(10,2) = 'T'
laCfg(10,3) = 'Empty(Nvl(' + This.cAlias + '.id_jtva_coloana,0))'
For lnCol = 1 To toGrid.ColumnCount
lcCs = Alltrim(toGrid.Columns(lnCol).ControlSource)
If Empty(lcCs)
Loop
Endif
lcCamp = Lower(Getwordnum(lcCs, Getwordcount(lcCs, '.'), '.'))
lnCfg = 0
For lnI = 1 To Alen(laCfg,1)
If laCfg(lnI,1) = lcCamp
lnCfg = lnI
Exit
Endif
Endfor
If lnCfg = 0
Loop
Endif
loCol = toGrid.Columns(lnCol)
lcExpr = Alltrim(loCol.DynamicBackColor)
If Empty(lcExpr)
lcExpr = Transform(loCol.BackColor)
Endif
loCol.DynamicBackColor = "Iif('" + laCfg(lnCfg,2) + "' $ " + This.cAlias + ".clipsa And (" + laCfg(lnCfg,3) + "), Rgb(255,205,205), " + lcExpr + ")"
Endfor
Endproc
Procedure Verifica(toForm)
*!* verificare silentioasa: marcheaza lipsurile in clipsa, repozitioneaza pe randul curent si reactualizeaza eticheta
Local lnRecno, lnLipsuri, lnSucces, lcSql, llLock
If !Used(This.cAlias) Or Type(This.cAlias + '.clipsa') <> 'C'
Return
Endif
If !Used('crsLipsuriCfg')
lcSql = 'select distinct c.cont as contpart, c.fel_cont, c.cu_inregistrari, c.explicatie as explic_cont, e.cont_c as exceptie, e.debit as pozitie, e.invers, 0 as gasit ' + ;
'from ' + gcS + '.vconfig_cont_ireg c left join ' + gcS + '.exceptii_ireg e on c.cont = e.cont and e.invers = 1'
lnSucces = goExecutor.oExecute(lcSql, 'crsLipsuriCfg')
If lnSucces > 0
lcSql = 'select CONT, ACONT from ' + gcS + '.vplcont_ANALITIC where inactiv = 0 and an = ?gnAn'
lnSucces = goExecutor.oExecute(lcSql, 'crsLipsuriPlcont')
Endif
If lnSucces < 1
If Used('crsLipsuriCfg')
Use In crsLipsuriCfg
Endif
If Used('crsLipsuriPlcont')
Use In crsLipsuriPlcont
Endif
Else
This.lCacheProprie = .T.
Endif
Endif
llLock = toForm.LockScreen
toForm.LockScreen = .T.
lnRecno = Recno(This.cAlias)
verificare_note_contabile(This.cAlias, This.lVerificAnalitic, .F., .F., .T.)
Select (This.cAlias)
Replace clipsa With Alltrim(clipsa) + 'S' For !'S' $ clipsa And Upper(Left(Nvl(scd,''),1)) = 'X' And !Empty(suma)
Replace clipsa With Alltrim(clipsa) + 'C' For !'C' $ clipsa And Upper(Left(Nvl(scc,''),1)) = 'X' And !Empty(suma)
Count For !Empty(clipsa) To lnLipsuri
Try
Go lnRecno
Catch
Go Top
Endtry
toForm.lblLipsuri.Caption = 'Completeaza: ' + Transform(lnLipsuri)
toForm.lblLipsuri.ToolTipText = 'Celulele rosii trebuie completate. Click pentru urmatorul rand.'
toForm.lblLipsuri.Visible = (lnLipsuri > 0)
If lnLipsuri > 0
toForm.lblLipsuri.Left = toForm.But_nou1.Left - toForm.lblLipsuri.Width - 12
Endif
toForm.Gridb1.Refresh()
toForm.LockScreen = llLock
Endproc
Procedure SaltUrmatoare
*!* click pe eticheta: sare la urmatorul rand cu lipsuri, cu revenire la primul la capatul listei
Local lnRec, loForm
Local Array laEv(1)
AEVENTS(laEv, 0)
If Alen(laEv,1) = 0 Or Vartype(laEv(1)) <> 'O'
Return
Endif
loForm = laEv(1).Parent
Select (This.cAlias)
lnRec = Recno(This.cAlias)
If !Eof()
Skip
Endif
Locate Rest For !Empty(clipsa)
If !Found()
Locate For !Empty(clipsa)
Endif
If Found()
loForm.Gridb1.SetFocus()
loForm.Gridb1.Refresh()
Else
Try
Go lnRec
Catch
Go Top
Endtry
Endif
Endproc
Procedure Destroy
*!* cache-ul se inchide doar daca l-a incarcat acest obiect
If This.lCacheProprie
If Used('crsLipsuriCfg')
Use In crsLipsuriCfg
Endif
If Used('crsLipsuriPlcont')
Use In crsLipsuriPlcont
Endif
Endif
Endproc
Enddefine
******************************************************************************************

View File

@@ -59,6 +59,11 @@
*!* introducere_compacta
*!* Aduc explicatia, explicatia4 si explicatia5 in cursorul introdc, ca sa poata fi editate pe fiecare rand din grila
*!* 25.09.2026
*!* marius.mutu
*!* introducere_compacta
*!* Campul clipsa in cursorul introdc, pentru marcajul si colorarea randurilor cu campuri lipsa
*--------------------------------------------
Function deschide_menu
Parameters tabela, cc1, cc2, mnrtata, stinga, sus, ONT
@@ -882,7 +887,7 @@ Procedure introducere_compacta
A.nresp, A.id_sectie, A.sectie, A.id_venchelt, A.dst_chlt, N.id_jtax As id_jtva_coloana, ;
00000000000000 As id_factd, 00000000000000 As id_factc, 00000000000000 As pereched, 00000000000000 As perechec, ;
a.nrord, a.id_lucrare, ;
A.explicatia, A.explicatia4, A.explicatia5 ;
A.explicatia, A.explicatia4, A.explicatia5, Space(10) As clipsa ;
From cnote_contabile N Join actactan A On N.ID_SET = A.ID_SET ;
Where N.ID_SET = tn_idset ;
Into Cursor introdc Readwrite Order By ordine