Plati la buget din importul de extrase: recunoastere dupa IBAN Trezorerie (TVA 4423, CAM 436, cont unic defalcat din frm_modific2024)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LBKZQUq6vimKuAFsrS2D1s
This commit is contained in:
2026-09-15 17:00:47 +03:00
parent 4588403555
commit 377ee33fac

View File

@@ -6811,14 +6811,19 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*m: calculeaza_valori_rul
*m: ccontrol_assign
*m: creeaza_note_tva_incasare
*m: defalcarebuget
*m: do_adauga_rul
*m: do_adauga_tva_exigibil
*m: do_copie_rul
*m: do_import
*m: do_modifica_explicatie_tva
*m: do_sterge_rul
*m: esteplatanedefalcata
*m: esterandbugetnedefalcat
*m: gridrightclickbuget
*m: grid_focus_prima_coloana
*m: resize_grid1
*m: saltplatabuget
*m: salveazaxml
*m: semnaturadivergentesincronizare
*m: sincronizeaza_nnir
@@ -6829,6 +6834,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*m: verificaavertizareexigibilizaretva
*p: cacont
*p: ccont
*p: ccontbugetanalitic
*p: ccontrol
*p: cpaymentcode
*p: csemnaturasincronizare
@@ -6871,6 +6877,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
BorderStyle = 3
cacont =
ccont =
ccontbugetanalitic =
cpaymentcode =
csemnaturasincronizare =
DoCreate = .T.
@@ -13071,7 +13078,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
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
LOCAL lnIncasari, lnPlati, lnSelect, lcNuBate, lcTooltip, lcIban, lnCalculat, llBate, lnVerificate, lnSoldNote, lnSoldExtras, lnRecnoBuget, lnPlatiBuget
IF !This.lActivExtrase OR !USED('tact')
RETURN
ENDIF
@@ -13142,6 +13149,21 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
IF This.lblExtraseAutosalvare.Visible
This.lblExtraseAutosalvare.Left = This.lblExtraseTotaluri.Left + This.lblExtraseTotaluri.Width + 12
ENDIF
IF Type('This.lblPlatiBuget') = 'O'
lnSelect = SELECT()
SELECT tact
lnRecnoBuget = RECNO()
COUNT FOR This.EsteRandBugetNedefalcat(.T.) TO lnPlatiBuget
TRY
GO m.lnRecnoBuget
CATCH
GO TOP
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
ENDIF
ENDPROC
PROCEDURE ActualizeazaVerdictActRul
@@ -13784,6 +13806,32 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDPROC
PROCEDURE DefalcareBuget
LOCAL lnRec, loFrm, lcGrupa, lnOptGrupa
lnRec = RECNO('tact')
lcGrupa = Alltrim(Nvl(tact.cbuget,''))
IF EMPTY(m.lcGrupa)
lnOptGrupa = xmenu('Cont unic;TVA;CAM')
IF EMPTY(m.lnOptGrupa)
RETURN
ENDIF
lcGrupa = Icase(m.lnOptGrupa = 1, 'CU', m.lnOptGrupa = 2, 'TVA', 'CAM')
ENDIF
IF !IncarcaDefalcareBuget(m.lcGrupa)
RETURN
ENDIF
loFrm = CREATEOBJECT('frmDefalcareBuget', tact.dataact, tact.suma, m.lcGrupa, tact.explicatia)
loFrm.Show(1)
IF gnButon = 1
AplicaDefalcareBuget(m.lnRec, m.lcGrupa)
Thisform.CalculeazaTotal()
Thisform.Grid1.Refresh()
ENDIF
IF USED('cDefalcare')
USE IN cDefalcare
ENDIF
ENDPROC
PROCEDURE do_adauga
*!* 27.07.2011
*!* marius.mutu
@@ -14482,6 +14530,41 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
*!* RETURN ll_l
ENDPROC
PROCEDURE EstePlataNedefalcata
IF Type('tact.cbuget') <> 'C' OR Deleted('tact') OR Alltrim(Nvl(tact.csursa_f,'')) == 'B'
RETURN .F.
ENDIF
IF Left(Nvl(tact.scc,''),3) <> '512'
RETURN .F.
ENDIF
RETURN Nvl(tact.ngrupa,0) = 0 OR !Empty(Nvl(tact.cbuget,''))
ENDPROC
PROCEDURE EsteRandBugetNedefalcat
LPARAMETERS tlSemnalStrict
IF Type('tact.cbuget') <> 'C' OR Deleted('tact') OR Alltrim(Nvl(tact.csursa_f,'')) == 'B'
RETURN .F.
ENDIF
IF Alltrim(tact.cbuget) == 'CU'
RETURN Alltrim(Nvl(tact.scd,'')) == '4481'
ENDIF
IF !Inlist(Alltrim(tact.cbuget), 'TVA', 'CAM')
RETURN .F.
ENDIF
IF !m.tlSemnalStrict
RETURN .T.
ENDIF
RETURN Empty(Nvl(tact.ascd,'')) AND (',' + Alltrim(Nvl(tact.scd,'')) + ',') $ This.cContBugetAnalitic
ENDPROC
PROCEDURE GridRightClickBuget
IF Thisform.lActivExtrase AND Type('Thisform.cmdDefalcareBuget') = 'O' AND Thisform.cmdDefalcareBuget.Enabled
IF xmenu('Defalcare plata la buget') = 1
Thisform.DefalcareBuget()
ENDIF
ENDIF
ENDPROC
PROCEDURE grid_focus_prima_coloana
Local lnColumns, loColumn, loGrid, i
Local lcColumn
@@ -14913,6 +14996,11 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
IF This.lActivExtrase
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
ENDIF
ENDIF
This.aseaza_pagina_articole()
@@ -14929,6 +15017,31 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
IF This.lActivExtrase
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
ENDIF
ENDIF
ENDPROC
PROCEDURE SaltPlataBuget
LOCAL lnRec
lnRec = RECNO('tact')
SELECT tact
LOCATE FOR This.EsteRandBugetNedefalcat(.T.) AND RECNO() > m.lnRec
IF !FOUND()
LOCATE FOR This.EsteRandBugetNedefalcat(.T.)
ENDIF
IF FOUND()
Thisform.Grid1.SetFocus()
Thisform.Grid1.Refresh()
ELSE
TRY
GO m.lnRec
CATCH
GO TOP
ENDTRY
ENDIF
ENDPROC
@@ -15060,6 +15173,45 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
this.grid1.Column1.ControlSource = "IIF(tact.npoz > 0, TRANSFORM(tact.npoz) + tact.csursa_f, NRCRT())"
this.grid1.Column1.DynamicBackColor = "IIF(tact.npoz > 0, IIF(MOD(tact.ngrupa,2)=1, RGB(198,224,255), RGB(225,210,255)), IIF(ALES, RGB(255,255,225), RGB(255,255,255)))"
ENDIF
IF This.lActivExtrase AND Type('tact.cbuget') = 'C'
LOCAL lcSqlBuget, lnSuccesBuget, lnColBuget, loColBuget, lcExprBuget, lcCtrlBuget
This.cContBugetAnalitic = ','
lcSqlBuget = [select distinct cont from ] + gcS + [.vplcont_analitic where cont in ('4423','436') and inactiv = 0 and an = ?gnAn]
lnSuccesBuget = goExecutor.oExecute(lcSqlBuget, 'crsContBugetAn')
IF m.lnSuccesBuget >= 0 AND USED('crsContBugetAn')
SELECT crsContBugetAn
SCAN
This.cContBugetAnalitic = This.cContBugetAnalitic + ALLTRIM(cont) + ','
ENDSCAN
USE IN crsContBugetAn
ENDIF
This.NewObject('lblPlatiBuget', '_label', '_baza.vcx')
This.lblPlatiBuget.ForeColor = RGB(255,0,0)
This.lblPlatiBuget.FontBold = .T.
This.lblPlatiBuget.Visible = .F.
Bindevent(This.lblPlatiBuget, 'Click', This, 'SaltPlataBuget')
This.NewObject('cmdDefalcareBuget', '_commandbutton', '_baza.vcx')
This.cmdDefalcareBuget.Caption = 'Defalcare buget'
This.cmdDefalcareBuget.Width = 110
This.cmdDefalcareBuget.Enabled = .F.
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
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.), RGB(255,200,200), " + m.lcExprBuget + ")"
lcCtrlBuget = loColBuget.CurrentControl
IF !EMPTY(m.lcCtrlBuget)
Bindevent(loColBuget.&lcCtrlBuget, 'RightClick', This, 'GridRightClickBuget')
ENDIF
ENDFOR
ENDIF
IF Type('tact.dublura') = 'L'
* randurile deja contate intr-un import anterior (90023), pastrate la raspunsul Nu, apar gri peste orice alta culoare de coloana
LOCAL lnColDup, loColDup, lcExprDup
@@ -15781,6 +15933,9 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
ENDIF && llReadOnly
IF Type('Thisform.cmdDefalcareBuget') = 'O'
Thisform.cmdDefalcareBuget.Enabled = !m.llReadOnly AND Thisform.EstePlataNedefalcata()
ENDIF
IF Thisform.lActivExtrase
Thisform.nContorAutosalvare = Thisform.nContorAutosalvare + 1
IF Thisform.nContorAutosalvare >= 10
@@ -15814,8 +15969,13 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx"
lcTip = 'Avans: rest peste facturi - verificati'
CASE tact.csursa_f = 'M'
lcTip = 'Document pereche ales de operator'
CASE tact.csursa_f = 'B'
lcTip = 'Plata la buget defalcata pe conturi'
ENDCASE
ENDIF
IF Thisform.EsteRandBugetNedefalcat(.T.)
lcTip = 'Plata la buget - apasati Defalcare buget'
ENDIF
This.ToolTipText = m.lcTip
ENDPROC