From 5d92550f0dd75a2a84cc2bf1c5c9c64753abdc4c Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Mon, 14 Sep 2026 23:27:59 +0300 Subject: [PATCH] sync SVN r18103 --- clase/omodificari.vc2 | 245 +++++++++++++++++++++++++++++++-- docs/todos.txt | 3 + programe/oproceduri_comune.prg | 2 +- 3 files changed, 241 insertions(+), 9 deletions(-) diff --git a/clase/omodificari.vc2 b/clase/omodificari.vc2 index 4ed94f3..1c06f48 100644 --- a/clase/omodificari.vc2 +++ b/clase/omodificari.vc2 @@ -6793,9 +6793,12 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" *< OBJECTDATA: ObjPath="but_afiseaza_rulaje" UniqueID="" Timestamp="" /> *< OBJECTDATA: ObjPath="But_copiazaR" UniqueID="" Timestamp="" /> *< OBJECTDATA: ObjPath="But_nouR" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lblExtraseTotaluri" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lblExtraseAutosalvare" UniqueID="" Timestamp="" /> * *m: actualizeazabaratotaluri + *m: actualizeazatotaluriextrase *m: actualizeazaverdictactrul *m: adaugalinietvddinarticol *m: afiseazadialogsincronizarearticole @@ -6830,6 +6833,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" *p: cpaymentcode *p: csemnaturasincronizare *p: fel_compensare + *p: lactivextrase *p: larearticolevanzari *p: larticolereadonly *p: lavertizatexigibilizare @@ -6839,6 +6843,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" *p: lrulajustat *p: lverificare *p: lvizualizare + *p: ncontorautosalvare *p: nidvanzare *p: nid_set *p: nnnirvechi @@ -6871,6 +6876,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" DoCreate = .T. FontCharSet = 238 Height = 530 + lactivextrase = .F. larearticolevanzari = .F. larticolereadonly = .F. lavertizatexigibilizare = .F. @@ -6881,6 +6887,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" lverificare = .F. lvizualizare = .F. Name = "frm_modific2024" + ncontorautosalvare = 0 nidvanzare = 0 nid_set = 0 nnnirvechi = 0 @@ -7310,6 +7317,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" Column6.BackColor = 244,250,255, ; Column6.ColumnOrder = 8, ; Column6.ControlSource = "partd", ; + Column6.DynamicBackColor = "IIF(Type('tact.listoric')='L' AND tact.listoric AND Inlist(Alltrim(tact.scd),'401','4111'), RGB(255,218,185), RGB(244,250,255))", ; Column6.FontCharSet = 238, ; Column6.FontName = "Arial", ; Column6.FontSize = 10, ; @@ -7353,6 +7361,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" Column10.BackColor = 244,250,255, ; Column10.ColumnOrder = 9, ; Column10.ControlSource = "partc", ; + Column10.DynamicBackColor = "IIF(Type('tact.listoric')='L' AND tact.listoric AND Inlist(Alltrim(tact.scc),'401','4111'), RGB(255,218,185), RGB(244,250,255))", ; Column10.FontCharSet = 238, ; Column10.FontName = "Arial", ; Column10.FontSize = 10, ; @@ -8701,6 +8710,36 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" ZOrderSet = 19 *< END OBJECT: ClassLib="lb.vcx" BaseClass="label" /> + ADD OBJECT 'lblExtraseAutosalvare' AS _label WITH ; + Anchor = 8, ; + AutoSize = .F., ; + Caption = "", ; + FontBold = .T., ; + FontCharSet = 238, ; + Height = 17, ; + Left = 312, ; + Name = "lblExtraseAutosalvare", ; + Top = 334, ; + Visible = .F., ; + Width = 195, ; + ZOrderSet = 34 + *< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" /> + + ADD OBJECT 'lblExtraseTotaluri' AS _label WITH ; + Anchor = 8, ; + AutoSize = .T., ; + Caption = "", ; + FontBold = .T., ; + FontCharSet = 238, ; + Height = 17, ; + Left = 8, ; + Name = "lblExtraseTotaluri", ; + Top = 334, ; + Visible = .F., ; + Width = 300, ; + ZOrderSet = 33 + *< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" /> + ADD OBJECT 'lblSuma' AS _label WITH ; Anchor = 8, ; Caption = "Total", ; @@ -13030,6 +13069,81 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" This.pgfArticole.PAGE3.Refresh() 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 + IF !This.lActivExtrase OR !USED('tact') + RETURN + ENDIF + lnSelect = SELECT() + SELECT SUM(IIF(LEFT(NVL(scd,''),3)='512',suma,0.00)) AS incasari, SUM(IIF(LEFT(NVL(scc,''),3)='512',suma,0.00)) AS plati ; + FROM tact WHERE !DELETED() INTO CURSOR crsTotExtrase + lnIncasari = NVL(crsTotExtrase.incasari,0) + lnPlati = NVL(crsTotExtrase.plati,0) + USE IN crsTotExtrase + SELECT (m.lnSelect) + This.lblExtraseTotaluri.Visible = .T. + This.lblExtraseTotaluri.Caption = 'NOTE: Inc ' + ALLTRIM(TRANSFORM(m.lnIncasari,'999,999,999.99')) + ' Pla ' + ALLTRIM(TRANSFORM(m.lnPlati,'999,999,999.99')) + This.lblExtraseTotaluri.ForeColor = RGB(0,0,0) + This.lblExtraseTotaluri.ToolTipText = '' + IF USED('cSolduriExtrase') + lnSelect = SELECT() + SELECT iban, SUM(IIF(LEFT(NVL(scd,''),3)='512',suma,0.00)) AS inc, SUM(IIF(LEFT(NVL(scc,''),3)='512',suma,0.00)) AS pla, ; + SUM(IIF(LEFT(NVL(scd,''),3)='512',suma_val,0.00)) AS incval, SUM(IIF(LEFT(NVL(scc,''),3)='512',suma_val,0.00)) AS plaval ; + FROM tact WHERE !DELETED() AND !EMPTY(NVL(iban,'')) GROUP BY iban INTO CURSOR crsTotConturi + SELECT cSolduriExtrase.iban, cSolduriExtrase.valuta, cSolduriExtrase.sold_i, cSolduriExtrase.sold_f, cSolduriExtrase.sold_dubl, ; + NVL(crsTotConturi.inc,0) AS inc, NVL(crsTotConturi.pla,0) AS pla, NVL(crsTotConturi.incval,0) AS incval, NVL(crsTotConturi.plaval,0) AS plaval ; + FROM cSolduriExtrase LEFT JOIN crsTotConturi ON cSolduriExtrase.iban = crsTotConturi.iban ; + INTO CURSOR crsVerdictConturi + USE IN crsTotConturi + lcNuBate = '' + lcTooltip = '' + lnVerificate = 0 + STORE 0 TO lnSoldNote, lnSoldExtras + SELECT crsVerdictConturi + SCAN + lcIban = ALLTRIM(iban) + IF ISNULL(sold_f) + lcTooltip = m.lcTooltip + IIF(EMPTY(m.lcTooltip),'',CHR(13)) + m.lcIban + ' fara sold in fisier' + LOOP + ENDIF + lnVerificate = m.lnVerificate + 1 + IF UPPER(ALLTRIM(NVL(valuta,'RON'))) = 'RON' + lnCalculat = NVL(sold_i,0) + inc - pla + NVL(sold_dubl,0) + ELSE + lnCalculat = NVL(sold_i,0) + incval - plaval + NVL(sold_dubl,0) + ENDIF + llBate = ABS(m.lnCalculat - sold_f) < 0.01 + lnSoldNote = m.lnSoldNote + m.lnCalculat + lnSoldExtras = m.lnSoldExtras + sold_f + lcTooltip = m.lcTooltip + IIF(EMPTY(m.lcTooltip),'',CHR(13)) + m.lcIban + ' ' + ALLTRIM(NVL(valuta,'RON')) + ; + ' SI ' + TRANSFORM(NVL(sold_i,0),'999,999,999.99') + ' +' + TRANSFORM(inc,'999,999,999.99') + ; + ' -' + TRANSFORM(pla,'999,999,999.99') + ' +' + TRANSFORM(NVL(sold_dubl,0),'999,999,999.99') + ; + ' = ' + TRANSFORM(m.lnCalculat,'999,999,999.99') + ' / SF ' + TRANSFORM(sold_f,'999,999,999.99') + ; + ' dif ' + TRANSFORM(m.lnCalculat - sold_f,'999,999,999.99') + IF !m.llBate + lcNuBate = m.lcNuBate + IIF(EMPTY(m.lcNuBate),'',', ') + '...' + RIGHT(m.lcIban,4) + ENDIF + ENDSCAN + USE IN crsVerdictConturi + SELECT (m.lnSelect) + This.lblExtraseTotaluri.ToolTipText = m.lcTooltip + IF m.lnVerificate > 0 + IF EMPTY(m.lcNuBate) + This.lblExtraseTotaluri.Caption = This.lblExtraseTotaluri.Caption + ' Sold ' + ALLTRIM(TRANSFORM(m.lnSoldNote,'999,999,999.99')) + ' | EXTRAS: Sold ' + ALLTRIM(TRANSFORM(m.lnSoldExtras,'999,999,999.99')) + This.lblExtraseTotaluri.ForeColor = RGB(0,128,0) + ELSE + This.lblExtraseTotaluri.Caption = This.lblExtraseTotaluri.Caption + ' Sold ' + ALLTRIM(TRANSFORM(m.lnSoldNote,'999,999,999.99')) + ' | EXTRAS: Sold ' + ALLTRIM(TRANSFORM(m.lnSoldExtras,'999,999,999.99')) + ; + ' Dif ' + ALLTRIM(TRANSFORM(m.lnSoldNote - m.lnSoldExtras,'999,999,999.99')) + IIF(m.lnVerificate > 1, ' (' + m.lcNuBate + ')', '') + This.lblExtraseTotaluri.ForeColor = RGB(255,0,0) + ENDIF + ENDIF + ENDIF + IF This.lblExtraseAutosalvare.Visible + This.lblExtraseAutosalvare.Left = This.lblExtraseTotaluri.Left + This.lblExtraseTotaluri.Width + 12 + ENDIF + ENDPROC + PROCEDURE ActualizeazaVerdictActRul *!* verdict informativ de corelatie ACT/RUL (docs\cercetare\rec_suma_act.md) - niciodata verdict *!* automat de eroare, pentru ca ACT n-are coloana de origine a randului (un rand adaugat manual @@ -13292,8 +13406,14 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" IF m.lcExplicatie = 'D' IF m.llToate REPLACE id_partd WITH lnIdPart, partd WITH lcnume FOR ales + IF Type('tact.listoric') = 'L' + REPLACE listoric WITH .F. FOR ales + ENDIF ELSE REPLACE id_partd WITH lnIdPart, partd WITH lcnume + IF Type('tact.listoric') = 'L' + REPLACE listoric WITH .F. + ENDIF ENDIF IF (lnIdPartOriginal <> lnIdPart AND lnIdPartOriginal <> 0) OR m.llToate REPLACE pereched WITH 0, id_factd WITH - 1 @@ -13301,8 +13421,14 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" ELSE IF m.llToate REPLACE id_partc WITH lnIdPart, partc WITH lcnume FOR ales + IF Type('tact.listoric') = 'L' + REPLACE listoric WITH .F. FOR ales + ENDIF ELSE REPLACE id_partc WITH lnIdPart, partc WITH lcnume + IF Type('tact.listoric') = 'L' + REPLACE listoric WITH .F. + ENDIF ENDIF IF (lnIdPartOriginal <> lnIdPart AND lnIdPartOriginal <> 0) OR m.llToate REPLACE perechec WITH 0, id_factc WITH - 1 @@ -13507,6 +13633,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" *!* bara de jos arata si totalul notelor - se reface la orice recalculare a notei, nu doar la editarea articolelor This.ActualizeazaBaraTotaluri() + This.ActualizeazaTotaluriExtrase() ENDPROC PROCEDURE calculeaza_valori_articol @@ -14781,8 +14908,12 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" PROCEDURE Resize this.cmdSelect.Top = this.grid1.Top + this.grid1.Height - this.lblSuma.Top = this.grid1.Top + this.grid1.Height + this.lblSuma.Top = this.grid1.Top + this.grid1.Height + 4 this.txtSuma.Top = this.grid1.Top + this.grid1.Height + IF This.lActivExtrase + This.lblExtraseTotaluri.Top = this.grid1.Top + this.grid1.Height + 4 + This.lblExtraseAutosalvare.Top = this.grid1.Top + this.grid1.Height + 4 + ENDIF This.aseaza_pagina_articole() ENDPROC @@ -14793,8 +14924,12 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" llAfiseazaRulaje = this.pgfArticole.Visible this.grid1.Height = IIF(m.llAfiseazaRulaje, 284, this.Height - 100) this.cmdSelect.Top = this.grid1.Top + this.grid1.Height - this.lblSuma.Top = this.grid1.Top + this.grid1.Height + this.lblSuma.Top = this.grid1.Top + this.grid1.Height + 4 this.txtSuma.Top = this.grid1.Top + this.grid1.Height + IF This.lActivExtrase + This.lblExtraseTotaluri.Top = this.grid1.Top + this.grid1.Height + 4 + This.lblExtraseAutosalvare.Top = this.grid1.Top + this.grid1.Height + 4 + ENDIF ENDPROC PROCEDURE salveazaxml @@ -14808,10 +14943,12 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" *** salvez doar notele fara predefinire - Local loBackupXml - IF INLIST(This.nid_set, 99998, 99999) + Local loBackupXml, llOk + IF INLIST(This.nid_set, 99998, 99999) OR This.lActivExtrase loBackupXml = This.oBackupXMl IF TYPE('loBackupXml') = 'O' + llOk = .T. + TRY IF USED('tact') loBackupXML.SaveBackupSet("tact") ENDIF @@ -14821,6 +14958,20 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" IF USED('trul_obinv') loBackupXML.SaveBackupSet("trul_obinv") ENDIF + CATCH + llOk = .F. + ENDTRY + IF This.lActivExtrase + This.lblExtraseAutosalvare.Visible = !m.llOk + This.lblExtraseAutosalvare.Left = This.lblExtraseTotaluri.Left + This.lblExtraseTotaluri.Width + 12 + IF m.llOk + This.lblExtraseAutosalvare.ForeColor = RGB(0,128,0) + This.lblExtraseAutosalvare.Caption = 'Salvat automat ' + TIME() + ELSE + This.lblExtraseAutosalvare.ForeColor = RGB(255,0,0) + This.lblExtraseAutosalvare.Caption = 'EROARE LA SALVAREA AUTOMATA!' + ENDIF + ENDIF ENDIF ENDIF @@ -14899,6 +15050,31 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" This.grid1.Column44.ColumnOrder = 7 ENDIF this.grid1.SetAll("dynamicbackcolor", "IIF(ALES, RGB(255,255,225), RGB(255,255,255))", "Column") + IF Type('tact.listoric') = 'L' + * SetAll suprascrie piersica din definitia coloanelor D/C (istoric), o repun la loc + this.grid1.Column6.DynamicBackColor = "IIF(Type('tact.listoric')='L' AND tact.listoric AND Inlist(Alltrim(tact.scd),'401','4111'), RGB(255,218,185), RGB(244,250,255))" + this.grid1.Column10.DynamicBackColor = "IIF(Type('tact.listoric')='L' AND tact.listoric AND Inlist(Alltrim(tact.scc),'401','4111'), RGB(255,218,185), RGB(244,250,255))" + ENDIF + IF Type('tact.ngrupa') = 'N' + * Nr. crt. arata pozitia si sursa alocarii pe randurile impartite dintr-o factura (grupa) + 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 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 + FOR lnColDup = 1 TO This.grid1.ColumnCount + loColDup = This.grid1.Columns(lnColDup) + lcExprDup = ALLTRIM(loColDup.DynamicBackColor) + IF LEFT(m.lcExprDup, 16) == "IIF(tact.dublura" + LOOP + ENDIF + IF EMPTY(m.lcExprDup) + lcExprDup = TRANSFORM(loColDup.BackColor) + ENDIF + loColDup.DynamicBackColor = "IIF(tact.dublura, RGB(211,211,211), " + m.lcExprDup + ")" + ENDFOR + ENDIF This.CalculeazaTotal() *!* 24.05.2011 ^ @@ -15448,6 +15624,10 @@ 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) + IF Type('tact.ngrupa') = 'N' + * randurile grupei (originalul plus cele adaugate de aleg_document_pereche) devin M + REPLACE csursa_f WITH 'M' FOR ngrupa = odoc.ngrupa AND npoz = odoc.npoz + ENDIF TRY GOTO m.lnRecno CATCH @@ -15484,6 +15664,10 @@ 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) + IF Type('tact.ngrupa') = 'N' + * randurile grupei (originalul plus cele adaugate de aleg_document_pereche) devin M + REPLACE csursa_f WITH 'M' FOR ngrupa = odoc.ngrupa AND npoz = odoc.npoz + ENDIF TRY GOTO m.lnRecno CATCH @@ -15597,6 +15781,14 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" ENDIF && llReadOnly + IF Thisform.lActivExtrase + Thisform.nContorAutosalvare = Thisform.nContorAutosalvare + 1 + IF Thisform.nContorAutosalvare >= 10 + Thisform.nContorAutosalvare = 0 + Thisform.SalveazaXml() + ENDIF + Thisform.ActualizeazaTotaluriExtrase() + ENDIF ENDPROC PROCEDURE Grid1.BeforeRowColChange @@ -15606,12 +15798,36 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" ENDIF ENDPROC + PROCEDURE Grid1.Column1.Text1.MouseMove + LPARAMETERS nButton, nShift, nXCoord, nYCoord + LOCAL lcTip + lcTip = '' + IF Type('tact.ngrupa') = 'N' AND tact.npoz > 0 + DO CASE + CASE tact.csursa_f = 'N' + lcTip = 'Factura dupa numarul din text' + CASE tact.csursa_f = 'S' + lcTip = 'Factura dupa suma exacta' + CASE tact.csursa_f = 'F' + lcTip = 'Cea mai veche factura (FIFO), plata partiala posibila - verificati' + CASE tact.csursa_f = 'A' + lcTip = 'Avans: rest peste facturi - verificati' + CASE tact.csursa_f = 'M' + lcTip = 'Document pereche ales de operator' + ENDCASE + ENDIF + This.ToolTipText = m.lcTip + ENDPROC + PROCEDURE Grid1.Column10.Text1.InteractiveChange ADDPROPERTY(this, 'lInteractiveChange') LOCAL lnIdPart lnIdPart = Thisform.alege_partener("C") IF NVL(lnIdPart,0) = 0 REPLACE partc WITH "", id_partc WITH 0 IN tAct + IF Type('tact.listoric') = 'L' + REPLACE listoric WITH .F. IN tAct + ENDIF ENDIF REMOVEPROPERTY(this, 'lInteractiveChange') ENDPROC @@ -15625,6 +15841,11 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" ENDPROC + PROCEDURE Grid1.Column10.Text1.MouseMove + LPARAMETERS nButton, nShift, nXCoord, nYCoord + This.ToolTipText = IIF(Type('tact.listoric') = 'L' AND tact.listoric AND Inlist(Alltrim(tact.scc),'401','4111'), 'Partener propus din istoric - verificati', '') + ENDPROC + PROCEDURE Grid1.Column13.Text1.GotFocus thisform.pccontrol = ALLTRIM(this.ControlSource) @@ -15731,7 +15952,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" Select tAct lcAcont = Alltrim(tAct.ascd) && se poate modifica dupa ce verific_analitic() Locate For ales - IF FOUND() AND AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcCont + '.' + m.lcAcont + ' in toate inregistrarile selectate cu contul ' + m.lcCont + '.' + m.lcAcontOriginal + '?' ,4+32,_Screen.Caption) = 6 + IF FOUND() AND AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcCont + '.' + m.lcAcontOriginal + ' in toate inregistrarile selectate cu contul ' + m.lcCont + '.' + m.lcAcont + '?' ,4+32,_Screen.Caption) = 6 Replace All ascd With m.lcAcont For ales And Alltrim(scd) == m.lcCont And Alltrim(Nvl(ascd, '')) == m.lcAcontOriginal ELSE If Thisform.chkCtAnalitic.Value = 1 && copiez contul analitic pe randurile fara analitic ale aceluiasi cont @@ -15767,7 +15988,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" Select tAct lcAcont = Alltrim(tAct.ascc) && se poate modifica dupa ce verific_analitic() Locate For ales - IF FOUND() AND AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcCont + '.' + m.lcAcont + ' in toate inregistrarile selectate cu contul ' + m.lcCont + '.' + m.lcAcontOriginal + '?' ,4+32,_Screen.Caption) = 6 + IF FOUND() AND AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcCont + '.' + m.lcAcontOriginal + ' in toate inregistrarile selectate cu contul ' + m.lcCont + '.' + m.lcAcont + '?' ,4+32,_Screen.Caption) = 6 Replace All ascc With m.lcAcont For ales And Alltrim(scc) == m.lcCont And Alltrim(Nvl(ascc, '')) == m.lcAcontOriginal ELSE If Thisform.chkCtAnalitic.Value = 1 && copiez contul analitic pe randurile fara analitic ale aceluiasi cont @@ -16021,6 +16242,9 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" lnIdPart = Thisform.alege_partener("D") IF NVL(lnIdPart,0) = 0 REPLACE partd WITH "", id_partd WITH 0 IN tAct + IF Type('tact.listoric') = 'L' + REPLACE listoric WITH .F. IN tAct + ENDIF ENDIF REMOVEPROPERTY(this, 'lInteractiveChange') @@ -16039,6 +16263,11 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" ENDPROC + PROCEDURE Grid1.Column6.Text1.MouseMove + LPARAMETERS nButton, nShift, nXCoord, nYCoord + This.ToolTipText = IIF(Type('tact.listoric') = 'L' AND tact.listoric AND Inlist(Alltrim(tact.scd),'401','4111'), 'Partener propus din istoric - verificati', '') + ENDPROC + PROCEDURE Grid1.Column7.Text1.LostFocus Local lcContNou, lcContOriginal, llReturn, lnRecno lcContOriginal = Thisform.cCont @@ -16055,7 +16284,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" lcContNou = Alltrim(scd) && se poate modifica dupa verificarea in planul de conturi If m.lcContNou <> m.lcContOriginal Locate For ales - If Found() And AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcContNou + ' in toate inregistrarile selectate cu contul ' + m.lcContOriginal + '?' ,4+32,_Screen.Caption) = 6 + If Found() And AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcContOriginal + ' in toate inregistrarile selectate cu contul ' + m.lcContNou + '?' ,4+32,_Screen.Caption) = 6 Select tact Replace scd With m.lcContNou For Alltrim(scd) = m.lcContOriginal And ales Endif @@ -16086,7 +16315,7 @@ DEFINE CLASS frm_modific2024 AS _frmbase OF "_frm_base.vcx" lcContNou = Alltrim(scc) && se poate modifica dupa verificarea in planul de conturi If m.lcContNou <> m.lcContOriginal Locate For ales - If Found() And AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcContNou + ' in toate inregistrarile selectate cu contul ' + m.lcContOriginal + '?' ,4+32,_Screen.Caption) = 6 + If Found() And AMESSAGEBOX('Doriti sa inlocuiti contul ' + m.lcContOriginal + ' in toate inregistrarile selectate cu contul ' + m.lcContNou + '?' ,4+32,_Screen.Caption) = 6 Select tact Replace scc With m.lcContNou For Alltrim(scc) = m.lcContOriginal And ales Endif diff --git a/docs/todos.txt b/docs/todos.txt index e5798f3..23a74b9 100644 --- a/docs/todos.txt +++ b/docs/todos.txt @@ -109,3 +109,6 @@ Poate un wizzard 44. ROACONT - sa se poata genera xml efactura stornare si sa se trimita in SPV. Acum se poate face manual prin Borderou eFactura > Listare > Editare in browser > Stornare > Salvare xml stornat > meniul eFactura > Trimite xml efactura > trimitere in SPV xml storno salvat anterior. Vreau sa fie operatia mai simplificata pentru utilizatori, pentru cazul in care s-a trimis in SPV o factura eronat (exemplu - client gresit). Sa se poata genera si trimite xml stornat. Utilizatorul poate apoi sa stearga factura originala din contabilitate si sa o reemita corectata (ex cu clientul corect) si sa o trimita din nou in eFactura. In felul acesta se rezolva, chiar daca nu oficial, imposibilitatea de anulare a unei facturi trimise in SPV. O stornez doar cu xml, si o sterg din contabilitate. + +45. ROACONT - la verificarea D406 SAFT, verificare facturi achizitie, daca sunt facturi de achizitie din import, unde tva-ul se declara pe Declaratia Vamala de Import (adica alt document), in Registrul TVA Cumparari, suma cu TVA de pe factura de achizitie nu include si TVA, si apare diferenta fata de totalul facturii din SAFT, care calculeaza automat TVA bazat pe procentul TVA al articolelor. +Vreau sa apara in xlsx de verificare si o coloana cu verificarea daca acesta este cazul, pentru ca sa stie utilizatorul ca nu este o greseala, ci este normal. diff --git a/programe/oproceduri_comune.prg b/programe/oproceduri_comune.prg index 3d92eff..fbea8c3 100644 --- a/programe/oproceduri_comune.prg +++ b/programe/oproceduri_comune.prg @@ -7016,7 +7016,7 @@ Procedure GetDocumentByContPartenerAct CASE !Empty(m.pnNract) lcWhere2 = m.lcWhere2 + " and (i.nract = ?pnNrAct)" && cautare fara cont, cu numaract CASE !Empty(m.pcComanda) - lcWhere2 = m.lcWhere2 + " and (UPPER(l.nrord) like '%"+ m.pcComanda + "%'OR UPPER(i.explicatia) like '%" + m.pcComanda + "%' OR UPPER(i.explicatia4) like '%" + m.pcComanda + "%' OR UPPER(i.explicatia5) like '%" + pcComanda + "%')" && cautare fara cont, cu comanda + lcWhere2 = m.lcWhere2 + " and (UPPER(l.nrord) like '%'||?pcComanda||'%' OR UPPER(i.explicatia) like '%'||?pcComanda||'%' OR UPPER(i.explicatia4) like '%'||?pcComanda||'%' OR UPPER(i.explicatia5) like '%'||?pcComanda||'%')" && cautare fara cont, cu comanda ENDCASE lcWhere1 = m.lcWhere2 + IIF(!Empty(m.pcContPartener), " and i.cont = ?pcContPartener", "")