sync SVN r18211
This commit is contained in:
@@ -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
|
||||
******************************************************************************************
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user