sync SVN r18185

This commit is contained in:
2026-09-19 18:02:09 +03:00
parent b851051c44
commit 4eae0bd4a6
2 changed files with 466 additions and 131 deletions

View File

@@ -6798,6 +6798,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*<DefinedPropArrayMethod>
*m: actualizeazabaratotaluri
*m: actualizeazalabellipsuri
*m: actualizeazatotaluriextrase
*m: actualizeazaverdictactrul
*m: adaugalinietvddinarticol
@@ -6823,6 +6824,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*m: gridrightclickbuget
*m: grid_focus_prima_coloana
*m: resize_grid1
*m: saltlipsaurmatoare
*m: saltplatabuget
*m: salveazaxml
*m: semnaturadivergentesincronizare
@@ -6832,12 +6834,14 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*m: updateexplicatiesaftrul
*m: valideaza_data
*m: verificaavertizareexigibilizaretva
*m: verificalipsurisilentios
*p: cacont
*p: ccont
*p: ccontbugetanalitic
*p: ccontrol
*p: cpaymentcode
*p: csemnaturasincronizare
*p: csemnlipsuri
*p: fel_compensare
*p: lactivextrase
*p: larearticolevanzari
@@ -6856,6 +6860,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*p: nnnirvechi
*p: noldsuma && Valoarea la intrarea in campul "Suma"
*p: nprimadata
*p: nreclipsuri
*p: nsuma && Total suma inregistrari
*p: ntaxcode
*p: ntipvanzare
@@ -6881,6 +6886,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ccontbugetanalitic =
cpaymentcode =
csemnaturasincronizare =
csemnlipsuri =
DoCreate = .T.
FontCharSet = 238
Height = 530
@@ -6902,6 +6908,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
nnnirvechi = 0
noldsuma = 0
nprimadata = 0
nreclipsuri = 0
nsuma = 0
ntaxcode = 0
ntipvanzare = 0
@@ -13078,6 +13085,33 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
This.pgfArticole.PAGE3.Refresh()
ENDPROC
PROCEDURE ActualizeazaLabelLipsuri
*!* 18.09.2026
*!* marius.mutu
*!* recalculeaza eticheta cu randurile marcate clipsa nevida (verificare_note_contabile) si arata/ascunde eticheta
LOCAL lnLipsuri, lnArea, lnRecno
IF Type('This.lblLipsuri') <> 'O' OR !Used('tact') OR Type('tact.clipsa') <> 'C'
RETURN
ENDIF
lnArea = Select()
lnRecno = Recno('tact')
SELECT tact
COUNT FOR !Empty(clipsa) TO lnLipsuri
IF Between(m.lnRecno, 1, Reccount('tact'))
GO (m.lnRecno) IN tact
ENDIF
IF m.lnArea > 0
SELECT (m.lnArea)
ENDIF
This.lblLipsuri.Visible = (m.lnLipsuri > 0)
IF m.lnLipsuri > 0
This.lblLipsuri.Caption = 'Completeaza: ' + Transform(m.lnLipsuri)
This.lblLipsuri.ToolTipText = 'Celulele rosii trebuie completate. Click pentru urmatorul rand.'
This.lblLipsuri.Top = This.grid1.Top + This.grid1.Height + 4
This.lblLipsuri.Left = IIF(This.lblExtraseAutosalvare.Visible, This.lblExtraseAutosalvare.Left + This.lblExtraseAutosalvare.Width, IIF(This.lblExtraseTotaluri.Visible, This.lblExtraseTotaluri.Left + This.lblExtraseTotaluri.Width, This.cmdSelect.Left + This.cmdSelect.Width)) + 12
ENDIF
ENDPROC
PROCEDURE ActualizeazaTotaluriExtrase
*!* SQL, nu SUM/FOR: ignora SET FILTER, WHERE exclude randurile sterse
LOCAL lnIncasari, lnPlati, lnSelect, lcNuBate, lcTooltip, lcIban, lnCalculat, llBate, lnVerificate, lnSoldNote, lnSoldExtras, lnRecnoBuget, lnPlatiBuget
@@ -13163,9 +13197,12 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDTRY
SELECT (m.lnSelect)
This.lblPlatiBuget.Visible = m.lnPlatiBuget > 0
This.lblPlatiBuget.Caption = 'Plati la buget de defalcat: ' + ALLTRIM(TRANSFORM(m.lnPlatiBuget))
This.lblPlatiBuget.Left = IIF(This.lblExtraseAutosalvare.Visible, This.lblExtraseAutosalvare.Left + This.lblExtraseAutosalvare.Width, This.lblExtraseTotaluri.Left + This.lblExtraseTotaluri.Width) + 12
This.lblPlatiBuget.Caption = 'Buget: ' + ALLTRIM(TRANSFORM(m.lnPlatiBuget))
This.lblPlatiBuget.ToolTipText = 'Plati la buget de defalcat - click pentru urmatoarea'
This.lblPlatiBuget.Left = This.Command4.Left
This.lblPlatiBuget.Top = This.cmdDefalcareBuget.Top + This.cmdDefalcareBuget.Height + 2
ENDIF
This.ActualizeazaLabelLipsuri()
ENDPROC
PROCEDURE ActualizeazaVerdictActRul
@@ -13826,6 +13863,10 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
loFrm.Show(1)
IF gnButon = 1
AplicaDefalcareBuget(m.lnRec, m.lcGrupa)
TRY
GO m.lnRec IN tact && INDEX ON din ordonare muta pointerul pe primul rand - revin pe primul rand defalcat
CATCH
ENDTRY
Thisform.CalculeazaTotal()
Thisform.Grid1.Refresh()
ENDIF
@@ -13834,6 +13875,19 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDIF
ENDPROC
PROCEDURE Destroy
*!* 19.09.2026
*!* marius.mutu
*!* inchide cache-ul local de configurare conturi/plan analitic al verificarii silentioase
IF Used('crsLipsuriCfg')
Use In crsLipsuriCfg
ENDIF
IF Used('crsLipsuriPlcont')
Use In crsLipsuriPlcont
ENDIF
DoDefault()
ENDPROC
PROCEDURE do_adauga
*!* 27.07.2011
*!* marius.mutu
@@ -14617,6 +14671,20 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
Else
llRet = .T.
EndIf
*!* 18.09.2026
*!* marius.mutu
*!* pozitionare pe primul rand cu campuri lipsa (marcaj clipsa) cand verificarea a esuat
If Type('tact.clipsa') = 'C'
This.ActualizeazaLabelLipsuri()
If !m.llRet
Select tact
Locate For !Empty(clipsa)
If Found()
Thisform.Grid1.SetFocus()
Thisform.Grid1.Refresh()
Endif
Endif
Endif
*!* 14.03.2008 ^
*!* 13.03.2008 ^
*!* modificare v 2.4.4
@@ -14952,6 +15020,22 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE Load
*!* coloane de grup (imperechere, defalcare) pe tact daca apelantul nu le-a creat - grid-ul se leaga la construire
IF Used('tact') AND Type('tact.ngrupa') <> 'N'
SELECT *, Cast(0 As I) As ngrupa, Cast(0 As I) As npoz, Space(1) As csursa_f FROM tact INTO CURSOR tact READWRITE
ENDIF
IF Used('tact') AND Type('tact.nordine') <> 'N'
SELECT *, Cast(0 As I) As nordine FROM tact INTO CURSOR tact READWRITE
REPLACE ALL nordine WITH RECNO() * 100
GO TOP
ENDIF
*!* 18.09.2026
*!* marius.mutu
*!* campul de marcaj optional pentru randurile cu campuri lipsa (verificare_note_contabile)
IF Used('tact') AND Type('tact.clipsa') <> 'C'
SELECT *, Space(10) As clipsa FROM tact INTO CURSOR tact READWRITE
ENDIF
If !Used('saft_taxtable')
update_saft_taxtable()
ENDIF
@@ -14999,12 +15083,14 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
This.lblExtraseTotaluri.Top = this.grid1.Top + this.grid1.Height + 4
This.lblExtraseAutosalvare.Top = this.grid1.Top + this.grid1.Height + 4
IF Type('This.lblPlatiBuget') = 'O'
This.lblPlatiBuget.Top = this.grid1.Top + this.grid1.Height + 4
This.cmdDefalcareBuget.Left = This.Command4.Left
This.cmdDefalcareBuget.Top = This.Command4.Top + This.Command4.Height
This.lblPlatiBuget.Left = This.Command4.Left
This.lblPlatiBuget.Top = This.cmdDefalcareBuget.Top + This.cmdDefalcareBuget.Height + 2
ENDIF
ENDIF
This.aseaza_pagina_articole()
This.ActualizeazaLabelLipsuri()
ENDPROC
@@ -15020,11 +15106,36 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
This.lblExtraseTotaluri.Top = this.grid1.Top + this.grid1.Height + 4
This.lblExtraseAutosalvare.Top = this.grid1.Top + this.grid1.Height + 4
IF Type('This.lblPlatiBuget') = 'O'
This.lblPlatiBuget.Top = this.grid1.Top + this.grid1.Height + 4
This.cmdDefalcareBuget.Left = This.Command4.Left
This.cmdDefalcareBuget.Top = This.Command4.Top + This.Command4.Height
This.lblPlatiBuget.Left = This.Command4.Left
This.lblPlatiBuget.Top = This.cmdDefalcareBuget.Top + This.cmdDefalcareBuget.Height + 2
ENDIF
ENDIF
This.ActualizeazaLabelLipsuri()
ENDPROC
PROCEDURE SaltLipsaUrmatoare
LOCAL lnRec
lnRec = RECNO('tact')
SELECT tact
IF !EOF()
SKIP
ENDIF
LOCATE REST FOR !EMPTY(clipsa)
IF !FOUND()
LOCATE FOR !EMPTY(clipsa)
ENDIF
IF FOUND()
Thisform.Grid1.SetFocus()
Thisform.Grid1.Refresh()
ELSE
TRY
GO m.lnRec
CATCH
GO TOP
ENDTRY
ENDIF
ENDPROC
PROCEDURE SaltPlataBuget
@@ -15177,6 +15288,56 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDIF
*!* 18.09.2026
*!* marius.mutu
*!* evidentiere rosie a celulelor cu campuri lipsa marcate de verificare_note_contabile (litera in tact.clipsa)
IF Type('tact.clipsa') = 'C'
LOCAL lnColLipsa, loColLipsa, lcExprLipsa, lcLitLipsa, lcCondLipsa
LOCAL ARRAY laColLipsa(11,3)
laColLipsa(1,1) = 7
laColLipsa(1,2) = 'S'
laColLipsa(1,3) = "EMPTY(tact.scd)"
laColLipsa(2,1) = 8
laColLipsa(2,2) = 'C'
laColLipsa(2,3) = "EMPTY(tact.scc)"
laColLipsa(3,1) = 5
laColLipsa(3,2) = 'N'
laColLipsa(3,3) = "EMPTY(tact.nract)"
laColLipsa(4,1) = 23
laColLipsa(4,2) = 'a'
laColLipsa(4,3) = ".T."
laColLipsa(5,1) = 24
laColLipsa(5,2) = 'b'
laColLipsa(5,3) = ".T."
laColLipsa(6,1) = 6
laColLipsa(6,2) = 'p'
laColLipsa(6,3) = "EMPTY(NVL(tact.id_partd,0))"
laColLipsa(7,1) = 10
laColLipsa(7,2) = 'q'
laColLipsa(7,3) = "EMPTY(NVL(tact.id_partc,0))"
laColLipsa(8,1) = 13
laColLipsa(8,2) = 'd'
laColLipsa(8,3) = "EMPTY(NVL(tact.pereched,0))"
laColLipsa(9,1) = 27
laColLipsa(9,2) = 'c'
laColLipsa(9,3) = "EMPTY(NVL(tact.perechec,0))"
laColLipsa(10,1) = 29
laColLipsa(10,2) = 'V'
laColLipsa(10,3) = "EMPTY(NVL(tact.id_valuta,0))"
laColLipsa(11,1) = 35
laColLipsa(11,2) = 'T'
laColLipsa(11,3) = "EMPTY(NVL(tact.id_jtva_coloana,0))"
FOR lnColLipsa = 1 TO 11
loColLipsa = This.grid1.Columns(laColLipsa(lnColLipsa,1))
lcExprLipsa = ALLTRIM(loColLipsa.DynamicBackColor)
IF EMPTY(m.lcExprLipsa)
lcExprLipsa = TRANSFORM(loColLipsa.BackColor)
ENDIF
lcLitLipsa = laColLipsa(lnColLipsa,2)
lcCondLipsa = laColLipsa(lnColLipsa,3)
loColLipsa.DynamicBackColor = "IIF('" + m.lcLitLipsa + "' $ tact.clipsa AND " + m.lcCondLipsa + ", RGB(255,205,205), " + m.lcExprLipsa + ")"
ENDFOR
ENDIF
*!* 18.09.2026
*!* marius.mutu
*!* culoare comuna label/buton cu randul de plata la buget nedefalcat din grid; cursor mana pe label
IF This.lActivExtrase AND Type('tact.cbuget') = 'C'
LOCAL lcSqlBuget, lnSuccesBuget, lnColBuget, loColBuget, lcExprBuget, lcCtrlBuget
@@ -15208,16 +15369,17 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
This.cmdDefalcareBuget.BackColor = This.nColorBuget
This.cmdDefalcareBuget.Visible = .T.
Bindevent(This.cmdDefalcareBuget, 'Click', This, 'DefalcareBuget')
This.lblPlatiBuget.Top = This.grid1.Top + This.grid1.Height + 4
This.cmdDefalcareBuget.Left = This.Command4.Left
This.cmdDefalcareBuget.Top = This.Command4.Top + This.Command4.Height
This.lblPlatiBuget.Left = This.Command4.Left
This.lblPlatiBuget.Top = This.cmdDefalcareBuget.Top + This.cmdDefalcareBuget.Height + 2
FOR lnColBuget = 1 TO This.grid1.ColumnCount
loColBuget = This.grid1.Columns(lnColBuget)
lcExprBuget = ALLTRIM(loColBuget.DynamicBackColor)
IF EMPTY(m.lcExprBuget)
lcExprBuget = TRANSFORM(loColBuget.BackColor)
ENDIF
loColBuget.DynamicBackColor = "IIF(Thisform.EsteRandBugetNedefalcat(.T.), " + ALLTRIM(STR(Thisform.nColorBuget,8,0)) + ", " + m.lcExprBuget + ")"
loColBuget.DynamicBackColor = "IIF(Thisform.EsteRandBugetNedefalcat(.T.) OR Type('tact.csursa_f') = 'C' AND tact.csursa_f == 'B', " + ALLTRIM(STR(Thisform.nColorBuget,8,0)) + ", " + m.lcExprBuget + ")"
lcCtrlBuget = loColBuget.CurrentControl
IF !EMPTY(m.lcCtrlBuget)
Bindevent(loColBuget.&lcCtrlBuget, 'RightClick', This, 'GridRightClickBuget')
@@ -15239,6 +15401,22 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
loColDup.DynamicBackColor = "IIF(tact.dublura, RGB(211,211,211), " + m.lcExprDup + ")"
ENDFOR
ENDIF
*!* 18.09.2026
*!* marius.mutu
*!* eticheta cu randurile marcate clipsa nevida, sub grid, cu salt la urmatorul rand
IF Type('tact.clipsa') = 'C'
This.NewObject('lblLipsuri', '_label', '_baza.vcx')
This.lblLipsuri.ForeColor = RGB(0,0,0)
This.lblLipsuri.BackStyle = 1
This.lblLipsuri.BackColor = RGB(255,205,205)
This.lblLipsuri.FontBold = .T.
This.lblLipsuri.MousePointer = 15
This.lblLipsuri.Visible = .F.
This.lblLipsuri.AutoSize = .T.
This.lblLipsuri.Anchor = 8
Bindevent(This.lblLipsuri, 'Click', This, 'SaltLipsaUrmatoare')
This.VerificaLipsuriSilentios()
ENDIF
This.CalculeazaTotal()
*!* 24.05.2011 ^
@@ -15653,6 +15831,40 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
Return (lnRasp = 7)
ENDPROC
PROCEDURE VerificaLipsuriSilentios
*!* 19.09.2026
*!* marius.mutu
*!* verificare silentioasa (fara mesaje, fara efecte pe date) a campurilor lipsa; la primul apel incarca local cache-ul conturi/analitic (crsLipsuriCfg/crsLipsuriPlcont), fara Oracle la fiecare schimbare de rand; repozitioneaza pe randul curent si reactualizeaza eticheta/grid-ul
LOCAL lnRecTact, lcSql, lnSucces
IF !Used('tact') OR Type('tact.clipsa') <> 'C' OR Inlist(This.nid_set, 99998, 90024)
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
ENDIF
ENDIF
lnRecTact = Recno('tact')
verificare_note_contabile('tact', .T., .F., .F., .T.)
IF Between(m.lnRecTact, 1, Reccount('tact'))
GO (m.lnRecTact) IN tact
ENDIF
This.ActualizeazaLabelLipsuri()
This.Grid1.Refresh()
ENDPROC
PROCEDURE But_modificaR.Click
Local lcRul, loEditor
IF thisform.pgfArticole.ActivePage = 3
@@ -15788,14 +16000,6 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*thisform.aleg_document_pereche(tnFel,odoc)
DO aleg_document_pereche WITH tnFel,odoc,lcSel IN oOperatii_comune.prg
SELECT (m.lcSel)
*!* 18.09.2026 marius.mutu - M doar daca s-a ales document (aleg_document_pereche sterge atunci randul original)
IF Type('tact.ngrupa') = 'N' AND BETWEEN(m.lnRecno, 1, RECCOUNT())
GO m.lnRecno
IF DELETED()
* randurile grupei adaugate de aleg_document_pereche devin M
REPLACE csursa_f WITH 'M' FOR ngrupa = odoc.ngrupa AND npoz = odoc.npoz
ENDIF
ENDIF
TRY
GOTO m.lnRecno
CATCH
@@ -15832,14 +16036,6 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*thisform.aleg_document_pereche(tnFel,odoc)
DO aleg_document_pereche WITH tnFel,odoc,lcSel IN oOperatii_comune.prg
SELECT (m.lcSel)
*!* 18.09.2026 marius.mutu - M doar daca s-a ales document (aleg_document_pereche sterge atunci randul original)
IF Type('tact.ngrupa') = 'N' AND BETWEEN(m.lnRecno, 1, RECCOUNT())
GO m.lnRecno
IF DELETED()
* randurile grupei adaugate de aleg_document_pereche devin M
REPLACE csursa_f WITH 'M' FOR ngrupa = odoc.ngrupa AND npoz = odoc.npoz
ENDIF
ENDIF
TRY
GOTO m.lnRecno
CATCH
@@ -15866,6 +16062,26 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
Lparameters nColIndex
IF Type('tact.clipsa') = 'C'
*!* 19.09.2026
*!* marius.mutu
*!* reverificare silentioasa a lipsurilor la schimbarea randului, doar daca randul parasit e nou sau a fost modificat
LOCAL lnRecNouLipsuri, lcSemnVeche
lnRecNouLipsuri = Recno('tact')
IF m.lnRecNouLipsuri <> Thisform.nRecLipsuri
IF Between(Thisform.nRecLipsuri, 1, Reccount('tact'))
GO (Thisform.nRecLipsuri) IN tact
lcSemnVeche = Transform(tact.scd) + '|' + Transform(tact.scc) + '|' + Transform(tact.ascd) + '|' + Transform(tact.ascc) + '|' + Transform(tact.id_partd) + '|' + Transform(tact.id_partc) + '|' + Transform(tact.pereched) + '|' + Transform(tact.perechec) + '|' + Transform(tact.nract) + '|' + Transform(tact.suma) + '|' + Transform(tact.id_valuta) + '|' + Transform(tact.id_jtva_coloana)
IF m.lcSemnVeche <> Thisform.cSemnLipsuri
Thisform.VerificaLipsuriSilentios()
ENDIF
GO (m.lnRecNouLipsuri) IN tact
ENDIF
Thisform.nRecLipsuri = m.lnRecNouLipsuri
Thisform.cSemnLipsuri = Transform(tact.scd) + '|' + Transform(tact.scc) + '|' + Transform(tact.ascd) + '|' + Transform(tact.ascc) + '|' + Transform(tact.id_partd) + '|' + Transform(tact.id_partc) + '|' + Transform(tact.pereched) + '|' + Transform(tact.perechec) + '|' + Transform(tact.nract) + '|' + Transform(tact.suma) + '|' + Transform(tact.id_valuta) + '|' + Transform(tact.id_jtva_coloana)
ENDIF
ENDIF
*** se pot modifica inregistrari pe firma mama sau daca inregistrarile apartin sucursalei curente sau daca editez un set de note definit de utilizator
llReadOnly = !(m.glEMama OR NVL(m.gnIdSucursala,0) = NVL(tAct.id_sucursala,0) OR Type('thisform.oSet') = 'O')
@@ -17606,19 +17822,21 @@ DEFINE CLASS frmdefalcarebuget AS frm_termin_renunt OF "_frm_child.vcx"
cgrupa =
ddata = {}
DoCreate = .T.
Height = 330
Height = 440
Name = "frmdefalcarebuget"
nnerepartizat = 0
nsuma = 0
Width = 620
Width = 629
_shape1.Anchor = 10
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 628
_shape1.ZOrderSet = 1
_shape2.Anchor = 8
_shape2.Height = 29
_shape2.Left = 556
_shape2.Left = 566
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 64
@@ -17627,14 +17845,16 @@ DEFINE CLASS frmdefalcarebuget AS frm_termin_renunt OF "_frm_child.vcx"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 5
Lb_titlu_alb_b121.ZOrderSet = 3
BUT_TERMIN1.Left = 588
BUT_TERMIN1.Anchor = 8
BUT_TERMIN1.Left = 598
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.ToolTipText = "Aplica defalcarea"
BUT_TERMIN1.Top = 1
BUT_TERMIN1.ZOrderSet = 4
Gridsort1.Name = "Gridsort1"
But_renunt1.Left = 559
But_renunt1.Anchor = 8
But_renunt1.Left = 569
But_renunt1.Name = "But_renunt1"
But_renunt1.TabIndex = 4
But_renunt1.ToolTipText = "Inchide fara sa aplicati"
@@ -17643,10 +17863,11 @@ DEFINE CLASS frmdefalcarebuget AS frm_termin_renunt OF "_frm_child.vcx"
*</PropValue>
ADD OBJECT 'grdDefalcare' AS _grid WITH ;
Anchor = 15, ;
ColumnCount = 5, ;
DeleteMark = .F., ;
FontSize = 10, ;
Height = 210, ;
Height = 324, ;
lcamptextneeditabil = .F., ;
Left = 10, ;
Name = "grdDefalcare", ;
@@ -17781,12 +18002,13 @@ DEFINE CLASS frmdefalcarebuget AS frm_termin_renunt OF "_frm_child.vcx"
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblNerepartizat' AS _label WITH ;
Anchor = 14, ;
AutoSize = .F., ;
FontBold = .T., ;
Height = 20, ;
Left = 10, ;
Name = "lblNerepartizat", ;
Top = 288, ;
Top = 402, ;
Width = 610, ;
ZOrderSet = 2
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />

