sync SVN r18177

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QGrSUJc5CBmgeDRUGJX7j3
This commit is contained in:
2026-09-18 15:21:17 +03:00
parent 374c33a5a7
commit 4784bb0752
2 changed files with 56 additions and 13 deletions

View File

@@ -156,7 +156,7 @@ Define Class ImportNote As Custom
Space(4) As scd, Space(4) As scc, Space(4) As ascd, Space(4) As ascc, ; Space(4) As scd, Space(4) As scc, Space(4) As ascd, Space(4) As ascc, ;
Cast(Null As N(10)) As id_partd, Cast(Null As N(10)) As id_partc, Space(100) As partd, Space(100) As partc, ; Cast(Null As N(10)) As id_partd, Cast(Null As N(10)) As id_partc, Space(100) As partd, Space(100) As partc, ;
Cast(Null As N(10)) As id_part, SPACE(100) as partener, ; Cast(Null As N(10)) As id_part, SPACE(100) as partener, ;
Cast(0 As I) As id_factd, Cast(0 As I) As id_factc, Cast(0 As I) As pereched, Cast(0 As I) As perechec, ; Cast(0 As I) As id_factd, Cast(0 As I) As id_factc, Cast(0 As N(20)) As pereched, Cast(0 As N(20)) As perechec, ;
Cast(Null As I) As id_fdoc, Space(50) As fdoc, .F. As listoric, ; Cast(Null As I) As id_fdoc, Space(50) As fdoc, .F. As listoric, ;
Cast(0 As I) As ngrupa, Cast(0 As I) As npoz, Space(1) As csursa_f, Cast(0 As I) As nordine ; Cast(0 As I) As ngrupa, Cast(0 As I) As npoz, Space(1) As csursa_f, Cast(0 As I) As nordine ;
From C_IMPORT_TEMP ; From C_IMPORT_TEMP ;
@@ -484,7 +484,7 @@ Define Class ExtrasBanca As Custom
[and (a.an*12+a.luna) >= (?gnAn*12+?gnLuna-12) and p.sters = 0 and p.inactiv = 0] [and (a.an*12+a.luna) >= (?gnAn*12+?gnLuna-12) and p.sters = 0 and p.inactiv = 0]
llIstoricOk = goExecutor.oExecuta(m.lcSqlIstoric, "cIstoricBrut") llIstoricOk = goExecutor.oExecuta(m.lcSqlIstoric, "cIstoricBrut")
If m.llIstoricOk If m.llIstoricOk
Create Cursor cCheiIstoric (cheie C(63), id_part N(9)) Create Cursor cCheiIstoric (cheie C(63), id_part N(10))
Select cIstoricBrut Select cIstoricBrut
Scan Scan
lcCheieTxt = TextIstoricNormalizat(explicatia) lcCheieTxt = TextIstoricNormalizat(explicatia)
@@ -522,12 +522,12 @@ Define Class ExtrasBanca As Custom
Index On id_part Tag id_part Index On id_part Tag id_part
Use In (Select("cSolduriBrut")) Use In (Select("cSolduriBrut"))
Endif Endif
Create Cursor cAlocTemp (nrec I, npoz I, id_fact I, nract I, cont C(4) Null, acont C(20) Null, suma N(15, 2), csursa C(1)) Create Cursor cAlocTemp (nrec I, npoz I, id_fact I, nract N(20), cont C(4) Null, acont C(20) Null, suma N(15, 2), csursa C(1))
Endif Endif
* Caut/creez parteneri * Caut/creez parteneri
Create Cursor cGrupParteneriCui (id_part_ales N(9), id_part N(9), denumire C(100)) Create Cursor cGrupParteneriCui (id_part_ales N(10), id_part N(10), denumire C(100))
Create Cursor cIbanDeSalvat (id_part N(9), iban C(24), denumire C(100)) Create Cursor cIbanDeSalvat (id_part N(10), iban C(24), denumire C(100))
SELECT distinct cod_fiscal, denumire, iban FROM cActTemp INTO CURSOR cParteneriTemp READWRITE SELECT distinct cod_fiscal, denumire, iban FROM cActTemp INTO CURSOR cParteneriTemp READWRITE
SELECT cParteneriTemp SELECT cParteneriTemp
lcRecc = Transform(Reccount()) lcRecc = Transform(Reccount())
@@ -801,7 +801,10 @@ Define Class ExtrasBanca As Custom
Case m.lcTip2 = This.cTipAlte && "ALT" && alte cheltuieli/venituri exploatare Case m.lcTip2 = This.cTipAlte && "ALT" && alte cheltuieli/venituri exploatare
lcContD = "6588" lcContD = "6588"
Case m.lcTip2 = This.cTipTerti && "TRF" && terti (clienti/furnizori) Case m.lcTip2 = This.cTipTerti && "TRF" && terti (clienti/furnizori)
lcContD = "401" lcContD = ContSalariiDinText(cActTemp.explicatie, Evl(Alltrim(Nvl(cActTemp.denumire, '')), m.lcPartener))
If Empty(m.lcContD)
lcContD = "401"
Endif
Case m.lcTip2 = This.cTipBuget && "BUG" && datorii la buget Case m.lcTip2 = This.cTipBuget && "BUG" && datorii la buget
lcContD = Icase(m.lcGrupaBuget = 'TVA', '4423', m.lcGrupaBuget = 'CAM', '436', '4481') lcContD = Icase(m.lcGrupaBuget = 'TVA', '4423', m.lcGrupaBuget = 'CAM', '436', '4481')
If Inlist(m.lcGrupaBuget, 'TVA', 'CAM') If Inlist(m.lcGrupaBuget, 'TVA', 'CAM')
@@ -1189,11 +1192,12 @@ Function ContAvans
Endfunc Endfunc
* -------------------------------------------------------------------- * --------------------------------------------------------------------
* Candidatii de facturi ai unui partener din cSolduriFact: intai doar tcCont, altfel orice cont al partenerului * Candidatii de facturi ai unui partener din cSolduriFact: intai doar tcCont, altfel (fara tlDoarContul) conturile de acelasi
* (404/461/462 devin candidati doar prin acest fallback) - cursor cCandRand (nract, dataact, nrecsold), ordonat * sens - 401 -> 404/462, 4111 -> 461 - cursor cCandRand (nract, dataact, nrecsold), ordonat
* -------------------------------------------------------------------- * --------------------------------------------------------------------
Procedure DeschideCandidatiFactura Procedure DeschideCandidatiFactura
Lparameters tnIdPart, tcCont Lparameters tnIdPart, tcCont, tlDoarContul
Local lcAlteConturi
If Used('cCandRand') If Used('cCandRand')
Use In (Select('cCandRand')) Use In (Select('cCandRand'))
@@ -1203,11 +1207,12 @@ Procedure DeschideCandidatiFactura
Where id_part = m.tnIdPart And Alltrim(Cont) = m.tcCont And ramas > 0 ; Where id_part = m.tnIdPart And Alltrim(Cont) = m.tcCont And ramas > 0 ;
Order By dataact, nract ; Order By dataact, nract ;
Into Cursor cCandRand Readwrite Into Cursor cCandRand Readwrite
If Reccount('cCandRand') = 0 If Reccount('cCandRand') = 0 And !m.tlDoarContul
lcAlteConturi = Icase(m.tcCont = '401', ',404,462,', m.tcCont = '4111', ',461,', '')
Use In (Select('cCandRand')) Use In (Select('cCandRand'))
Select nract, dataact, Recno() As nrecsold ; Select nract, dataact, Recno() As nrecsold ;
From cSolduriFact ; From cSolduriFact ;
Where id_part = m.tnIdPart And ramas > 0 ; Where id_part = m.tnIdPart And (',' + Alltrim(Cont) + ',') $ m.lcAlteConturi And ramas > 0 ;
Order By dataact, nract ; Order By dataact, nract ;
Into Cursor cCandRand Readwrite Into Cursor cCandRand Readwrite
Endif Endif
@@ -1307,12 +1312,12 @@ Procedure AlocaSumaExacta
Endproc Endproc
* -------------------------------------------------------------------- * --------------------------------------------------------------------
* F - aloca in ordine cronologica pana la epuizarea sumei (ultima factura poate ramane platita partial) * F - aloca in ordine cronologica pana la epuizarea sumei (ultima factura poate ramane platita partial), doar pe contul randului
* -------------------------------------------------------------------- * --------------------------------------------------------------------
Procedure AlocaFifo Procedure AlocaFifo
Lparameters tnIdPart, tcCont, tnRecCrt, tnRest, tnNpoz, tcContAloc Lparameters tnIdPart, tcCont, tnRecCrt, tnRest, tnNpoz, tcContAloc
DeschideCandidatiFactura(m.tnIdPart, m.tcCont) DeschideCandidatiFactura(m.tnIdPart, m.tcCont, .T.)
Select cCandRand Select cCandRand
Scan Scan
If m.tnRest <= 0 If m.tnRest <= 0
@@ -1325,6 +1330,33 @@ Procedure AlocaFifo
Use In (Select('cCandRand')) Use In (Select('cCandRand'))
Endproc Endproc
* --------------------------------------------------------------------
* Cont de salarii dupa cuvintele din explicatie: LICHIDARE/SALARIU/SALARII -> 421, AVANS -> 425;
* gol daca nu se potriveste sau daca beneficiarul are forma de societate in denumire (SA, SRL, PFA...)
* --------------------------------------------------------------------
Function ContSalariiDinText
Lparameters tcText, tcBeneficiar
Local lcText, lcCont, lcBeneficiar
lcText = ' ' + Chrtran(Upper(Nvl(m.tcText, '')), '/.,;:-_()', Space(9)) + ' '
lcText = Strtran(m.lcText, ' LICHIDARE DEPOZIT ', ' ')
Do Case
Case ' LICHIDARE ' $ m.lcText Or ' SALARIU ' $ m.lcText Or ' SALARII ' $ m.lcText
lcCont = '421'
Case ' AVANS ' $ m.lcText
lcCont = '425'
Otherwise
Return ''
Endcase
lcBeneficiar = ' ' + Chrtran(Strtran(Upper(Nvl(m.tcBeneficiar, '')), '.', ''), '/,;:-_()', Space(8)) + ' '
If ' SA ' $ m.lcBeneficiar Or ' SRL ' $ m.lcBeneficiar Or ' SNC ' $ m.lcBeneficiar Or ' SCS ' $ m.lcBeneficiar Or ;
' RA ' $ m.lcBeneficiar Or ' PFA ' $ m.lcBeneficiar Or ' II ' $ m.lcBeneficiar Or ' IF ' $ m.lcBeneficiar
Return ''
Endif
Return m.lcCont
Endfunc
* -------------------------------------------------------------------- * --------------------------------------------------------------------
* Numere de document din text (explicatie+documente), cifre lungi de minim 3, fara cod_fiscal/iban * Numere de document din text (explicatie+documente), cifre lungi de minim 3, fara cod_fiscal/iban
* -------------------------------------------------------------------- * --------------------------------------------------------------------

View File

@@ -1,3 +1,14 @@
<!--
18/09/2026
ROACONT - 2.11.80
:eroare:
Import extrase bancare. S-a corectat eroarea "depasire numerica" la salvarea notelor, aparuta cand se asociau documente cu numar mare.
:modificare:
Import extrase bancare. Platile catre angajati nu mai sunt defalcate automat pe deconturi sau debitori; platile de tip LICHIDARE/SALARIU/SALARII se propun pe contul 421, iar AVANS pe contul 425.
-->
<!-- <!--
16/09/2026 16/09/2026
ROACONT - 2.11.79 ROACONT - 2.11.79