Files
vfp_roaauto/COMUN/programe/pmenu.prg

1165 lines
42 KiB
Plaintext
Raw Blame History

*!* 27.03.2009
*!* Alex.lepadatu
*!* modificari pentru mutare xsets.... in baza de date
*!* 14.04.2009
*!* Alex.lepadatu
*!* dupa cererea de date din lans se apeleaza 'procedura_lans'; vezi setul 50505
*!* 29.05.2009
*!* marius.mutu
*!* id_set: 10600 - 10603 - banca valuta/lei > incasare/plata facturi in valuta
*!* poAct.suma_22 (banca in valuta > incasare/plata > suma in valuta de incasare)
*!* daca apare itemul 81 (suma_22), nu mai pun in xrequest itemul 11 (suma_2) si nu mai exista poAct.suma_2, deci trebuie sa adaug proprietatea
*!* poAct.suma_22a = suma in valuta incasata si convertita in valuta facturii
*!* poAct.suma_32 = curs valutei in care se incaseaza
*!* 18.02.2010
*!* marius.mutu
*!* + lans_generic - suport pentru note X = Y
*!* 14.01.2015
*!* marius.mutu
*!* LANS: se transmite poActAnterior, daca se alege continuarea cu aceeasi operatie. Se completeaza automat valorile din operatia precedenta.
*!* doar pentru contabilitate.
*!* La gestiune nu se copiaza numarul facturii si partenerul
*!* 16.01.2015
*!* marius.mutu
*!* LANS: se poate opta cu DA continuare operatie cu copiere date / NU continuare operatie fara copiere date / Renuntare
*!* nu se mai sare peste numar act, dataact, suma valuta
*!* 04.03.2015
*!* marius.mutu
*!* LANS: Completare informatii din documentul anterior
*!* Nu mai copiez partenerul, in afara de banca/casa (ex: 5311 = 4111, se retine doar casa, nu si clientul)
*!* Nu mai completez nract (nu se mai genera un numar nou la tipurilede documente cu serii, ex. chitante,facturi)
*!* 04.01.2015
*!* marius.mutu
*!* lans - oxset.id_jtax pentru documentele din 2015 introduse in 2016 - nu mai afisau explicatia de TVA initiala cu 24%
*!* 06.01.2015
*!* marius.mutu
*!* introducere_compacta
*!* In 2015 lucrez cu TVA 24%. Transform TVA din 20% in 24%
*!* 18.08.2017
*!* marius.mutu
*!* lans - corectie NIR/BON
*!* 22.08.2025
*!* marius.mutu
* introducere_compacta
* Am introdus Calendar.impozit_profit
* ID_SET = 10609 Platitorii impozit venit, pentru limitare deducere 50% nu le trebuie 2 note CHELTUIELI DEDUCTIBILE si NEDEDUCTIBILE
*--------------------------------------------
Function deschide_menu
Parameters tabela, cc1, cc2, mnrtata, stinga, sus, ONT
Public nt, no, m
nt = Alltrim(tabela) + '_' + Alltrim(Str(mnrtata))
If Upper(Left(tabela, 6)) = '_MENU1'
no = 'o' + nt
zz = 'SELECT ' + cc1 + ' AS C1, ' + cc2 + ' AS C2,nrnod,PROCEDURA,TATAFIU,ID_SET,LISTA_NOTE FROM ' + ;
tabela + ' WHERE NRTATA=' + Alltrim(Str(mnrtata)) + ' INTO CURSOR ' + nt
Else
no = 'o_' + nt
zz = 'SELECT ' + cc1 + ' AS C1, ' + cc2 + ' AS C2,nrnod,PROCEDURA,TATAFIU,ID_SET FROM ' + ;
tabela + ' WHERE NRTATA=' + Alltrim(Str(mnrtata)) + ' INTO CURSOR ' + nt
Endif
&zz
m = 0
Select &nt
Scan
mm = Len(Alltrim(c1))
m = Iif(m > mm, m, mm)
Endscan
ta = _Tally
If ta = 0
Return '0'
Endif
If Type("&no")!= 'O'
Public &no
zz = no + '=crea("menuclasic")'
&zz
With &no
wm = m * 7
.NUME = no
.ONUMETATA = ONT
.Left = stinga
.Top = sus
.tabela = tabela
.camp1 = cc1
.camp2 = cc2
.sursa = nt
.Width = wm + 2 * .margine
.NRFII = ta
.rh = .container1.cwm1.Height
.Height = (.rh + 1) * .NRFII + 2 * .margine + 2
*.show()
Endwith
Endif
Release nt, m
Return no
*------------------------------------------------------------------------------------------
Procedure deschide_menuuri
*!* If !Used('menu1')
*!* Use &DIRGEN\CONTAB\Date\menu1 In 0 Alias menu1 Order Tag 'nrnod'
*!* Endif
*!* If !Used('menu2')
*!* Use &DIRGEN\CONTAB\Date\menu2 In 0 Alias menu2 Order Tag 'nrnod'
*!* Endif
*!* If !Used('menu3')
*!* Use &DIRGEN\CONTAB\Date\menu3 In 0 Alias menu3 Order Tag 'nrnod'
*!* Endif
*!* If !Used('menu4')
*!* Use &DIRGEN\CONTAB\Date\menu4 In 0 Alias menu4 Order Tag 'nrnod'
*!* Endif
*!* If PRIMADATA
*!* Do CE_WINDOWS
*!* omenuvertical=Crea('menuvertical')
*!* omenuvertical.Show()
*!* Endif
*deschide_menu(tabela, cc1,cc2,mnrtata,stinga,sus,ONT
Return
*--------------------------------------
Procedure CE_WINDOWS
Local vermajor, verminor
Public TIP_MENU, COL_MENU, cewin
Store '' To cewin
Store 0 To vermajor, verminor, TIP_MENU
vermajor = Val(Os(3))
verminor = Val(Os(4))
Do Case
Case vermajor < 4
cewin = '95'
Case vermajor = 4
cewin = '98'
Case vermajor >= 5
Do Case
Case verminor = 0
cewin = '2000'
Case verminor = 1
cewin = 'XP'
Otherwise
cewin = 'MAINOU'
Endcase
Endcase
*IF INLIST(CEWIN,'95','98','2000')
TIP_MENU = 0&&'RAISED'
*ELSE
*TIP_MENU=2&&'FLAT'
*ENDIF
*!* Do Case
*!* Case Inlist(cewin,'95','98')
*!* COL_MENU=Rgb(192,192,192)&&GRI
*!* Case cewin='2000'
*!* COL_MENU=Rgb(212,208,200)&&NISIP GRI
*!* Case cewin='XP'
*!* COL_MENU=Rgb(236,233,216)&&NISIP BEJ
*!* Otherwise
COL_MENU = Rgb(255, 255, 255)&&ALB
*!* Endcase
Return
*!* 18.02.2010
*** LANSEAZA LANS CU UN ID_SET SI CONTURILE X (CN), Y (CNY)
Procedure lans_generic
Lparameters tnIds, tcContX, tcAcontX, tcContY, tcAcontY
*!* X = Y
*!* 4426 = Y
Private pcACN, CNY, pcACNY
pcACN = ""
CNY = ""
pcACNY = ""
If Type('tcContX') = 'C' And !Empty(tcContX)
*** CN E VARIABILA GLOBALA IN PROGRAMUL PRINCIPAL
CN = tcContX
Endif
If Type('tcAcontX') = 'C' And !Empty(tcAcontX)
pcACN = tcAcontX
Endif
If Type('tcContY') = 'C' And !Empty(tcContY)
CNY = tcContY
Endif
If Type('tcaContY') = 'C' And !Empty(tcAcontY)
pcACNY = tcContY
Endif
lans(tnIds)
Endproc
*!* 18.02.2010 ^
*--------------------------------------------------------
Function lans
Lparameters IDS, tlContinua, tlVerificaAcont, taValori, tnDeducere, poActAnterior
*!* modificare v 2.2.20 : tnDeducere
* poActAnterior: obiectul poAct completat la un LANS din operatia anterioara. Este completat daca se doreste acelasi tip de operatie
* parametrul poActAnterior poate sa aiba si valorile: "corectie,1234" = modificare NIR/BON din ROAGEST, codul 1234
Local lcACT, lcForm, lcMesaj, lcNOM_CONTRACTE, lcNOM_FDOC, lcNOM_GESTIUNI, lcNOM_LUCRARI
Local lcNOM_PARTENERI, lcNOM_RESPONSABILI, lcNOM_SECTII, lcNOM_SUCURSALE, lcNOM_VALUTE
Local lcNOM_VENIT_CHELTUIELI, lcProcedura, lcSql, lcTip, lcUTILIZATORI, lcValoareDefault
Local lcVariabila, llAfiseaza, llContinua, llCreareGeneratorNumere, llEnabled, llLunaInchisa
Local llSucces, llTabStop, llVerificaAcont, lnIndexVariabile, lnLengthVariabile, lnNumarParametri
Local lnRandVariabila, lnRaspuns, lnSucces
Local lcProprietateAnt, lcValoareAnt, lnProprietate, lnProprietati, llCorectie, lnCod
*:Global pcSirFacturi, taActAnterior[1]
*:Global ID_SET, OXSET, buton, i, oitem, pcSelect, poAct
Store .T. To llContinua, llVerificaAcont
llCorectie = .F.
lnCod = 0
IF TYPE('poActAnterior') = 'O'
llCorectie = IIF(PEMSTATUS(poActAnterior, 'lCorectie', 5), poActAnterior.lCorectie, .F.)
lnCod = IIF(m.llCorectie, poActAnterior.nCod, 0)
ENDIF
lnRaspuns = 6
*!* MODIFICAT 03.11.2005
*!* MARIUS.MUTU
llLunaInchisa = is_luna_blocata(gcS, gnId_Prg_Owner, gnAn, gnLuna)
If llLunaInchisa
aMESSAGEBOX("Aceasta luna este <20>nchisa!", 0 + 48, "Luna <20>nchisa")
Return 2
Endif
lnNumarParametri = Pcount() && modificare v 2.2.20
Do Case
Case lnNumarParametri = 2
llContinua = tlContinua
Case lnNumarParametri >= 3
llContinua = tlContinua
llVerificaAcont = tlVerificaAcont
Endcase
* gcS = variabila globala care imi tine minte schema (diferita in functie de firma)
lcNOM_FDOC = gcS + '.NOM_FDOC'
lcNOM_SUCURSALE = gcS + 'NOM_SUCURSALE'
lcNOM_PARTENERI = gcS + '.NOM_PARTENERI'
lcNOM_VENIT_CHELTUIELI = gcS + '.NOM_VENIT_CHELTUIELI'
lcNOM_RESPONSABILI = gcS + '.VNOM_RESPONSABILI'
lcUTILIZATORI = 'syn_UTILIZATORI'
lcNOM_SECTII = gcS + '.NOM_SECTII'
lcNOM_SUCURSALE = gcS + '.NOM_SUCURSALE'
lcNOM_LUCRARI = gcS + '.NOM_LUCRARI'
lcNOM_GESTIUNI = gcS + '.NOM_GESTIUNI'
lcNOM_VALUTE = gcS + '.NOM_VALUTE'
lcACT = gcS + '.ACT'
lcNOM_CONTRACTE = gcS + '.VCONTRACTE'
If gnAn >= Iif(Type('gnAnFormNou') = 'U', 2007, gnAnFormNou)
pcSelect = ["SELECT A.SERIE_ACT,A.ID_ACT,A.LUNA,A.AN,A.COD, A.DATAIREG as datairegt,A.NRACT,] + ;
[A.DATAACT as dataactt,A.suma, A.EXPLICATIA,A.SCD,A.ASCD,A.SCC,A.ASCC, A.PERECHED,A.PERECHEC,"+] + ;
["A.SUMA_VAL,A.EXPLICATIA4,A.EXPLICATIA5,A.CURS,A.DATASCAD as datascadt,A.NEIMPOZAB,A.NNIR,] + ;
[A.ID_UTIL,UTIL2.UTILIZATOR AS UTIL,A.DATAORA,A.ID_UTILS,UTIL1.UTILIZATOR AS UTILS,A.DATAORAS,"+] + ;
['A.ID_RESPONSABIL,RESP.NUME AS NRESP,A.ID_VENCHELT,VENCHELT.EXPLICATIE AS DST_CHLT,A.ID_LUCRARE,] + ;
[LUCR.NRORD,A.ID_CTR,CTR.CONTRACT,A.ID_SECTIE,SECTII.SECTIE,A.PROC_TVA,A.ID_SET,A.ID_FACT,] + ;
[ A.ID_FACTD, A.ID_FACTC,'+] + ;
['A.ID_PARTD,PART1.NUME AS PARTD,A.ID_PARTC,PART.NUME AS PARTC,A.ID_SUCURSALA,S.SUCURSALA,A.ID_FDOC,FDOC.FEL_DOCUMENT AS FDOC, ' +] + ;
["A.ID_GESTIN,A.ID_JTVA_COLOANA,G1.NUME_GESTIUNE AS GESTIN,A.ID_GESTOUT,G2.NUME_GESTIUNE AS GESTOUT,A.ID_VALUTA,V.NUME_VAL," + ] + ;
["0000000000 as id_pol, lpad(' ',30,' ') as nume_lista_preturi,0 as tva_incasare, "+] + ;
["cast(0 as Number(20)) as id_instiintare, cast(0 as Number(14)) as numar_instiintare, CAST(null as number(6)) as taxcode, CAST(null as varchar2(9)) as paymentcode, "+] + ;
["cast(null as varchar2(250)) as taxname, cast(null as varchar2(250)) as paymentname, cast(null as varchar2(250)) as explicatie_tva "+] + ;
['FROM &lcACT A '+] + ;
['LEFT JOIN &lcNOM_FDOC FDOC ON A.ID_FDOC=FDOC.ID_FDOC '+] + ;
['LEFT JOIN &lcNOM_SUCURSALE S ON A.ID_SUCURSALA = S.ID_SUCURSALA '+] + ;
['LEFT JOIN &lcNOM_PARTENERI PART ON A.ID_PARTC=PART.ID_PART '+] + ;
['LEFT JOIN &lcNOM_PARTENERI PART1 ON A.ID_PARTD=PART1.ID_PART '+] + ;
['LEFT JOIN &lcNOM_VENIT_CHELTUIELI VENCHELT ON A.ID_VENCHELT=VENCHELT.ID_VENCHELT '+] + ;
['LEFT JOIN &lcNOM_RESPONSABILI RESP ON A.ID_RESPONSABIL=RESP.ID_RESPONSABIL '+] + ;
['LEFT JOIN &lcUTILIZATORI UTIL1 ON A.ID_UTILS=UTIL1.ID_UTIL '+] + ;
['LEFT JOIN &lcUTILIZATORI UTIL2 ON A.ID_UTIL=UTIL2.ID_UTIL '+] + ;
['LEFT JOIN &lcNOM_LUCRARI LUCR ON A.ID_LUCRARE=LUCR.ID_LUCRARE '+] + ;
['LEFT JOIN &lcNOM_CONTRACTE CTR ON A.ID_CTR=CTR.ID_CTR '+] + ;
['LEFT JOIN &lcNOM_GESTIUNI G1 ON A.ID_GESTIN=G1.ID_GESTIUNE '+] + ;
['LEFT JOIN &lcNOM_GESTIUNI G2 ON A.ID_GESTOUT=G2.ID_GESTIUNE '+] + ;
['LEFT JOIN &lcNOM_VALUTE V ON A.ID_VALUTA=V.ID_VALUTA '+] + ;
['LEFT JOIN &lcNOM_SECTII SECTII ON A.ID_SECTIE=SECTII.ID_SECTIE where 1=2']
Else
pcSelect = ["SELECT A.SERIE_ACT,A.ID_ACT,A.LUNA,A.AN,A.COD, A.DATAIREG as datairegt,A.NRACT, ] + ;
[A.DATAACT as dataactt,A.suma, A.EXPLICATIA,A.SCD,A.ASCD,A.SCC,A.ASCC, A.PERECHED,A.PERECHEC,"+] + ;
["A.SUMA_VAL,A.EXPLICATIA4,A.EXPLICATIA5,A.CURS,A.DATASCAD as datascadt,A.NEIMPOZAB,A.NNIR,] + ;
[A.ID_UTIL,UTIL2.UTILIZATOR AS UTIL,A.DATAORA,A.ID_UTILS,UTIL1.UTILIZATOR AS UTILS,A.DATAORAS,"+] + ;
['A.ID_RESPONSABIL,RESP.NUME AS NRESP,A.ID_VENCHELT,VENCHELT.EXPLICATIE AS DST_CHLT,A.ID_LUCRARE,] + ;
[LUCR.NRORD,A.ID_CTR,CTR.CONTRACT,A.ID_SECTIE,SECTII.SECTIE,A.PROC_TVA,A.ID_SET,A.ID_FACT, A.ID_FACTD, A.ID_FACTC,'+] + ;
['A.ID_PARTD,PART1.NUME AS PARTD,A.ID_PARTC,PART.NUME AS PARTC,A.ID_SUCURSALA,S.SUCURSALA, ] + ;
[A.ID_FDOC,FDOC.FEL_DOCUMENT AS FDOC, ' +] + ;
["A.ID_GESTIN,G1.NUME_GESTIUNE AS GESTIN,A.ID_GESTOUT,G2.NUME_GESTIUNE AS GESTOUT,A.ID_VALUTA,V.NUME_VAL," +] + ;
["0000000000 as id_pol, lpad(' ',30,' ') as nume_lista_preturi,0 as tva_incasare, "+] + ;
["cast(0 as Number(20)) as id_instiintare, cast(0 as Number(14)) as nr_instiintare, CAST(null as number(6)) as taxcode, CAST(null as varchar2(9)) as paymentcode, "+] + ;
["cast(null as varchar2(250)) as taxname, cast(null as varchar2(250)) as paymentname, cast(null as varchar2(250)) as explicatie_tva "+] + ;
['FROM &lcACT A '+] + ;
['LEFT JOIN &lcNOM_FDOC FDOC ON A.ID_FDOC=FDOC.ID_FDOC '+] + ;
['LEFT JOIN &lcNOM_SUCURSALE S ON A.ID_SUCURSALA = S.ID_SUCURSALA '+] + ;
['LEFT JOIN &lcNOM_PARTENERI PART ON A.ID_PARTC=PART.ID_PART '+] + ;
['LEFT JOIN &lcNOM_PARTENERI PART1 ON A.ID_PARTD=PART1.ID_PART '+] + ;
['LEFT JOIN &lcNOM_VENIT_CHELTUIELI VENCHELT ON A.ID_VENCHELT=VENCHELT.ID_VENCHELT '+] + ;
['LEFT JOIN &lcNOM_RESPONSABILI RESP ON A.ID_RESPONSABIL=RESP.ID_RESPONSABIL '+] + ;
['LEFT JOIN &lcUTILIZATORI UTIL1 ON A.ID_UTILS=UTIL1.ID_UTIL '+] + ;
['LEFT JOIN &lcUTILIZATORI UTIL2 ON A.ID_UTIL=UTIL2.ID_UTIL '+] + ;
['LEFT JOIN &lcNOM_LUCRARI LUCR ON A.ID_LUCRARE=LUCR.ID_LUCRARE '+] + ;
['LEFT JOIN &lcNOM_CONTRACTE CTR ON A.ID_CTR=CTR.ID_CTR '+] + ;
['LEFT JOIN &lcNOM_GESTIUNI G1 ON A.ID_GESTIN=G1.ID_GESTIUNE '+] + ;
['LEFT JOIN &lcNOM_GESTIUNI G2 ON A.ID_GESTOUT=G2.ID_GESTIUNE '+] + ;
['LEFT JOIN &lcNOM_VALUTE V ON A.ID_VALUTA=V.ID_VALUTA '+] + ;
['LEFT JOIN &lcNOM_SECTII SECTII ON A.ID_SECTIE=SECTII.ID_SECTIE where 1=2']
Endif
*!* modificare serii numere - 10.2007
llCreareGeneratorNumere = .F.
If Type('poGeneratorNumere') = 'U'
Private poGeneratorNumere
poGeneratorNumere = Createobject('oGeneratorNumere')
llCreareGeneratorNumere = .T.
Endif
*!* modificare serii numere - 10.2007 ^
Private podateintrod
Store '' To podateintrod
llAfiseaza = .F.
lnSucces = gencursor('podateintrod', 'crsact', pcSelect, [1=2], [''], '', llAfiseaza)
podateintrod.ca_baza1.afisare()
If Used('actactan')
Use In actactan
Endif
Select 0000 As nr_nota, c.*, c.SUMA As TOTFTVA, c.SUMA As TOTTVA, Ttod(c.dataactt) As dataact, ;
Ttod(c.datairegt) As dataireg, Ttod(c.datascadt) As datascad, 0 As POZITIE_1, 0 As POZITIE_2 ;
From crsact c Into Cursor actactan Readwrite
Use In crsact
Release podateintrod
Select actactan
Scatter Name poAct
*!* 29.05.2009
*!* marius.mutu
*!* poAct.suma_22 (banca in valuta > incasare/plata > suma in valuta de incasare)
*!* daca apare itemul 81 (suma_22), nu mai pun in xrequest itemul 11 (suma_2) si nu mai exista poAct.suma_2, deci trebuie sa adaug proprietatea
*!* poAct.suma_22a = suma in valuta incasata si convertita in valuta facturii
*!* poAct.suma_32 = cursul valutei in care se incaseaza
AddProperty(poAct, "suma_2", 0.0000)
AddProperty(poAct, "suma_22", 0.0000)
AddProperty(poAct, "suma_22a", 0.0000)
AddProperty(poAct, "suma_32", 0.0000)
AddProperty(poAct, "nume_val2", "")
AddProperty(poAct, "id_valuta2", Cast(0 As I))
AddProperty(poAct, "deducere", 0) && modificare v 2.2.20
AddProperty(poAct, "id_gestiune", 0)
AddProperty(poAct, "cgest", "")
AddProperty(poAct, "nume_gestiune", "")
AddProperty(poAct, "nume_val3", "")
AddProperty(poAct, "id_valuta3", Cast(0 As I))
m.ID_SET = IDS
poAct.ID_SET = IDS
Select XSETS
Seek IDS && trebuie sa raman pozitionat in xsets pe setul curent pentru ca ma bazez in alte proceduri pe setul curent
If Found()
Scatter Name OXSET
*!* modificare JC/JV 2007
If gnNeplatitoare_tva = 1
OXSET.id_jtax = OXSET.id_jtaxn
OXSET.id_jnetax = OXSET.id_jtaxn
ELSE
DO CASE
CASE BETWEEN(m.gnAn*12+m.gnLuna, 2016*12+1, 2025*12+7)
* 08/2025: 19 > 21
DO case
CASE oxset.id_jtax = 208
oxset.id_jtax = 105
CASE oxset.id_jtax = 216
oxset.id_jtax = 141
CASE oxset.id_jtax = 220
oxset.id_jtax = 118
CASE oxset.id_jtax = 35
oxset.id_jtax = 1
ENDCASE
CASE gnAn <= 2015
* achizitiile si livrarile pe 2015 trebuie sa propuna TVA 24%.
* In xsets s-a modificat 20% de la 01.01.2016
DO case
CASE oxset.id_jtax = 176
oxset.id_jtax = 156
CASE oxset.id_jtax = 186
oxset.id_jtax = 162
CASE oxset.id_jtax = 180
oxset.id_jtax = 158
CASE oxset.id_jtax = 27
oxset.id_jtax = 15
ENDCASE
ENDCASE
ENDIF
Else
Scatter Name OXSET Blank
Endif
*!* modificare JC/JV 2007 ^
If gnAn >= Iif(Type('gnAnFormNou') = 'U', 2007, gnAnFormNou)
If Inlist(OXSET.ID_SET, 208, 209, 220, 221) && achizitie import/intern cu recalculare pret achizitie din ROAGEST
Do update_jtva_coloane With (OXSET.tipjurnal), [], 1
Else
Do update_jtva_coloane With (OXSET.tipjurnal)
Endif
lcForm = [actbaza2007]
Else
Do update_cote_TVA
lcForm = [actbaza]
Endif
*!* modificare JC/JV 2007 ^
oitem = Createobject(lcForm)
oitem.ID_SET = IDS
oitem.formgest = OXSET.formgest
oitem.lVerificaAcont = llVerificaAcont
oitem.pcobj = 'poAct'
IF TYPE('oitem.lCorectie') = 'L'
oitem.lCorectie = m.llCorectie && daca este corectie de NIR/BON din ROAGEST
oitem.nCod = m.lnCod && codul operatiei la care se face corectie, pentru a o putea-o sterge
ENDIF
lnIndexVariabile = 0
If Pcount() >= 4 And Type('taValori', 1) = 'A'
External Array taValori
With oitem
For I = 1 To Alen(taValori, 1)
.variabile[i, 1] = Upper(taValori[i, 1]) && numele variabilei : poAct.* sau poAct.id_v*
&& (ptr. campurile care ar fi trebuit completate din nomenclatoare)
&& exemplu: poAct.nume sau poAct.id_vnume
.variabile[i, 2] = taValori[i, 2] && valoarea variabilei
.variabile[i, 3] = taValori[i, 3] && .T. => tabstop = .F.
.variabile[i, 4] = Iif(Type("taValori[i,4]") = "L", taValori[i, 4], .F.) && .T. => enabled = .F.
lnIndexVariabile = I
Endfor
Endwith
Endif && pcount
*** VALORI DEFAULT XITEMS (ID_FDOC...)
Text To lcSql Noshow Textmerge
select r.valoare_default,
r.id_item,
i.camp_lista,
i.id_fisier,
CASE
WHEN i.id_fisier is not null then
pack_util.GetText(i.fis_lista,
i.id_fisier,
to_number(r.valoare_default),
replace(i.camp_lista, ',', ' || '' '' || '))
ELSE
r.valoare_default
end as valoare_default_text,
i.var_item
from xrequest r join xitems i on i.id_item = r.id_item
where r.id_set = <<m.IDS>> and r.valoare_default is not null
Endtext
llSucces = goExecutor.oExecuta(lcSql, [crsRequest])
If m.llSucces
*** VALORI DEFAULT XNOTE (ID_PART...)
Text To m.lcSql Noshow Textmerge
select n.cont, n.id_part, n.id_set, p.nume, n.tip
from (select n1.xscd as cont,
n1.id_partd as id_part,
n1.id_set,
'D' as tip
from xnote n1
where nvl(n1.id_partd, 0) <> 0
and n1.id_set = <<m.IDS>>
union
select n2.xscc as cont,
n2.id_partc as id_part,
n2.id_set,
'C' as tip
from xnote n2
where nvl(n2.id_partc, 0) <> 0
and n2.id_set = <<m.IDS>>) n
join nom_parteneri p
on n.id_part = p.id_part
Endtext
llSucces = goExecutor.oExecuta(lcSql, [crsNumePartener])
Endif
If !Used('crsNumePartener')
Create Cursor crsNumePartener (Cont c(4), id_part I, ID_SET I, NUME c(100), tip c(1))
Endif
If !Used('crsRequest')
Create Cursor crsRequest(valoare_default c(100), id_item I, camp_lista c(100), id_fisier c(100), valoare_default_text c(100), var_item c(100))
ENDIF
* Completare valori din documentul anterior
Create Cursor crsActAnterior (variabila c(100), valoare c(250), ltabstop L, lenabled L)
If Type('poActAnterior') = 'O'
lnProprietati = Amembers(taActAnterior, poActAnterior)
For lnProprietate = 1 To lnProprietati
lcProprietateAnt = Upper(taActAnterior[lnProprietate])
llLoop = !(lcProprietateAnt + ',' $ [FDOC,ID_FDOC,DATAIREG,DATAACT,DATASCAD,SERIE_ACT,DST_CHLT,ID_VENCHELT,NRESP,ID_RESPONSABIL,] + ;
[NRORD,ID_LUCRARE,SECTIE,ID_SECTIE,CONTRACT,ID_CONTRACT,NUME_VAL,ID_VALUTA,NUME_VAL2,ID_VALUTA2,NUME_LISTA_PRETURI,ID_POL,] + ;
[SUMA_3,SUMA_32,] Or Left(m.lcProprietateAnt, 1) = 'V' Or Left(m.lcProprietateAnt, 5) = 'ID_VV')
IF !m.llLoop
* Nu copiez partenerul, in afara de banca/casa (ex: 5311 = 4111, se retine doar casa, nu si clientul)
llLoop = (Left(m.lcProprietateAnt, 1) = 'V' Or Left(m.lcProprietateAnt, 5) = 'ID_VV') AND !(Left(m.lcProprietateAnt, 2) = 'V5' Or Left(m.lcProprietateAnt, 6) = 'ID_VV5')
ENDIF
IF !m.llLoop
* La gestiune nu se copiaza numarul facturii si partenerul
llLoop = Type('gcNumeProgram') = 'C' And m.gcNumeProgram = 'ROAGEST' And (lcProprietateAnt + ',' $ [NRACT,SERIE_ACT,] Or Left(m.lcProprietateAnt, 1) = 'V' Or Left(m.lcProprietateAnt, 5) = 'ID_VV')
ENDIF
* Copiez toate proprietatile daca este corectie de NIR/Bon
llLoop = m.llLoop and !m.llCorectie
IF m.llLoop
LOOP
ENDIF
lcValoareAnt = Transform(Evaluate('poActAnterior.' + m.lcProprietateAnt))
llTabStop = !lcProprietateAnt + ',' $ [DATAIREG,DATAACT,DATASCAD,NRACT,SERIE_ACT,SUMA_3,SUMA_32,] && sa nu fie tabstop = .t. la nract,...
llEnabled = .F.
Insert Into crsActAnterior (variabila, valoare, ltabstop, lenabled) Values ('poAct.' + m.lcProprietateAnt, m.lcValoareAnt, m.llTabStop, m.llEnabled)
Endfor
Endif
Create Cursor crsValori (variabila c(100), valoare c(250), ltabstop L, lenabled L)
Insert Into crsValori (variabila, valoare, ltabstop, lenabled) ;
Select "poact." + Upper(Alltrim(Nvl(crsRequest.id_fisier, []))) As variabila, ;
Allt(Nvl(crsRequest.valoare_default, [])) As valoare, ;
.T. As ltabstop, ;
.F. As lenabled ;
From crsRequest ;
Where !Empty(Nvl(crsRequest.id_fisier, [])) ;
Union All ;
Select "poAct." + Allt(Nvl(crsRequest.var_item, [])) As variabila, ;
Alltrim(Nvl(crsRequest.valoare_default_text, [])) As valoare, ;
.T. As ltabstop, ;
.F. As lenabled ;
From crsRequest ;
Union All ;
Select "poact.id_vv" + Alltrim(Nvl(crsNumePartener.Cont, [])) + Iif(Inlist(Left(Cont, 2), '51', '53'), Iif(tip = 'D', '0', '1'), '') As variabila, ;
Alltrim(Str(Nvl(crsNumePartener.id_part, 0))) As valoare, ;
.T. As ltabstop, ;
.F. As lenabled ;
From crsNumePartener ;
Union All ;
Select "poact.v" + Alltrim(crsNumePartener.Cont) + Iif(Inlist(Left(Cont, 2), '51', '53'), Iif(tip = 'D', '0', '1'), '') As variabila, ;
Alltrim(Nvl(crsNumePartener.NUME, [])) As valoare, ;
.T. As ltabstop, ;
.F. As lenabled ;
From crsNumePartener ;
Union All ;
Select variabila, valoare, ltabstop, lenabled ;
From crsActAnterior
Use In (Select('crsActAnterior'))
lnLengthVariabile = Alen(oitem.variabile, 1)
Select crsValori
Scan
lcVariabila = Alltrim(variabila)
lcValoareDefault = Alltrim(valoare)
llTabStop = ltabstop
llEnabled = lenabled
*** caut randul pe care se gaseste poact.id_fdoc Case Insensitive; Return row number; Exact ON
*** daca nu il gasesc il adaug in array
lnRandVariabila = Ascan(oitem.variabile, m.lcVariabila, 1, m.lnLengthVariabile, 1, 15)
If m.lnRandVariabila = 0
lnIndexVariabile = m.lnIndexVariabile + 1
oitem.variabile(m.lnIndexVariabile, 1) = m.lcVariabila
oitem.variabile(m.lnIndexVariabile, 2) = m.lcValoareDefault
oitem.variabile(m.lnIndexVariabile, 3) = m.llTabStop
oitem.variabile(m.lnIndexVariabile, 4) = m.llEnabled
Endif
Endscan
Use In (Select('crsValori'))
oitem.Show(1)
*!* adaugat 14.04.2009
*!* modificare v 2.2.20
If lnNumarParametri >= 5 And Type('tnDeducere') = 'N'
tnDeducere = poAct.deducere
Endif
*!* modificare v 2.2.20 ^
*!* alex.lepadatu
Release oitem
If pl_verificat
lcProcedura = Alltrim(Nvl(OXSET.procedura_lans, ""))
If !Empty(lcProcedura)
Do &lcProcedura
Endif
ENDIF
*!* 14.04.2009
If Type("OXSET.nu_sterg") = "N"
OXSET.nu_sterg = Iif(OXSET.nu_sterg = 1, .T., .F.)
Endif
If OXSET.nu_sterg = .F. And buton!= 2 And llContinua
lcTip = [Confirmare]
lcMesaj = [Doriti sa continuati cu operatii de acest fel?] + Chr(13) + Chr(10) + [DA=copiere date / NU=fara copiere date / Abandon]
lnRaspuns = aMESSAGEBOX(lcMesaj, 3 + 32, lcTip)
If Used('cote_tva')
Use In cote_tva
Endif
If Used('jtva_coloane')
Use In jtva_coloane
Endif
*!* modificare v 2.5.16 : ar trebui resetate toate variabilele initializate inainte de lans
If Type('pcSirFacturi') <> 'U'
Store [] To pcSirFacturi
Endif
*!* modificare v 2.5.16 ^
*!* If buton=1
If Inlist(lnRaspuns, 6, 7) && 6=DA=copiere date;7=NU=fara copiere date
If Type('poGeneratorNumere') <> 'U'
poGeneratorNumere.ResetAll()
Endif
If Type('taValori', 1) = 'A'
lans(m.IDS, m.llContinua, m.llVerificaAcont, @taValori)
Else
If lnRaspuns = 6 && DA cu copiere date
lans(m.IDS, m.llContinua, m.llVerificaAcont, .F., .F., m.poAct)
Else
lans(m.IDS, m.llContinua, m.llVerificaAcont)
Endif
Endif
Endif
Else
lnRaspuns = Iif(buton = 1, 6, 2)
Endif
Release OXSET
If Inlist(lnRaspuns, 6, 7) && DA
buton = 1
Else && NU
buton = 2
Endif
*!* modificare serii numere - 10.2007
If llCreareGeneratorNumere
Release poGeneratorNumere
Endif
*!* modificare serii numere - 10.2007 ^
Return buton
*----------------------------------------------
Procedure introducere_compacta
Parameters tcFis, tcscd, tcscc, tl_calcTVA, tl_plata, tctitlu, tctva, tn_idset, tl_acont, tnDeducere, tlCursorCreat, tnTotcTVA
Local llVerificaAcont, llSucces, llN50, llN100, llNeexigibil, llCursorCreat
llCursorCreat = .F.
llVerificaAcont = .T.
*!* tcfis = fisierul din calefirma (achi_mat.dbf)
*!* tcscd = simbol cont debitor
*!* tcscc = simbol cont creditor
*!* tl_calctva = daca se calculeaza TVA-ul per total
*!* tl_plata = daca se achita factura respectiva
*!* tctitlu = titlul formularului frm_introd_compact
*!* tctva = contul de TVA (daca tl_calctva=.t.)
*!* tn_idset = parametrul functiei lans()
*!* tl_acont = daca se verifica analiticele
*!* tnDeducere = 0/1 - daca se scriu notele pentru cheltuieli deductibile 50%
*!* tlCursorCreat (optional) = .T. daca cursorul cnote_contabile este creat anterior (Ex: import din eFactura)
*!* tnTotcTVA (optional) = Valoarea cu TVA import eFactura
If Pcount() >= 9
llVerificaAcont = tl_acont
ENDIF
If Pcount() >= 11
llCursorCreat = m.tlCursorCreat
ENDIF
Select actactan
Locate
Scatter Name poAct
AddProperty(poAct, "deducere", Iif(Empty(tnDeducere), 0, tnDeducere)) && modificare v 2.2.20
If Used('introdc')
Use In introdc
ENDIF
*!* modificare JC/JV 2007
If gnAn >= Iif(Type('gnAnFormNou') = 'U', 2007, gnAnFormNou)
*!* modificare ROACONT v 2.4.0
Select actactan
Calculate Max(tva_incasare) To lnTvaIncasare
*!* modificare ROACONT v 2.4.0 ^
IF !m.llCursorCreat
lcSql = [select id_note,explicatie,scd,ascd,scc,ascc,cu_tva,id_set,ordine,in_valuta,ptva,] + ;
Iif(lnTvaIncasare = 1, [nvl(id_jtva_coloana_neex,id_jtva_coloana)], [id_jtva_coloana]) + [ as id_jtax,] + ;
Iif(lnTvaIncasare = 1, [nvl(explicatie_tva_neex,explicatie_tva)], [explicatie_tva]) + [ as denumiretax,] + ;
[CAST(0 as Number(16,4)) as suma, CAST(0 as Number(16,4)) as suma_val, CAST(0 as Number(5)) as id_valuta, CAST(null as Varchar2(5)) as nume_val,] + ;
[CAST(0 as Number(16,4)) as curs, ] + ;
[tipjurnal, taxcode, paymentcode from vnote_contabile where id_set = ] + Alltrim(Str(tn_idset))
lcCursor = [cnote_contabile]
llSucces = goExecutor.oExecuta(lcSql, lcCursor)
If !m.llSucces
Return
ENDIF
* 22.08.2025
* Am introdus Calendar.impozit_profit
* Platitorii impozit venit, pentru limitare deducere 50% nu le trebuie 2 note CHELTUIELI DEDUCTIBILE si NEDEDUCTIBILE
IF m.tn_idset = 10609 AND EMPTY(NVL(goCalendar.impozit_profit,0)) AND RECCOUNT('cnote_contabile') = 2
* STERG LINIA 2
SELECT cnote_contabile
GO BOTTOM
DELETE
ENDIF
ELSE
IF !USED('cnote_contabile')
AMESSAGEBOX('Nu exista cursorul cnote_contabile!',48, _screen.Caption)
RETURN
ENDIF
ENDIF
DO CASE
CASE BETWEEN(m.gnAn*12+m.gnLuna,2018*12+1, 2025*12+7)
* achizitiile si livrarile inainte de 08/2025 trebuie sa propuna TVA 19%.
* In xsets s-a modificat 21% de la 01.08.2025
* Ach int 19%
IF m.lnTvaIncasare = 1
update cnote_contabile set ptva = 19, id_jtax = 188, denumiretax = 'ACH. INT. NEEX. 19%' where INLIST(id_jtax, 208, 210) && 21%
update cnote_contabile set ptva = 19, id_jtax = 189, denumiretax = 'TVA ACH. INT. NEEX. 19%' where INLIST(id_jtax, 209, 211) && 21%
ELSE
update cnote_contabile set ptva = 19, id_jtax = 105, denumiretax = 'ACH. INT. 19%' where INLIST(id_jtax, 208, 210) && 21%
update cnote_contabile set ptva = 19, id_jtax = 106, denumiretax = 'TVA ACH. INT. 19%' where INLIST(id_jtax, 209, 211) && 21%
ENDIF
* Ach. b. imp. 19%
update cnote_contabile set ptva = 19, id_jtax = 118, denumiretax = 'ACH. IMP. 19%' where id_jtax = 220
update cnote_contabile set ptva = 19, id_jtax = 119, denumiretax = 'TVA ACH. IMP. 19%' WHERE id_jtax = 221
* Ach b. CE 19%
update cnote_contabile set ptva = 19, id_jtax = 133, denumiretax = 'ACH. BUNURI CE. 19%' where id_jtax = 226
update cnote_contabile set ptva = 19, id_jtax = 134, denumiretax = 'TVA ACH. BUNURI CE. 19%' where id_jtax = 227
* Ach s. CE 19%
update cnote_contabile set ptva = 19, id_jtax = 190, denumiretax = 'ACH. SERVICII CE. 19%' where id_jtax = 222
update cnote_contabile set ptva = 19, id_jtax = 191, denumiretax = 'TVA ACH. SERVICII CE. 19%' where id_jtax = 223
* Ach Tx inversa 19%
update cnote_contabile set ptva = 19, id_jtax = 141, denumiretax = 'TX. INV. 19%' where id_jtax = 216
update cnote_contabile set ptva = 19, id_jtax = 142, denumiretax = 'TVA TX. INV. 19%' where id_jtax = 217
* LIV INT 19%
IF m.lnTvaIncasare = 1
update cnote_contabile set ptva = 19, id_jtax = 31, denumiretax = 'LIVR.INTERN NEEX. 19%' where INLIST(id_jtax, 35, 37)
update cnote_contabile set ptva = 19, id_jtax = 32, denumiretax = 'TVA LIVR.INTERN NEEX. 19%' where INLIST(id_jtax, 36, 38)
ELSE
update cnote_contabile set ptva = 19, id_jtax = 1, denumiretax = 'LIVR.INTERN 19%' where INLIST(id_jtax, 35, 37)
update cnote_contabile set ptva = 19, id_jtax = 2, denumiretax = 'TVA LIVR.INTERN 19%' where INLIST(id_jtax, 36, 38)
ENDIF
CASE BETWEEN(m.gnAn, 2016, 2017)
* achizitiile si livrarile pe 2016 trebuie sa propuna TVA 20%.
* In xsets s-a modificat 19% de la 01.01.2017
CASE m.gnAn = 2016
* In 2016 lucrez cu TVA 20%. Transform TVA din 19% in 20%
* Ach int 20%
IF m.lnTvaIncasare = 1
update cnote_contabile set ptva = 20, id_jtax = 178, denumiretax = 'ACH. INT. NEEX. 20%' where INLIST(id_jtax, 101, 103, 105, 188) && 19%
update cnote_contabile set ptva = 20, id_jtax = 179, denumiretax = 'TVA ACH. INT. NEEX. 20%' where INLIST(id_jtax, 102, 104, 106, 189) && 19%
ELSE
update cnote_contabile set ptva = 20, id_jtax = 176, denumiretax = 'ACH. INT. 20%' where INLIST(id_jtax, 101, 103, 105, 188) && 19%
update cnote_contabile set ptva = 20, id_jtax = 177, denumiretax = 'TVA ACH. INT. 20%' where INLIST(id_jtax, 102, 104, 106, 189) && 19%
ENDIF
* Ach. b. imp. 20%
update cnote_contabile set ptva = 20, id_jtax = 180, denumiretax = 'ACH. IMP. 20%' where INLIST(id_jtax, 114, 116, 118)
update cnote_contabile set ptva = 20, id_jtax = 181, denumiretax = 'TVA ACH. IMP. 20%' where INLIST(id_jtax, 115, 117, 119)
* Ach b. CE 20%
update cnote_contabile set ptva = 20, id_jtax = 182, denumiretax = 'ACH. BUNURI CE. 20%' where INLIST(id_jtax, 127, 129, 133)
update cnote_contabile set ptva = 20, id_jtax = 183, denumiretax = 'TVA ACH. BUNURI CE. 20%' where INLIST(id_jtax, 128, 130, 134)
* Ach Tx inversa 20%
update cnote_contabile set ptva = 20, id_jtax = 186, denumiretax = 'TX. INV. 20%' where INLIST(id_jtax, 137, 139, 141)
update cnote_contabile set ptva = 20, id_jtax = 187, denumiretax = 'TVA TX. INV. 20%' where INLIST(id_jtax, 138, 140, 142)
* LIV INT 20%
IF m.lnTvaIncasare = 1
update cnote_contabile set ptva = 20, id_jtax = 29, denumiretax = 'LIVR.INTERN NEEX. 20%' where INLIST(id_jtax, 1, 31)
update cnote_contabile set ptva = 20, id_jtax = 30, denumiretax = 'TVA LIVR.INTERN NEEX. 20%' where INLIST(id_jtax, 2, 32)
ELSE
update cnote_contabile set ptva = 20, id_jtax = 27, denumiretax = 'LIVR.INTERN 20%' where INLIST(id_jtax, 1, 31)
update cnote_contabile set ptva = 20, id_jtax = 28, denumiretax = 'TVA LIVR.INTERN 20%' where INLIST(id_jtax, 2, 32)
ENDIF
CASE gnAn <= 2015
* In 2015 lucrez cu TVA 24%. Transform TVA din 20% in 24%
IF m.lnTvaIncasare = 1
update cnote_contabile set ptva = 24, id_jtax = 170, denumiretax = 'ACH. INT. NEEX. 24%' where INLIST(id_jtax, 176, 178)
update cnote_contabile set ptva = 24, id_jtax = 171, denumiretax = 'TVA ACH. INT. NEEX. 24%' where INLIST(id_jtax, 177, 179)
ELSE
* Ach int 24% - 20%
update cnote_contabile set ptva = 24, id_jtax = 156, denumiretax = 'ACH. INT. 24%' where INLIST(id_jtax, 176, 178)
update cnote_contabile set ptva = 24, id_jtax = 157, denumiretax = 'TVA ACH. INT. 24%' where INLIST(id_jtax, 177, 179)
ENDIF
* Ach. b. imp. 24%
update cnote_contabile set ptva = 24, id_jtax = 158, denumiretax = 'ACH. IMP. 24%' where id_jtax = 180
update cnote_contabile set ptva = 24, id_jtax = 159, denumiretax = 'TVA ACH. IMP. 24%' where id_jtax = 181
* Ach b. CE 24%
update cnote_contabile set ptva = 24, id_jtax = 160, denumiretax = 'ACH. BUNURI CE. 24%' where id_jtax = 182
update cnote_contabile set ptva = 24, id_jtax = 161, denumiretax = 'TVA ACH. BUNURI CE. 24%' where id_jtax = 183
* Ach Tx inversa 24%
update cnote_contabile set ptva = 24, id_jtax = 162, denumiretax = 'TX. INV. 24%' where id_jtax = 186
update cnote_contabile set ptva = 24, id_jtax = 163, denumiretax = 'TVA TX. INV. 24%' where id_jtax = 187
* LIV INT 24%
IF m.lnTvaIncasare = 1
update cnote_contabile set ptva = 24, id_jtax = 21, denumiretax = 'LIVR.INTERN NEEX. 24%' where INLIST(id_jtax, 27, 29)
update cnote_contabile set ptva = 24, id_jtax = 22, denumiretax = 'TVA LIVR.INTERN NEEX. 24%' where INLIST(id_jtax, 28, 30)
ELSE
update cnote_contabile set ptva = 24, id_jtax = 15, denumiretax = 'LIVR.INTERN 24%' where INLIST(id_jtax, 27, 29)
update cnote_contabile set ptva = 24, id_jtax = 16, denumiretax = 'TVA LIVR.INTERN 24%' where INLIST(id_jtax, 28, 30)
ENDIF
ENDCASE && gnAn <= 2015
lcForm = [FRM_INTROD_COMPACT2007]
*!* modificare ROACONT v 2.4.0 : am adaugat lnTvaIncasare
Select N.*, A.id_responsabil, A.id_partd, A.id_partc, A.partd, A.partc, ;
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 ;
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
If !Used('saft_taxtable')
update_saft_taxtable()
ENDIF
If !Used('saft_mecanisme_plati')
update_saft_mecanisme_plati()
ENDIF
* Actualizez taxcode SAFT in functie de furnizori RTVAI
IF m.gl406
* llN50/llN100 = .T. doar pentru linia cu Explicatie TVA = "Limitare deducere TVA"
llN50 = .F. && (tn_idset = 10609) or (poAct.deducere = 1) && deducere 50%
llN100 = .F. && (tn_idset = 10647) && deducere 100%
SELECT distinct id_jtva_coloana, NVL(id_partc, id_partd) as id_part, (LEFT(scd,3) = '418' OR LEFT(scc,3) = '408') as neexigibil ;
FROM introdc ;
WHERE INLIST(ALLTRIM(NVL(tipjurnal,'')), 'JC', 'JV') ;
INTO CURSOR cIntrodcTemp
SELECT cIntrodcTemp
SCAN
lnIdJtva = id_jtva_coloana
lnIdPart = id_part
llNeexigibil = neexigibil
lnTaxCode = GetTaxCodeIdPart(m.gnAn, m.gnLuna, poAct.DataAct, m.lnIdJtva, m.lnIdPart, m.llN50, m.llN100, m.llNeexigibil)
UPDATE introdc SET taxcode = m.lnTaxcode WHERE id_jtva_coloana = m.lnIdJtva AND NVL(id_partc, id_partd) = m.lnIdPart
ENDSCAN
ENDIF
Use In (SELECT('crsjtva'))
Use In (SELECT('crstemp'))
Select Distinct tipjurnal From cnote_contabile Where !Isnull(tipjurnal) Into Cursor crstemp
If Reccount('crstemp') = 1
Select crstemp
lcTipJurnal = Upper(Alltrim(tipjurnal)) + [ = 1]
*!* modificare ROACONT v 2.4.0
*!* Select denumire As denumiretax,id_jtva_coloana,cota_tva From jtva_coloane Where &lcTipJurnal Into Cursor crsjtva
If lnTvaIncasare = 0
Select denumire As denumiretax, id_jtva_coloana, cota_tva From jtva_coloane Where &lcTipJurnal And Isnull(id_jtva_ex) Into Cursor crsjtva
Else
Select denumire As denumiretax, id_jtva_coloana, cota_tva From jtva_coloane Where &lcTipJurnal And Isnull(id_jtva_neex) Into Cursor crsjtva
Endif
*!* modificare ROACONT v 2.4.0 ^
Else
*!* modificare ROACONT v 2.4.0
*!* Select denumire As denumiretax,id_jtva_coloana,cota_tva From jtva_coloane Into Cursor crsjtva
If lnTvaIncasare = 0
Select denumire As denumiretax, id_jtva_coloana, cota_tva From jtva_coloane Where Isnull(id_jtva_ex) Into Cursor crsjtva
Else
Select denumire As denumiretax, id_jtva_coloana, cota_tva From jtva_coloane Where Isnull(id_jtva_neex) Into Cursor crsjtva
Endif
*!* modificare ROACONT v 2.4.0 ^
Endif
If Used('crstemp')
Use In crstemp
Endif
Else
lcSql = [select * from ] + gcS + [.note_contabile where id_set = ] + Alltrim(Str(tn_idset))
lcCursor = [cnote_contabile]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
Return
Endif
lcForm = [FRM_INTROD_COMPACT]
Select N.*, 00000000000000.0000 As SUMA, A.id_responsabil, A.id_partd, A.id_partc, A.partd, A.partc, ;
A.nresp, A.id_sectie, A.sectie, A.id_venchelt, A.dst_chlt, ;
00000000000000 As id_factd, 00000000000000 As id_factc, 00000000000000 As pereched, 00000000000000 As perechec ;
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
lcSql = [SELECT descriere as tva, procent as ptva FROM ] + gcS + [.cote_tva where sters = 0 and an = ] + pcAn + [ and luna = ] + pcNl
lcCursor = [ttva]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
Return
Endif
Select ttva
Replace All tva With Alltrim(Str(ptva)) + ' %'
Endif
*!* modificare JC/JV 2007 ^
Use In cnote_contabile
Select introdc
If Flock()
If !Empty(tcscd)
Replace All SCD With tcscd For Empty(SCD) Or Upper(SCD) = 'X'
Endif
If !Empty(tcscc)
Replace All SCC With tcscc For Empty(SCC) Or Upper(SCC) = 'X'
Endif
*!* If m.ctva-1 = 0
*!* Replace All ptva With 0
*!* Endif
Replace All id_partd With 0, partd With '' FOR EMPTY(NVL(id_partd,0))
Replace All id_partc With 0, partc With '' FOR EMPTY(NVL(id_partc,0))
Replace All ascd With '' For Isnull(ascd)
Replace All ascc With '' For Isnull(ascc)
If Used('xcont')
Select Xcont
Scan
pcContPart = contPart
lnIdPart = idpart
lcNumePart = numePart
Select introdc
Scan For SCD = pcContPart
Replace id_partd With lnIdPart
Replace partd With lcNumePart
Endscan
Scan For SCC = pcContPart
Replace id_partc With lnIdPart
Replace partc With lcNumePart
Endscan
Select Xcont
Endscan
Endif
Endif
Unlock
Select actactan
Zap
*Create Table &gcTempPath\ttva (tva c(11), ptva N(3))
lcExceptii_scc = '0'
lcExceptii_scd = '0'
If !Empty(tcscd)
lcSql = [select * from ] + gcS + [.exceptii_ireg where invers = 1 and debit = 1 and cont = ] + tcscd
lcCursor = [ex_debit]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
Return
Endif
Select ex_debit
Scan
lcExceptii_scd = lcExceptii_scd + ',' + Alltrim(cont_c)
Endscan
Use In ex_debit
Endif
If !Empty(tcscc)
lcSql = [select * from ] + gcS + [.exceptii_ireg where invers = 1 and debit = 0 and cont = ] + tcscc
lcCursor = [ex_credit]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
Return
Endif
Select ex_credit
Scan
lcExceptii_scc = lcExceptii_scc + ',' + Alltrim(cont_c)
Endscan
Use In ex_credit
Endif
Select introdc
Go Top
obj = Createobject(lcForm)
obj.cSCD = tcscd
obj.cSCC = tcscc
obj.gridb1.column3.BackColor = Rgb(255, 255, 255)
obj.gridb1.column4.BackColor = Rgb(255, 255, 255)
obj.pcobj = 'poAct'
obj.pcExceptii_scd = lcExceptii_scd
obj.pcExceptii_scc = lcExceptii_scc
obj.lVerificaAcont = llVerificaAcont
obj.titlufrumos1.Caption = tctitlu
obj.Show(1)
USE IN (SELECT('crsTaxTable'))
USE IN (SELECT('crsjtva'))
If buton = 2
Do deschid_actc
Return
Endif
*!* IF tn_idset=10455 && rate leasing
*!* lans(10411)
*!* ENDIF
Select actactan
Replace All ID_SET With tn_idset
Select actactan
Do oscrie_in_fisiere.prg
Do deschid_actc
Endproc &&introducere_compacta
*---------------------------------------------------------------------------------------
Procedure deschid_actc
If Used('actactan')
Use In actactan
Endif
If Used('xcont')
Use In 'xcont'
Endif
If Used('introdc')
Use In 'introdc'
Endif
If Used('ttva')
Use In ttva
Endif
Endproc && deschid_actc
*____________________________________________________
Procedure inchid_actcv
If Used('actcv')
Use In actcv
Endif
If Used('ACTcv1')
Use In 'ACTcv1'
Endif
Endproc && inchid_actcv
*_____________________________________________________________________________________________________________________
*--------------------------------------------------------------------
Procedure umple_log
Parameters textul, textmare
Local datatext
datatext = ""
*----------------FACE INREGISTRARI IN LOG_TEXT.
datatext = CALEFIRMA + "\logs\contab\log_" + Alltrim(Str(Day(Date()))) + "_" + Alltrim(Str(Month(Date()))) + "_" + Alltrim(Str(Year(Date()))) + ".txt"
Cd &CALEFIRMA
If !Directory("LOGS")
Md logs
Endif
Cd &CALEFIRMA\logs
If !Directory("contab")
Md contab
Endif
Set Textmerge On
Set Textmerge Noshow
Set Textmerge To &datatext Additive
\\<<Datetime()>>,<<Alltrim(utilizator)>>,<<textul>>,<<textmare>>
\
Set Textmerge To
Cd &dirgen
Return &&-------UMPLE_LOG
*!* *______________________________________________________
Procedure introducere_monetar
Endproc