View File

@@ -320,6 +320,12 @@ Procedure aleg_document_pereche
If gnButon = 1
Select (lcSelAct)
Delete
lnSubPozAloc = 0
If Type('toAct.ngrupa') = 'N' && rand negrupat: grupa noua cu pozitii 1..n (1M, 2M...); rand deja grupat: pastreaza grupa/pozitia
Local lnGrupaPereche
Calculate Max(ngrupa) To lnGrupaPereche
lnGrupaPereche = Iif(toAct.npoz > 0, toAct.ngrupa, Nvl(m.lnGrupaPereche, 0) + 1)
Endif
Select (lcFis)
Scan For ales
Scatter Name oper
@@ -330,8 +336,20 @@ Procedure aleg_document_pereche
If Type('toAct.Suma_val')# 'U'
Replace Suma_val With oper.sumaachi2
Endif
If Type('toAct.nordine') = 'N'
Replace nordine With toAct.nordine + m.lnSubPozAloc
Endif
If Type('toAct.ngrupa') = 'N'
Replace ngrupa With m.lnGrupaPereche, npoz With Iif(toAct.npoz > 0, toAct.npoz, m.lnSubPozAloc + 1), csursa_f With 'M'
Endif
lnSubPozAloc = m.lnSubPozAloc + 1
Select (lcFis)
Endscan
Select (lcSelAct)
If Type('toAct.nordine') = 'N' && ordine de afisare pe nordine, ca grupul sa ramana alaturat
Index On Iif(nordine = 0, 2147483647, nordine) Tag ordtact Additive && randurile noi fara nordine raman la sfarsit
Set Order To Tag ordtact
Endif
Else
lnSucces = -1
Endif
@@ -555,7 +573,7 @@ select p.acont || nvl2(p.cont_alt, ' - ' || p.cont_alt, '') || nvl2(p.cod, ' - '
************************** SFARSIT: verific_analitic *****************************
************************** INCEPUT: verificare_note_contabile *****************************
Procedure verificare_note_contabile
Parameters tcAct,tlVerificAnalitic,tlAlegPartener, tlNuVerificCont
Parameters tcAct,tlVerificAnalitic,tlAlegPartener, tlNuVerificCont, tlFaraMesaj
*!* 03.05.2013 : am adaugat lcIdFact, lcMesajIdFact
Local lcInMesaj, lcInMesajAcont, lcInMesajP, lcInMesajIreg, lcMesaj, lcInMesajPSters, lcAct, lnId_set, ll_return, lcIdFact, lcMesajIdFact
@@ -568,6 +586,16 @@ Procedure verificare_note_contabile
lcAct = Alltrim(tcAct)
Endif
*!* 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
llMarcajLipsuri = (Type(lcAct + '.clipsa') = 'C')
llMesajConstruit = .F.
If llMarcajLipsuri
Replace All clipsa With '' In (lcAct)
Endif
Select (lcAct)
lnNrNota=1
Scan For Suma <> 0
@@ -581,46 +609,73 @@ Procedure verificare_note_contabile
*!* 07.05.2013 ^
*!* 11.03.2008
*!* tlNuVerificCont - nu se verifica conturile
lcClipsaRand = ''
If !tlNuVerificCont
*!* la clasele 8 si 9 se poate sa nu fie contul corespondent completat
If Empty(lcScd) And !Inlist(Left(lcScc,1),'8','9')
ll_return = .F.
lcMesaj = lcMesaj + ',' + 'contul debitor'
If !llMesajConstruit
lcMesaj = lcMesaj + ',' + 'contul debitor'
Endif
lcClipsaRand = lcClipsaRand + 'S'
Endif
If Empty(lcScc) And !Inlist(Left(lcScd,1),'8','9')
ll_return = .F.
lcMesaj = lcMesaj + ',' + 'contul creditor'
If !llMesajConstruit
lcMesaj = lcMesaj + ',' + 'contul creditor'
Endif
lcClipsaRand = lcClipsaRand + 'C'
Endif
Endif
*!* 11.03.2008 ^
If Empty(nract)
ll_return = .F.
lcMesaj = lcMesaj + ',' + 'nr.document'
If !llMesajConstruit
lcMesaj = lcMesaj + ',' + 'nr.document'
Endif
lcClipsaRand = lcClipsaRand + 'N'
Endif
If (!Empty(Suma_val) Or !Empty(Curs)) And Empty(Id_Valuta)
ll_return = .F.
lcMesaj = lcMesaj + ',' + 'nume valuta'
If !llMesajConstruit
lcMesaj = lcMesaj + ',' + 'nume valuta'
Endif
lcClipsaRand = lcClipsaRand + 'V'
Endif
If Type('cu_tva')<>'U'
If cu_tva = 1 And Empty(Nvl(id_jtva_coloana,0))
ll_return = .F.
lcMesaj = lcMesaj + ',' + 'explicatie TVA'
If !llMesajConstruit
lcMesaj = lcMesaj + ',' + 'explicatie TVA'
Endif
lcClipsaRand = lcClipsaRand + 'T'
Endif
Endif
If llMarcajLipsuri And !Empty(lcClipsaRand)
Replace clipsa With Alltrim(clipsa) + lcClipsaRand In (lcAct)
Endif
If !ll_return
*!* modificare ROAPRODUCTIE v 2.0.2
*!* aMESSAGEBOX("La nota nr. "+Alltrim(Str(lnNrNota))+" nu ati completat campu"+ Iif(At([,],lcMesaj,2)>0,[rile],[l]) + ;
*!* ": "+Substr(lcMesaj,2,60)+"...",0+48,"Atentie")
lcMesaj = "La nota nr. "+Alltrim(Str(lnNrNota))+" nu ati completat campu"+ Iif(At([,],lcMesaj,2)>0,[rile],[l]) + ;
": "+Substr(lcMesaj,2,60)+"..." + Chr(13) + Chr(10) + Chr(13)+ Chr(10)
If !llMesajConstruit
lcMesaj = "La nota nr. "+Alltrim(Str(lnNrNota))+" nu ati completat campu"+ Iif(At([,],lcMesaj,2)>0,[rile],[l]) + ;
": "+Substr(lcMesaj,2,60)+"..." + Chr(13) + Chr(10) + Chr(13)+ Chr(10)
llMesajConstruit = .T.
Endif
*!* modificare ROAPRODUCTIE v 2.0.2 ^
Exit
If !llMarcajLipsuri
Exit
Endif
Endif
lnNrNota=lnNrNota+1
Endscan
If ll_return
lcMesaj = []
If ll_return Or llMarcajLipsuri
*!* pastreaza mesajul trecerii 1 cand se intra doar datorita marcajului (ll_return deja .F.)
If ll_return
lcMesaj = []
Endif
Select (lcAct)
Go Top
@@ -657,14 +712,24 @@ Procedure verificare_note_contabile
lcLista = lcLista + ',' + Alltrim(Cont)
Endscan
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 ' + ;
'where to_number(c.cont) in (' + lcLista + ')'
lcCursor = 'verif_part'
*!* 19.09.2026
*!* marius.mutu
*!* verificare silentioasa: verif_part local din cache-ul crsLipsuriCfg, fara Oracle
If tlFaraMesaj And Used('crsLipsuriCfg')
Select crsLipsuriCfg.contpart, crsLipsuriCfg.fel_cont, crsLipsuriCfg.cu_inregistrari, crsLipsuriCfg.explic_cont, crsLipsuriCfg.exceptie, crsLipsuriCfg.pozitie, crsLipsuriCfg.invers, 0 As gasit ;
From crsLipsuriCfg Inner Join tcont On Alltrim(crsLipsuriCfg.contpart) = Alltrim(tcont.cont) ;
Into Cursor verif_part Readwrite
lnSucces = 1
Else
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 ' + ;
'where to_number(c.cont) in (' + lcLista + ')'
lcCursor = 'verif_part'
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
aMESSAGEBOX('Modificare:Verific completare id_part ' +goExecutor.cEroare,0+16,"Eroare")
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0 And !tlFaraMesaj
aMESSAGEBOX('Modificare:Verific completare id_part ' +goExecutor.cEroare,0+16,"Eroare")
Endif
Endif
If lnSucces > 0
@@ -673,72 +738,91 @@ Procedure verificare_note_contabile
Scan For !Empty(Suma)
Scatter Name loCont
Select verif_part
Locate For contpart=loCont.scd
If Found()
If Empty(loCont.Id_partd) And !(loCont.scd$lcInMesajP)
lcInMesajP=lcInMesajP+','+loCont.scd
Replace gasit With 1
Endif
If Empty(loCont.pereched) And cu_inregistrari = 1 And fel_cont = 1 And !(loCont.scd$lcInMesajIreg)
Locate For contpart=loCont.scd And inlist(upper(exceptie), 'X', upper(loCont.scc)) And fel_cont = 1 And pozitie = 0 And invers = 1
If !Found()
lcInMesajIreg = lcInMesajIreg + ',' + loCont.scd
*!* contul poate fi gol (clasa 8/9 sau tlNuVerificCont) - Locate cu criteriu gol ar gasi primul rand din verif_part (SET EXACT OFF)
If !Empty(loCont.scd)
Select verif_part
Locate For contpart=loCont.scd
If Found()
If Empty(loCont.Id_partd) And !(loCont.scd$lcInMesajP)
lcInMesajP=lcInMesajP+','+loCont.scd
Replace gasit With 1
Endif
If llMarcajLipsuri And Empty(loCont.Id_partd)
Replace clipsa With Alltrim(clipsa) + 'p' In (lcAct)
Endif
If Empty(loCont.pereched) And cu_inregistrari = 1 And fel_cont = 1 And !(loCont.scd$lcInMesajIreg)
Locate For contpart=loCont.scd And inlist(upper(exceptie), 'X', upper(loCont.scc)) And fel_cont = 1 And pozitie = 0 And invers = 1
If !Found()
lcInMesajIreg = lcInMesajIreg + ',' + loCont.scd
If llMarcajLipsuri
Replace clipsa With Alltrim(clipsa) + 'd' In (lcAct)
Endif
Endif
Endif
*!* modificare 06.11.2007
Else
If !Empty(loCont.Id_partd) And !tlFaraMesaj
Select (lcAct)
lcInMesajPSters = lcInMesajPSters + ',' + loCont.scd
Replace Id_partd With 0,partd With ''
Endif
*!* modificare 06.11.2007 ^
Endif
*!* modificare 06.11.2007
Else
If !Empty(loCont.Id_partd)
Select (lcAct)
lcInMesajPSters = lcInMesajPSters + ',' + loCont.scd
Replace Id_partd With 0,partd With ''
Endif
*!* modificare 06.11.2007 ^
Endif
Select verif_part
Locate For contpart=loCont.scc
If Found()
If Empty(loCont.Id_partc) And !(loCont.scc$lcInMesajP)
lcInMesajP=lcInMesajP+','+loCont.scc
Replace gasit With 1
Endif
If cu_inregistrari = 1 And fel_cont = 0 And Empty(loCont.perechec) And !(loCont.scc$lcInMesajIreg)
Locate For contpart=loCont.scc And inlist(upper(exceptie), 'X', upper(loCont.scd)) And fel_cont = 0 And pozitie = 1 And invers = 1
If !Found()
lcInMesajIreg = lcInMesajIreg + ',' + loCont.scc
If !Empty(loCont.scc)
Select verif_part
Locate For contpart=loCont.scc
If Found()
If Empty(loCont.Id_partc) And !(loCont.scc$lcInMesajP)
lcInMesajP=lcInMesajP+','+loCont.scc
Replace gasit With 1
Endif
If llMarcajLipsuri And Empty(loCont.Id_partc)
Replace clipsa With Alltrim(clipsa) + 'q' In (lcAct)
Endif
If cu_inregistrari = 1 And fel_cont = 0 And Empty(loCont.perechec) And !(loCont.scc$lcInMesajIreg)
Locate For contpart=loCont.scc And inlist(upper(exceptie), 'X', upper(loCont.scd)) And fel_cont = 0 And pozitie = 1 And invers = 1
If !Found()
lcInMesajIreg = lcInMesajIreg + ',' + loCont.scc
If llMarcajLipsuri
Replace clipsa With Alltrim(clipsa) + 'c' In (lcAct)
Endif
Endif
Endif
*!* modificare 06.11.2007
Else
If !Empty(loCont.Id_partc) And !tlFaraMesaj
Select (lcAct)
lcInMesajPSters = lcInMesajPSters + ',' + loCont.scc
Replace Id_partc With 0,partc With ''
Endif
*!* modificare 06.11.2007 ^
Endif
*!* modificare 06.11.2007
Else
If !Empty(loCont.Id_partc)
Select (lcAct)
lcInMesajPSters = lcInMesajPSters + ',' + loCont.scc
Replace Id_partc With 0,partc With ''
Endif
*!* modificare 06.11.2007 ^
Endif
Select (lcAct)
Endscan
*!* modificare 06.11.2007
Else
Select (lcAct)
Scan
If !Empty(Id_partd)
lcInMesajPSters = lcInMesajPSters + ',' + Alltrim(scd)
Replace Id_partd With 0,partd With ''
Endif
If !Empty(Id_partc)
lcInMesajPSters = lcInMesajPSters + ',' + Alltrim(scc)
Replace Id_partc With 0,partc With ''
Endif
Endscan
If !tlFaraMesaj
Select (lcAct)
Scan
If !Empty(Id_partd)
lcInMesajPSters = lcInMesajPSters + ',' + Alltrim(scd)
Replace Id_partd With 0,partd With ''
Endif
If !Empty(Id_partc)
lcInMesajPSters = lcInMesajPSters + ',' + Alltrim(scc)
Replace Id_partc With 0,partc With ''
Endif
Endscan
Endif
Endif
*!* modificare 06.11.2007 ^
Endif
*!* modificare 07.05.2013
If lnSucces > 0 And !Empty(Nvl(lcIdFact,[]))
If lnSucces > 0 And !Empty(Nvl(lcIdFact,[])) And !tlFaraMesaj
lcSql = [select pack_contafin.verifica_id_documente(']+lcIdFact+[') as rez from dual]
lcCursor = 'crsverifdoc'
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
@@ -766,49 +850,72 @@ Procedure verificare_note_contabile
*!* modificare 07.05.2013 ^
If lnSucces > 0 And tlVerificAnalitic
lcSql=[select CONT, ACONT FROM ] + gcS + [.vplcont_ANALITIC where inactiv = 0 and an = ?gnAn order by cont ]
lcCursor = 'plcontana'
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* verificare silentioasa: plcontana local din cache-ul crsLipsuriPlcont, fara Oracle
If tlFaraMesaj And Used('crsLipsuriPlcont')
Select Cont, Acont From crsLipsuriPlcont Order By Cont Into Cursor plcontana
lnSucces = 1
Else
lcSql=[select CONT, ACONT FROM ] + gcS + [.vplcont_ANALITIC where inactiv = 0 and an = ?gnAn order by cont ]
lcCursor = 'plcontana'
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
aMESSAGEBOX('Modificare:Verific completare analitic ' +goExecutor.cEroare,0+16,"Eroare")
If lnSucces < 0 And !tlFaraMesaj
aMESSAGEBOX('Modificare:Verific completare analitic ' +goExecutor.cEroare,0+16,"Eroare")
Endif
Endif
If lnSucces > 0
Select (lcAct)
Scan For !Empty(Suma)
Scatter Name loCont
If Empty(Nvl(loCont.ascd, ''))
Select plcontana
Locate For Alltrim(Cont)=Alltrim(loCont.scd)
If Found()
If !(loCont.scd$lcInMesaj)
lcInMesaj=lcInMesaj+','+loCont.scd
*!* contul poate fi gol (clasa 8/9 sau tlNuVerificCont) - Locate cu criteriu gol ar gasi primul rand din plcontana (SET EXACT OFF)
If !Empty(loCont.scd)
If Empty(Nvl(loCont.ascd, ''))
Select plcontana
Locate For Alltrim(Cont)=Alltrim(loCont.scd)
If Found()
If !(loCont.scd$lcInMesaj)
lcInMesaj=lcInMesaj+','+loCont.scd
Endif
If llMarcajLipsuri
Replace clipsa With Alltrim(clipsa) + 'a' In (lcAct)
Endif
Endif
Endif
Else
Select plcontana
Locate For Alltrim(Cont)=Alltrim(loCont.scd) And Alltrim(acont) = Alltrim(loCont.ascd)
If !Found()
If !(Alltrim(loCont.scd) + '.' + Alltrim(loCont.ascd)$lcInMesajAcont)
lcInMesajAcont = lcInMesajAcont + ',' + Alltrim(loCont.scd) + '.' + Alltrim(loCont.ascd)
Else
Select plcontana
Locate For Alltrim(Cont)=Alltrim(loCont.scd) And Alltrim(acont) = Alltrim(loCont.ascd)
If !Found()
If !(Alltrim(loCont.scd) + '.' + Alltrim(loCont.ascd)$lcInMesajAcont)
lcInMesajAcont = lcInMesajAcont + ',' + Alltrim(loCont.scd) + '.' + Alltrim(loCont.ascd)
Endif
If llMarcajLipsuri
Replace clipsa With Alltrim(clipsa) + 'a' In (lcAct)
Endif
Endif
Endif
Endif
If Empty(Nvl(loCont.ascc,''))
Select plcontana
Locate For Cont=loCont.scc
If Found()
If !(loCont.scc$lcInMesaj)
lcInMesaj=lcInMesaj+','+loCont.scc
If !Empty(loCont.scc)
If Empty(Nvl(loCont.ascc,''))
Select plcontana
Locate For Cont=loCont.scc
If Found()
If !(loCont.scc$lcInMesaj)
lcInMesaj=lcInMesaj+','+loCont.scc
Endif
If llMarcajLipsuri
Replace clipsa With Alltrim(clipsa) + 'b' In (lcAct)
Endif
Endif
Endif
Else
Select plcontana
Locate For Alltrim(Cont)=Alltrim(loCont.scc) And Alltrim(acont) = Alltrim(loCont.ascc)
If !Found()
If !(Alltrim(loCont.scc) + '.' + Alltrim(loCont.ascc)$lcInMesajAcont)
lcInMesajAcont = lcInMesajAcont + ',' + Alltrim(loCont.scc) + '.' + Alltrim(loCont.ascc)
Else
Select plcontana
Locate For Alltrim(Cont)=Alltrim(loCont.scc) And Alltrim(acont) = Alltrim(loCont.ascc)
If !Found()
If !(Alltrim(loCont.scc) + '.' + Alltrim(loCont.ascc)$lcInMesajAcont)
lcInMesajAcont = lcInMesajAcont + ',' + Alltrim(loCont.scc) + '.' + Alltrim(loCont.ascc)
Endif
If llMarcajLipsuri
Replace clipsa With Alltrim(clipsa) + 'b' In (lcAct)
Endif
Endif
Endif
Endif
@@ -877,7 +984,7 @@ Procedure verificare_note_contabile
lcInMesajP = 'partenerul pentru contul ' + lcInMesajP
Endif
*!* modificare ROAPRODUCTIE v 2.0.2 ^
If tlAlegPartener && dc nu pot sa ma intorc sa completez partenerii
If tlAlegPartener And !tlFaraMesaj && dc nu pot sa ma intorc sa completez partenerii
If Used('verif_part')
*!* modificare ROAPRODUCTIE v 2.0.2
aMESSAGEBOX('Nu ati completat '+ lcInMesajP+' !',48,"Atentie")
@@ -975,7 +1082,10 @@ Procedure verificare_note_contabile
Use In (Select("cduplicatetemp"))
*!* modificare ROAPRODUCTIE v 2.0.2
If !Empty(lcMesaj)
If !Empty(lcMesaj) And !tlFaraMesaj
If llMarcajLipsuri
lcMesaj = lcMesaj + 'Celulele de completat sunt marcate cu rosu in lista.' + Chr(13) + Chr(10)
Endif
aMESSAGEBOX(Space(45) + "REZULTATE VERIFICARI" + Chr(13)+ Chr(10) + Replicate([=],60) + Chr(13)+ Chr(10) + lcMesaj,48,"Atentie")
Endif
*!* modificare ROAPRODUCTIE v 2.0.2 ^
@@ -996,7 +1106,10 @@ Procedure verificare_note_contabile
Use In tcont
Endif
Else
If !Empty(lcMesaj)
If !Empty(lcMesaj) And !tlFaraMesaj
If llMarcajLipsuri
lcMesaj = lcMesaj + 'Celulele de completat sunt marcate cu rosu in lista.' + Chr(13) + Chr(10)
Endif
aMESSAGEBOX(Space(45) + "REZULTATE VERIFICARI" + Chr(13)+ Chr(10) + Replicate([=],60) + Chr(13)+ Chr(10) + lcMesaj,48,"Atentie")
Endif
Endif