1459 lines
48 KiB
Plaintext
1459 lines
48 KiB
Plaintext
*!* 23.09.2013
|
|
*!* marius.mutu
|
|
*!* inchidere_tva
|
|
*!* fac notele de exigibilizare TVA 90 zile pentru toate firmele, nu numai pentru cele din sistemul TVA Incasare
|
|
*!* ex: sunt inregistrate facturi din greseala cu TVA Incasare sau firma a fost cu TVA Incasare
|
|
|
|
*!* 04.02.2014
|
|
*!* marius.mutu
|
|
*!* inchidere_tva: nu se mai fac notele de exigibilizare TVA 90 zile de la 01/2014 (COD FISCAL)
|
|
|
|
*!* 18.05.2014
|
|
*!* marius.mutu
|
|
*!* inchidere_venituri_cheltuieli mutate in pack_inchideri 609, 709 tratate corect
|
|
|
|
*!* 25.06.2014
|
|
*!* marius.mutu
|
|
*!* inchidere_tva_sold - se completeaza si id_sucursala in note, altfel nu se poate modifica nota
|
|
|
|
*!* 25.08.2014
|
|
*!* marius.mutu
|
|
*!* inchidere_tva_sold: apelez defalca_tva_incasare pentru fiecare cota, daca soldul neexigibil total este 0
|
|
|
|
|
|
*!* 21.01.2015
|
|
*!* marius.mutu
|
|
*!* inchidere_tva_sold: Daca din diferite motive nu se poate calcula TVA exigibil, pun o linie cu ID_FACT-ul facturii originale, sa se poata completa manual
|
|
|
|
*!* 16.12.2015
|
|
*!* marius.mutu
|
|
*!* inchidere_tva_sold: cota tva 20%
|
|
|
|
*!* 24.03.2020
|
|
*!* marius.mutu: inchidere_venchelt - completare analitic 121 din optiuni
|
|
|
|
*!* 21.07.2020
|
|
*!* marius.mutu
|
|
*!* inchidere_amortizari_completare_conturi - tratare id_sectie = 0
|
|
|
|
*!* 23.01.2024
|
|
*!* inchidere_amortizari: defalcare inchidere pe lucrari
|
|
|
|
*** =====================================================================
|
|
Procedure popriri
|
|
If gnNOTASAL = 5
|
|
|
|
Local lcCursor, llVerificAnalitic, llCompletareParteneri
|
|
lcSel = [select a.sumapop,a.id_poprire,a.id_stat,] + ;
|
|
[(select id_part from sal_personal where id_salariat in ] + ;
|
|
[ (select id_persoana from sal_stat where id_stat = a.id_stat)) as id_part, ] + ;
|
|
[ c.scd,c.ascd,c.scc,c.ascc,c.nume_popr, ] + ;
|
|
[ (select denumire from nom_parteneri where id_part in ] + ;
|
|
[ (select id_part from sal_personal where id_salariat in (select id_persoana from sal_stat where id_stat = a.id_stat))) as denumire, ] + ;
|
|
[ e.id_sectie,e.SECTIE,f.sucursala,f.id_sucursala,0000000000 as id_factc,0000000000 as perechec ] + ;
|
|
[ from sal_popriri a ] + ;
|
|
[ left join sal_nom_popriri c on a.id_poprire = c.id_popriri ] + ;
|
|
[ left join sal_stat d on a.id_stat = d.id_stat ] + ;
|
|
[ left join sal_vnom_formatii e on e.id_formatia = d.id_formatie ] + ;
|
|
[ left join vnom_sectii f on e.id_sectie = f.id_sectie ] + ;
|
|
[ where a.sters = 0 and a.id_stat in (select b.id_stat from sal_stat b ] + ;
|
|
[ where b.an = pack_sesiune.getan() and b.luna = pack_sesiune.getluna()) ]
|
|
*!* + ;
|
|
*!* [ and c.scc not in (select cont from config_cont_ireg where cu_inregistrari = 1)]
|
|
|
|
If !Isnull(gnIdSucursala)
|
|
lcSel = m.lcSel + [ and f.id_sucursala = ?gnIdSucursala ]
|
|
Endif
|
|
|
|
lcCursor = 'crs_popr'
|
|
lnSucces = goExecutor.oExecute(m.lcSel, m.lcCursor)
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
*!* lcSel = [select * from config_cont_ireg a where a.cont in (select b.scc from sal_nom_popriri b ]+;
|
|
*!* [ where b.id_popriri in (select c.id_poprire from sal_popriri c where c.sumapop > 0 and ]+;
|
|
*!* [ id_stat in (select id_stat from sal_stat where an = pack_sesiune.getan() and luna = pack_sesiune.getluna()))) and cu_inregistrari = 1 ]
|
|
*!*
|
|
*!* lcCursor = 'crs_conturi'
|
|
*!* lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
*!* IF lnSucces < 0
|
|
*!* AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
*!* EndIf
|
|
*!*
|
|
*!* Local lcFiltru
|
|
*!* Store '' to lcFiltru
|
|
*!* Select crs_conturi
|
|
*!* If Reccount() > 0
|
|
*!* Select crs_conturi
|
|
*!* Scan
|
|
*!* lcFiltru = lcFiltru +[,] +[']+Alltrim(crs_conturi.cont)+[']
|
|
*!* EndScan
|
|
*!* lcFiltru = Substr(lcfiltru,2)
|
|
*!* SELECT crs_popr
|
|
*!* lcFiltru = [Set Filter To InList(Alltrim(scc),]+lcFiltru+[)]
|
|
*!* &lcFiltru
|
|
*!* ofrmpereche = CreateObject('frm_alege_pereche')
|
|
*!* ofrmpereche.show(1)
|
|
*!* If gnbuton = 2
|
|
*!* Return
|
|
*!* EndIf
|
|
*!* EndIf
|
|
*!* Use in crs_conturi
|
|
Select crs_popr
|
|
|
|
*!* Browse
|
|
Set Filter To
|
|
|
|
Select crs_popr
|
|
Select nume_popr As explicatia, id_part As id_partc, denumire As partc, scd, scc, Nvl(ascd, '') As ascd, Nvl(ascc, '');
|
|
As ascc, sumapop As suma, id_sectie, sectie, id_sucursala, sucursala, id_factc, perechec From crs_popr Where sumapop <> 0 Into Cursor crsNota
|
|
*!* SELECT id_part as id_partd ,scd,sumapop as suma,id_sectie FROM crs_popr WHERE sumapop <> 0 INTO CURSOR crsNota READWRITE
|
|
|
|
Else
|
|
Local lcCursor, llVerificAnalitic, llCompletareParteneri
|
|
lcSel = [select sum(a.suma) as sumapop,a.id_poprire,a.id_sectie,d.id_part,] + ;
|
|
[c.scd,c.ascd,c.scc,c.ascc,c.nume_popr,] + ;
|
|
[ (select denumire from nom_parteneri where id_part =d.id_part) as denumire ] + ;
|
|
[ from ( select sum(a.sumapop) as suma,a.id_poprire,c.id_sectie from sal_vpopriri a ] + ;
|
|
[ left join sal_stat b on a.id_stat = b.id_stat ] + ;
|
|
[ left join sal_nom_formatii c on b.id_formatie = c.id_formatia ] + ;
|
|
[ group by a.id_poprire,c.id_sectie ) a ] + ;
|
|
[ left join sal_nom_popriri c on a.id_poprire = c.id_popriri ] + ;
|
|
[ left join sal_part_popriri_sectii d on d.id_poprire = a.id_poprire and d.id_sectie = a.id_sectie ] + ;
|
|
[ where c.scc <> '542'] + ;
|
|
[ group by a.id_poprire,a.id_sectie,d.id_part,c.scd,c.ascd,c.scc,c.ascc,c.nume_popr]
|
|
|
|
lcCursor = 'crs_popr'
|
|
lnSucces = goExecutor.oExecute(m.lcSel, m.lcCursor)
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
Select crs_popr
|
|
|
|
|
|
lcCursor = 'crs_popr'
|
|
lnSucces = goExecutor.oExecute(m.lcSel, m.lcCursor)
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX('Call pack_salarii.nota_popriri ' + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
|
|
Select crs_popr
|
|
Select nume_popr As explicatia, id_part As id_partc, scd, scc, Nvl(ascd, '') As ascd, Nvl(ascc, '') As ascc, sumapop As suma, id_sectie From crs_popr Where sumapop <> 0 Into Cursor crsNota
|
|
*!* SELECT id_part as id_partd ,scd,sumapop as suma,id_sectie FROM crs_popr WHERE sumapop <> 0 INTO CURSOR crsNota READWRITE
|
|
Endif
|
|
Use In crs_popr
|
|
lcCursor = [crsNota]
|
|
Select &lcCursor
|
|
|
|
If !Used(m.lcCursor) Or Empty(m.lcCursor)
|
|
Return
|
|
Endif
|
|
|
|
llStergeNotaPrecedenta = .T.
|
|
lnId_Set = 90014
|
|
lnCod = 0
|
|
llVerificAnalitic = .T.
|
|
llCompletareParteneri = .T.
|
|
|
|
If m.llStergeNotaPrecedenta
|
|
lnSucces = sterge_nota(m.lnCod, m.lnId_Set)
|
|
Endif
|
|
|
|
|
|
If m.lnSucces > 0
|
|
lnSucces = scrie_nota_import(m.lnId_Set, m.llVerificAnalitic, m.llCompletareParteneri, m.lcCursor)
|
|
Endif
|
|
|
|
If Used(m.lcCursor)
|
|
Use In (m.lcCursor)
|
|
Endif
|
|
|
|
Endproc && popriri
|
|
|
|
*** =====================================================================
|
|
Procedure Achitare_drepturi_neridicate_Lichidare
|
|
Dimension laValori[2, 3]
|
|
laValori[1, 1] = "poAct.id_vv426"
|
|
laValori[1, 2] = Alltrim(Str(gnID_PARTDRNERIDLIC))
|
|
laValori[1, 3] = !Empty(gnID_PARTDRNERIDLIC)
|
|
|
|
lcSel = [select denumire from nom_parteneri where id_part = ] + Alltrim(Str(gnID_PARTDRNERIDLIC))
|
|
lnSucces = goExecutor.oExecute(m.lcSel, [crsnumepart])
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
laValori[2, 1] = "poAct.v426"
|
|
laValori[2, 2] = Alltrim(crsnumepart.denumire)
|
|
laValori[2, 3] = !Empty(gnID_PARTDRNERIDLIC)
|
|
Use In crsnumepart
|
|
lans(90011, .F., .T., @laValori)
|
|
*!* MESSAGEBOX(buton)
|
|
If gnButon = 1
|
|
|
|
If Used('crsStatDePastrat')
|
|
Select crsStatDePastrat
|
|
Scan For bifa > 0
|
|
Scatter Name ost
|
|
lcSel = [update sal_stat set ACHITLICNERID = 1 where id_stat = ] + Alltrim(Str(ost.id_stat))
|
|
lnSucces = goExecutor.oExecute(m.lcSel)
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
Release ost
|
|
Endscan
|
|
Use In crsStatDePastrat
|
|
Endif
|
|
Endif
|
|
Endproc && Achitare_drepturi_neridicate_Lichidare
|
|
|
|
*** =====================================================================
|
|
Procedure Achitare_drepturi_neridicate_Avans
|
|
Dimension laValori[2, 3]
|
|
laValori[1, 1] = "poAct.id_vv426"
|
|
laValori[1, 2] = Alltrim(Str(gnID_PARTDRNERIDAV))
|
|
laValori[1, 3] = !Empty(gnID_PARTDRNERIDAV)
|
|
|
|
lcSel = [select denumire from nom_parteneri where id_part = ] + Alltrim(Str(gnID_PARTDRNERIDAV))
|
|
lnSucces = goExecutor.oExecute(m.lcSel, [crsnumepart])
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
laValori[2, 1] = "poAct.v426"
|
|
laValori[2, 2] = Alltrim(crsnumepart.denumire)
|
|
laValori[2, 3] = !Empty(gnID_PARTDRNERIDAV)
|
|
Use In crsnumepart
|
|
lans(90013, .F., .T., @laValori)
|
|
*!* MESSAGEBOX(buton)
|
|
If gnButon = 1
|
|
|
|
If Used('crsStatDePastrat')
|
|
Select crsStatDePastrat
|
|
Scan For bifa > 0
|
|
Scatter Name ost
|
|
lcSel = [update sal_stat set ACHITAVNERID = 1 where id_stat = ] + Alltrim(Str(ost.id_stat))
|
|
lnSucces = goExecutor.oExecute(m.lcSel)
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
Release ost
|
|
Endscan
|
|
Use In crsStatDePastrat
|
|
Endif
|
|
Endif
|
|
Endproc && Achitare_drepturi_neridicate_Avans
|
|
|
|
|
|
***-------------------------------------------------------------------------------------------------------------------
|
|
Procedure drepturi_nerid_sal
|
|
|
|
|
|
|
|
Private postat
|
|
Store [] To postat
|
|
|
|
&&selectie din state si bifarea sumelor pentru care se face trecerea
|
|
pcschema = ['id_stat i,an n(4),luna n(2),NUME C(50),PRENUME C(50),SECTIE C(30),FORMATIE C(64),MARCA n(10),lichidare n(16), bifa n(1),SUMALICNERID n(16)']
|
|
|
|
pcselect = [select a.id_stat,a.an,a.luna,a.nume,a.prenume,a.sectie,a.formatia,a.marca,a.lichidare,ROUND(a.BIFALICNERID,0) as bifa,a.SUMALICNERID from sal_vstattot a where 1=2]
|
|
|
|
|
|
|
|
pcfiltru = [ 1=2]
|
|
pcorder = [a.sectie,a.nume,A.PRENUME]
|
|
llAfiseaza = .F.
|
|
gencursor('postat', 'crsState', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
|
postat.ca_baza1.afisare()
|
|
|
|
Select crsState
|
|
ofrmSelect = Createobject('frm_alege_neridicati')
|
|
ofrmSelect.Show(1)
|
|
If buton = 2
|
|
Return
|
|
Endif
|
|
|
|
Select crsState
|
|
Set Filter To
|
|
Locate
|
|
Select Sum(Nvl(SUMALICNERID, 0)) As suma From crsState Where bifa > 0 Into Cursor crsSuma
|
|
|
|
Select crsSuma
|
|
&& / selectie din state si bifarea sumelor pentru care se face trecerea
|
|
|
|
&& nota contabila
|
|
Select xsets
|
|
|
|
|
|
|
|
|
|
llStergeNotaPrecedenta = .F.
|
|
lnId_Set = 90010
|
|
lnCod = 0
|
|
llVerificAnalitic = .T.
|
|
llCompletareParteneri = .T.
|
|
|
|
If m.llStergeNotaPrecedenta
|
|
lnSucces = sterge_nota(m.lnCod, m.lnId_Set)
|
|
Endif
|
|
|
|
|
|
Select suma From crsSuma Into Cursor crsNota
|
|
|
|
Use In crsSuma
|
|
|
|
*!* DEBUG
|
|
*!* SUSPEND
|
|
lcCursor = [crsNota]
|
|
Select &lcCursor
|
|
|
|
If !Used(m.lcCursor) Or Empty(m.lcCursor)
|
|
Return
|
|
Endif
|
|
*!* scrie_nota_import( tnId_Set, tlVerificAnalitic, tlCompletareParteneri, tcCursorImport,taValori )
|
|
|
|
Dimension laValori[2, 3]
|
|
laValori[1, 1] = "poAct.id_vv426"
|
|
laValori[1, 2] = Alltrim(Str(gnID_PARTDRNERIDLIC))
|
|
laValori[1, 3] = !Empty(gnID_PARTDRNERIDLIC)
|
|
|
|
lcSel = [select denumire from nom_parteneri where id_part = ] + Alltrim(Str(gnID_PARTDRNERIDLIC))
|
|
lnSucces = goExecutor.oExecute(m.lcSel, [crsnumepart])
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
laValori[2, 1] = "poAct.v426"
|
|
laValori[2, 2] = Alltrim(crsnumepart.denumire)
|
|
laValori[2, 3] = !Empty(gnID_PARTDRNERIDLIC)
|
|
Use In crsnumepart
|
|
Select crsNota
|
|
lcCursor = [crsNota]
|
|
lnSucces = scrie_nota_import(m.lnId_Set, m.llVerificAnalitic, m.llCompletareParteneri, m.lcCursor, @laValori)
|
|
|
|
If Used(m.lcCursor)
|
|
Use In (m.lcCursor)
|
|
Endif
|
|
|
|
&& -- scriu in statele din luna respectiva ca au fost trecute pe drepturi neridicate
|
|
If buton = 2
|
|
Return
|
|
Endif
|
|
If m.lnSucces > 0
|
|
Select crsState
|
|
Scan For bifa > 0
|
|
Scatter Name ost
|
|
Private pnIdfact
|
|
Store 0 To pnIdfact
|
|
lcSel = [select pack_contafin.GET_IDFACT() as id_fact from dual ]
|
|
lnSucces = goExecutor.oExecute(m.lcSel, [crsIdFact])
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
Select crsIdFact
|
|
Scatter Name oidfact
|
|
|
|
lcSel = [update sal_stat set BIFALICNERID = 1, SUMALICNERID = ] + Alltrim(Str(ost.SUMALICNERID)) + [,id_fact_lic = ] + Alltrim(Str(oidfact.id_fact)) + [ where id_stat = ] + Alltrim(Str(ost.id_stat))
|
|
lnSucces = goExecutor.oExecute(m.lcSel)
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
Use In crsIdFact
|
|
Release oidfact
|
|
Endscan
|
|
Endif
|
|
Use In crsState
|
|
Release ofrmSelect
|
|
Endproc
|
|
|
|
***---------------------------------------------------------------------------------------------------------------------
|
|
|
|
Procedure aleg_salnerid_de_achit
|
|
Parameters tcAlias
|
|
|
|
Private pcselect, pcfiltru, pcschema, pcorder, postat
|
|
Local lcTip, llTest, lnSuma
|
|
Store 0 To lnSuma
|
|
Store .F. To llTest
|
|
Store "" To postat
|
|
*Thisform.blocbuton1.terminat1.Enabled=.F.
|
|
*!* lunanan=gnLuna+gnAn*12
|
|
*!* Select actcv
|
|
Private oireg
|
|
Select (tcAlias)
|
|
Scatter Name oireg
|
|
Do Case
|
|
Case poAct.id_set = 90011
|
|
&&selectie din state si bifarea sumelor pentru care se face trecerea
|
|
pcschema = ['id_stat i,an n(4),luna n(2),NUME C(50),PRENUME C(50),SECTIE C(30),FORMATIE C(64),MARCA n(10),lichidare n(16), bifa n(1),SUMALICNERID n(16)']
|
|
|
|
pcselect = [select a.id_stat,a.an,a.luna,a.nume,a.prenume,a.sectie,a.formatia,a.marca,a.lichidare,ROUND(a.ACHITLICNERID,0) as bifa,a.SUMALICNERID from sal_vstattot a where 1=2]
|
|
|
|
|
|
|
|
pcfiltru = [ id_fact_lic = ] + Alltrim(Str(oireg.id_fact)) + [ and ACHITLICNERID = 0]
|
|
|
|
Case poAct.id_set = 90013
|
|
&&selectie din state si bifarea sumelor pentru care se face trecerea
|
|
pcschema = ['id_stat i,an n(4),luna n(2),NUME C(50),PRENUME C(50),SECTIE C(30),FORMATIE C(64),MARCA n(10),lichidare n(16), bifa n(1),SUMALICNERID n(16)']
|
|
|
|
pcselect = [select a.id_stat,a.an,a.luna,a.nume,a.prenume,a.sectie,a.formatia,a.marca,a.avans as lichidare,ROUND(a.ACHITAVNERID,0) as bifa,a.SUMAAVNERID as SUMALICNERID from sal_vstattot a where 1=2]
|
|
|
|
|
|
|
|
pcfiltru = [ id_fact_av = ] + Alltrim(Str(oireg.id_fact)) + [ and ACHITAVNERID = 0]
|
|
Endcase
|
|
pcorder = [a.sectie,a.nume,A.PRENUME]
|
|
llAfiseaza = .F.
|
|
gencursor('postat', 'crsState', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
|
postat.ca_baza1.afisare()
|
|
|
|
If !Used('crsStatDePastrat')
|
|
Select * From crsState Where 1 = 2 Into Cursor crsStatDePastrat Readwrite
|
|
Endif
|
|
|
|
Select crsState
|
|
ofrmSelect = Createobject('frm_alege_neridicati')
|
|
If poAct.id_set = 90011
|
|
ofrmSelect.noptiune = 2&& pentru achitarea lichidarii neridicate
|
|
Else
|
|
ofrmSelect.noptiune = 5&& pentru achitarea avansului neridicat
|
|
Endif
|
|
ofrmSelect.Show(1)
|
|
If buton = 2
|
|
Return
|
|
Endif
|
|
|
|
Select crsStatDePastrat
|
|
Insert Into crsStatDePastrat Select * From crsState Where bifa = 1
|
|
|
|
Use In crsState
|
|
Select (tcAlias)
|
|
Replace sumaachi With pnSumaBifata
|
|
Release ofrmSelect
|
|
Endproc
|
|
|
|
***-------------------------------------------------------------------------------------------------------------------
|
|
Procedure drepturi_nerid_av
|
|
|
|
|
|
|
|
Private postat
|
|
Store [] To postat
|
|
|
|
&&selectie din state si bifarea sumelor pentru care se face trecerea
|
|
pcschema = ['id_stat i,an n(4),luna n(2),NUME C(50),PRENUME C(50),SECTIE C(30),FORMATIE C(64),MARCA n(10),lichidare n(16), bifa n(1),SUMALICNERID n(16)']
|
|
|
|
pcselect = [select a.id_stat,a.an,a.luna,a.nume,a.prenume,a.sectie,a.formatia,a.marca,a.avans as lichidare,ROUND(a.BIFAAVNERID,0) as bifa,a.SUMAAVNERID as SUMALICNERID from sal_vstattot a where 1=2]
|
|
|
|
|
|
|
|
pcfiltru = [ 1=2]
|
|
pcorder = [a.sectie,a.nume,A.PRENUME]
|
|
llAfiseaza = .F.
|
|
gencursor('postat', 'crsState', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
|
postat.ca_baza1.afisare()
|
|
|
|
Select crsState
|
|
ofrmSelect = Createobject('frm_alege_neridicati')
|
|
ofrmSelect.noptiune = 3&& trecerea avansului in drepturi neridicare
|
|
ofrmSelect.Show(1)
|
|
If buton = 2
|
|
Return
|
|
Endif
|
|
|
|
Select crsState
|
|
Set Filter To
|
|
Locate
|
|
Select Sum(Nvl(SUMALICNERID, 0)) As suma From crsState Where bifa > 0 Into Cursor crsSuma
|
|
|
|
Select crsSuma
|
|
&& / selectie din state si bifarea sumelor pentru care se face trecerea
|
|
|
|
&& nota contabila
|
|
Select xsets
|
|
|
|
|
|
|
|
|
|
llStergeNotaPrecedenta = .F.
|
|
lnId_Set = 90012
|
|
lnCod = 0
|
|
llVerificAnalitic = .T.
|
|
llCompletareParteneri = .T.
|
|
|
|
If m.llStergeNotaPrecedenta
|
|
lnSucces = sterge_nota(m.lnCod, m.lnId_Set)
|
|
Endif
|
|
|
|
|
|
Select suma From crsSuma Into Cursor crsNota
|
|
|
|
Use In crsSuma
|
|
|
|
*!* DEBUG
|
|
*!* SUSPEND
|
|
lcCursor = [crsNota]
|
|
Select &lcCursor
|
|
|
|
If !Used(m.lcCursor) Or Empty(m.lcCursor)
|
|
Return
|
|
Endif
|
|
*!* scrie_nota_import( tnId_Set, tlVerificAnalitic, tlCompletareParteneri, tcCursorImport,taValori )
|
|
|
|
Dimension laValori[2, 3]
|
|
laValori[1, 1] = "poAct.id_vv426"
|
|
laValori[1, 2] = Alltrim(Str(gnID_PARTDRNERIDAV))
|
|
laValori[1, 3] = !Empty(gnID_PARTDRNERIDAV)
|
|
|
|
lcSel = [select denumire from nom_parteneri where id_part = ] + Alltrim(Str(gnID_PARTDRNERIDAV))
|
|
lnSucces = goExecutor.oExecute(m.lcSel, [crsnumepart])
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
|
|
laValori[2, 1] = "poAct.v426"
|
|
laValori[2, 2] = Alltrim(crsnumepart.denumire)
|
|
laValori[2, 3] = !Empty(gnID_PARTDRNERIDAV)
|
|
Use In crsnumepart
|
|
Select crsNota
|
|
lcCursor = [crsNota]
|
|
lnSucces = scrie_nota_import(m.lnId_Set, m.llVerificAnalitic, m.llCompletareParteneri, m.lcCursor, @laValori)
|
|
|
|
If Used(m.lcCursor)
|
|
Use In (m.lcCursor)
|
|
Endif
|
|
|
|
&& -- scriu in statele din luna respectiva ca au fost trecute pe drepturi neridicate
|
|
If buton = 2
|
|
Return
|
|
Endif
|
|
If m.lnSucces > 0
|
|
Select crsState
|
|
Scan For bifa > 0
|
|
Scatter Name ost
|
|
Private pnIdfact
|
|
Store 0 To pnIdfact
|
|
lcSel = [select pack_contafin.GET_IDFACT() as id_fact from dual ]
|
|
lnSucces = goExecutor.oExecute(m.lcSel, [crsIdFact])
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
Select crsIdFact
|
|
Scatter Name oidfact
|
|
|
|
lcSel = [update sal_stat set BIFAAVNERID = 1, SUMAAVNERID = ] + Alltrim(Str(ost.SUMALICNERID)) + [,id_fact_av = ] + Alltrim(Str(oidfact.id_fact)) + [ where id_stat = ] + Alltrim(Str(ost.id_stat))
|
|
lnSucces = goExecutor.oExecute(m.lcSel)
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Endif
|
|
Use In crsIdFact
|
|
Release oidfact
|
|
Endscan
|
|
Endif
|
|
Use In crsState
|
|
Release ofrmSelect
|
|
Endproc
|
|
|
|
***---------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Procedure inchidere_tva
|
|
Lparameters tnTip
|
|
*** tnTip: 1 = inchidere TVA (inclusiv TVA 4427 exigibil la 90 zile); 2 = TVA 4427 exigibil la 90 zile
|
|
|
|
Local overif As 'verificare'
|
|
Local lCompletareParteneri, lVerificAnalitic, lcCursor, lcCursorVerificare, lcSel
|
|
Local lcSql, llSucces, lnBut, lnButon, lnSucces, loAct, lnIdSet
|
|
*:Global gnButon
|
|
|
|
Private pcSirDifAcont, pcSirDifPart, pnCod, pcExplicatia, pdDataIreg, pdDataAct, pnIdFdoc, pnNrAct, pnScrieDirect
|
|
lnIdSet = 90004
|
|
pnCod = 0
|
|
llSucces = .T.
|
|
lcCursorVerificare = [crsact]
|
|
|
|
pnScrieDirect = 0 && nu mai scriu direct notele in ACT, ci las utilizatorul sa le modifice
|
|
|
|
*** STERGERE NOTA INCHIDERE TVA 90004
|
|
lcSql = [select * from vact where id_set = 90004 and an = ?gnAn and luna = ?gnLuna] + m.gcCondSucursala
|
|
lcCursor = [actactan]
|
|
|
|
lnSucces = goExecutor.oExecute(lcSql, m.lcCursor)
|
|
goExecutor.oReset()
|
|
If m.lnSucces < 0
|
|
AMESSAGEBOX('Cautare Nota Inchidere TVA:' + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Return
|
|
Endif
|
|
|
|
Select actactan
|
|
If Reccount() > 0
|
|
Clear Class "verificare"
|
|
overif = Createobject('verificare')
|
|
overif.Show(1)
|
|
If buton = 2
|
|
Use In (Select('actactan'))
|
|
Release overif
|
|
Return m.llSucces
|
|
Endif
|
|
lnSucces = OSCRIE_IN_FISIERE(2, .F.)
|
|
llSucces = (m.lnSucces > 0)
|
|
Endif
|
|
|
|
|
|
If m.llSucces
|
|
lnButon = lans(m.lnIdSet)
|
|
If m.lnButon = 2
|
|
Return m.llSucces
|
|
Endif
|
|
Else
|
|
Return m.llSucces
|
|
Endif
|
|
|
|
Select actactan
|
|
Go Top
|
|
Scatter Name loAct
|
|
pnIdFdoc = loAct.id_fdoc
|
|
pnNrAct = loAct.nract
|
|
pdDataAct = loAct.dataact
|
|
pdDataIreg = loAct.dataireg
|
|
pcExplicatia = Alltrim(loAct.explicatia)
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
|
|
*** SCRIERE TVA EXIGIBIL 90 ZILE
|
|
*** Valabila pana la 12/2013
|
|
If m.llSucces And (m.gnAn * 12 + m.gnLuna <= 2013 * 12 + 12) && And (goCalendar.tva_incasare = 1)
|
|
|
|
*** Am pus tranzactie manuala pentru ca dadea o eroare cand se deschideau cursoare bazate pe tabele temporara act_temp
|
|
llSucces = goConn.BeginManualTransaction()
|
|
Do While m.llSucces
|
|
*** da frecvent fatal error cand transmit parametri cu ? in loc de valori - probabil bug in driverul de odbc
|
|
*!* lcSql = [{call pack_inchideri.note_inchidere_tva_90(?gnAn, ?gnLuna, ?gnIdSucursala, ?pnIdFdoc, ?gnIdUtil, ?pdDataIreg, ?pnNrAct, ?pcExplicatia, ?pcSirDifAcont, ?pcSirDifPart, ?@pnCod)}]
|
|
TEXT To lcSql Noshow Textmerge
|
|
{call pack_inchideri.note_inchidere_tva_90(<<gnAn>>, <<gnLuna>>, <<iif(isnull(gnIdSucursala), 'NULL', transform(gnIdSucursala))>>, <<pnIdFdoc>>, <<gnIdUtil>>, TO_DATE('<<dtos(pdDataIreg)>>', 'YYYYMMDD'), <<pnNrAct>>, '<<pcExplicatia>>', '<<pcSirDifAcont>>', '<<pcSirDifPart>>', ?@pnCod)}
|
|
ENDTEXT
|
|
|
|
llSucces = goExecutor.oExecuta(m.lcSql, m.lcCursorVerificare)
|
|
If !m.llSucces && eroare
|
|
Exit
|
|
Endif
|
|
|
|
|
|
If Reccount(m.lcCursorVerificare) = 0 && nu mai este nimic de completat
|
|
Exit
|
|
Endif
|
|
|
|
*** Trebuie completate analitice, parteneri
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
llSucces = verificare_completare_act(m.lcCursorVerificare, .T., .T., @pcSirDifAcont, @pcSirDifPart)
|
|
Use In (Select(m.lcCursorVerificare))
|
|
Enddo && .T.
|
|
llSucces = goConn.EndManualTransaction(Iif(m.llSucces, 'COMMIT', 'ROLLBACK'))
|
|
Endif && goCalendar.tva_incasare = 1
|
|
|
|
*** SCRIERE INCHIDERE TVA
|
|
If m.llSucces And m.tnTip = 1
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
llSucces = goConn.BeginManualTransaction()
|
|
|
|
Do While m.llSucces
|
|
*** da frecvent fatal error cand transmit parametri cu ? in loc de valori - probabil bug in driverul de odbc
|
|
*!* lcSql = [{call pack_inchideri.note_inchidere_tva(?gnAn, ?gnLuna, ?gnIdSucursala, ?pnIdFdoc, ?gnIdUtil, ?pdDataIreg, ?pdDataAct, ?pnNrAct, ?pcExplicatia, ?pcSirDifAcont, ?pcSirDifPart, ?@pnCod)}]
|
|
TEXT To lcSql Noshow Textmerge
|
|
{call pack_inchideri.note_inchidere_tva(<<gnAn>>, <<gnLuna>>, <<iif(isnull(gnIdSucursala), 'NULL', transform(gnIdSucursala))>>, <<pnIdFdoc>>, <<gnIdUtil>>, TO_DATE('<<dtos(pdDataIreg)>>', 'YYYYMMDD'), TO_DATE('<<dtos(pdDataAct)>>', 'YYYYMMDD'), <<pnNrAct>>, '<<pcExplicatia>>', '<<pcSirDifAcont>>', '<<pcSirDifPart>>', ?@pnCod, ?pnScrieDirect)}
|
|
ENDTEXT
|
|
|
|
|
|
llSucces = goExecutor.oExecuta(m.lcSql, m.lcCursorVerificare)
|
|
If !m.llSucces && eroare
|
|
Exit
|
|
Endif
|
|
|
|
|
|
If pnScrieDirect = 1
|
|
If Reccount(m.lcCursorVerificare) = 0 && nu mai este nimic de completat
|
|
Exit
|
|
Endif
|
|
|
|
*** Trebuie completate analitice, parteneri
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
llSucces = verificare_completare_act(m.lcCursorVerificare, .T., .T., @pcSirDifAcont, @pcSirDifPart)
|
|
Else
|
|
Select actactan
|
|
Go Top
|
|
Scatter Name loAct
|
|
Zap
|
|
|
|
Insert Into actactan (scc, ascc, scd, ascd, suma) ;
|
|
Select scc, ascc, scd, ascd, suma From (lcCursorVerificare)
|
|
|
|
|
|
Select actactan
|
|
Scan
|
|
Gather Name loAct Fields Except scc, ascc, scd, ascd, suma
|
|
Endscan
|
|
|
|
IF m.gl406
|
|
UPDATE actactan SET taxcode = 301000 WHERE INLIST(scd, '4423', '4424') OR INLIST(scc, '4423', '4424')
|
|
UPDATE actactan SET taxcode = 380200 WHERE !(INLIST(scd, '4423', '4424') OR INLIST(scc, '4423', '4424'))
|
|
ENDIF
|
|
|
|
Select .F. As ales, 0 As Cu_tva, Cast(0 As N(2)) As tipnota, a.*, Space(100) As explicatie_tva ;
|
|
From actactan a ;
|
|
Into Cursor tact Readwrite
|
|
|
|
Use In (Select('crsExplicatiiTVATemp'))
|
|
|
|
Select tact
|
|
Go Top
|
|
llNotaNoua = .T.
|
|
llMaximize = .T.
|
|
loForm = Createobject([frm_modific2007], m.lnIdSet, m.llNotaNoua)
|
|
loForm.lb_titlu_alb_b121.Caption = 'Nota inchidere TVA'
|
|
Select tact
|
|
loForm.Show(1, m.llMaximize)
|
|
|
|
If m.gnButon = 1
|
|
Use In (Select('actactan'))
|
|
|
|
Select tact
|
|
Replace id_jtva_coloana With Null, PROC_TVA With 0 For Cu_tva = 0
|
|
Select * From tact Into Cursor actactan Readwrite
|
|
|
|
Select actactan
|
|
Replace All id_util With m.gnIdUtil, id_set With m.lnIdSet
|
|
lnSucces = OSCRIE_IN_FISIERE(0)
|
|
llSucces = (lnSucces > 0)
|
|
IF m.llSucces
|
|
AMESSAGEBOX('S-a inregistrat Nota de inchidere TVA!', 0 + 64, _Screen.Caption)
|
|
ENDIF
|
|
Endif && gnButon = 1
|
|
|
|
Exit
|
|
Endif && pnScrieDirect
|
|
Use In (Select(m.lcCursorVerificare))
|
|
Enddo && .T.
|
|
llSucces = goConn.EndManualTransaction(Iif(m.llSucces, 'COMMIT', 'ROLLBACK'))
|
|
|
|
Endif && llSucces
|
|
|
|
Use In (Select('actactan'))
|
|
|
|
IF m.pnScrieDirect = 1
|
|
If Nvl(m.pnCod, 0) <> 0
|
|
AMESSAGEBOX('S-a inregistrat Nota de inchidere TVA!', 0 + 64, _Screen.Caption)
|
|
Else
|
|
AMESSAGEBOX('Nu exista inregistrari pentru Nota de inchidere TVA!', 0 + 64, _Screen.Caption)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
Endproc && inchidere_tva
|
|
|
|
|
|
|
|
************************************
|
|
*** note inchidere TVA Incasare pentru facturi cu sold 0 si neexigibilizate la timp
|
|
*** se apeleaza din Registrul de Cumparari/Vanzari
|
|
************************************
|
|
Procedure inchidere_tva_sold
|
|
Parameters tcJurnal, tcXMLFacturi
|
|
|
|
Local loForm As [frm_modific2007]
|
|
Local lcCursorDefTVA, lcJurnal, lcSCC, lcSCD, lcSql, llMaximize, llNotaNoua, lnBut, lnIdFact
|
|
Local lnIdSet, lnNrAct, lnProcTVA, lnRecords, lnSucces, lnSuma, loAct
|
|
Local lnCota, lnCotaTVA, lnSuma24, lnSuma5, lnSuma9, lnSumaT
|
|
Local lnSuma24T, lnSuma5T, lnSuma9T, lnSumaNT, lcMesaj
|
|
SET STEP ON
|
|
lcJurnal = Upper(Alltrim(m.tcJurnal)) && JC/JV
|
|
If m.lcJurnal = 'JC' && Jurnal Cumparari
|
|
lcSCD = '4426'
|
|
lcSCC = '4428'
|
|
Else
|
|
lcSCD = '4428'
|
|
lcSCC = '4427'
|
|
Endif
|
|
lnRecords = Xmltocursor(m.tcXMLFacturi, "crsTVAIncasareTemp")
|
|
If lnRecords = 0
|
|
Use In (Select("crsTVAIncasareTemp"))
|
|
Return
|
|
Endif
|
|
lcMesaj = ''
|
|
lnIdSet = 99999 && nota fara predefinire
|
|
lnBut = lans(m.lnIdSet)
|
|
Set Step On
|
|
If m.lnBut = 1
|
|
Select actactan
|
|
Scatter Name loAct
|
|
Zap
|
|
|
|
Select crsTVAIncasareTemp
|
|
Scan
|
|
lnNrAct = crsTVAIncasareTemp.nract
|
|
lnIdFact = crsTVAIncasareTemp.id_fact
|
|
lnSumaT = soldn
|
|
lnSuma21 = soldn21
|
|
lnSuma11 = soldn11
|
|
|
|
lnSuma24 = soldn24
|
|
lnSuma20 = soldn20
|
|
lnSuma19 = soldn19
|
|
lnSuma9 = soldn9
|
|
lnSuma5 = soldn5
|
|
|
|
If m.lcJurnal = 'JC' && Jurnal Cumparari
|
|
lnSuma21T = ro21nt
|
|
lnSuma11T = ro11nt
|
|
lnSuma24T = ro24nt
|
|
lnSuma20T = ro20nt
|
|
lnSuma19T = ro19nt
|
|
lnSuma9T = ro09nt
|
|
lnSuma5T = ro05nt
|
|
ELSE
|
|
lnSuma21T = ro21nt
|
|
lnSuma11T = ro11nt
|
|
lnSuma24T = ro24nt
|
|
lnSuma20T = ro20nt
|
|
lnSuma19T = ro19nt
|
|
lnSuma9T = ro9nt
|
|
lnSuma5T = ro5nt
|
|
Endif
|
|
|
|
For lnCota = 1 To 7
|
|
lnSuma = m.lnSumaT
|
|
lnCotaTVA = 0.00
|
|
If m.lnSumaT = 0
|
|
lnSuma = Iif(m.lnCota = 1, m.lnSuma24, Iif(m.lnCota = 2, m.lnSuma20, Iif(m.lnCota = 3, m.lnSuma19, Iif(m.lnCota = 4, m.lnSuma9, Iif(m.lnCota = 5, m.lnSuma5, Iif(m.lnCota = 21, m.lnSuma21, m.lnSuma11))))))
|
|
lnCotaTVA = Iif(m.lnCota = 1, 1.24, Iif(m.lnCota = 2, 1.20, Iif(m.lnCota = 3, 1.19, Iif(m.lnCota = 4, 1.09, Iif(m.lnCota = 5, 1.05, Iif(m.lnCota = 6, 1.21, 1.11))))))
|
|
Endif
|
|
|
|
lnSumaNT = Iif(m.lnCota = 1, m.lnSuma24T, Iif(m.lnCota = 2, m.lnSuma20T, Iif(m.lnCota = 3, m.lnSuma19T, Iif(m.lnCota = 4, m.lnSuma9T, Iif(m.lnCota = 5, m.lnSuma5T, Iif(m.lnCota = 6, m.lnSuma21T, m.lnSuma11T))))))
|
|
|
|
lcSql = [{call pack_contab.defalca_tva_incasare(] + Alltrim(Str(m.lnIdFact)) + [,] + ;
|
|
Alltrim(Str(m.lnSuma, 16, m.gnPC)) + [, ] + Alltrim(Str(m.lnCotaTVA, 5, 2)) + [, 1, ?gnLuna, ?gnAn)}]
|
|
lcCursorDefTVA = [crsdeftvainc]
|
|
If goExecutor.oExecuta(m.lcSql, m.lcCursorDefTVA)
|
|
|
|
* Daca din diferite motive nu se poate calcula TVA exigibil, pun o linie cu ID_FACT-ul facturii originale, sa se poata completa manual
|
|
If Reccount(lcCursorDefTVA) = 0 And m.lnSumaNT <> 0
|
|
Insert Into (lcCursorDefTVA) (suma, PROC_TVA, id_fact) ;
|
|
Values (m.lnSumaNT, Iif(m.lnCota = 1, 1.24, Iif(m.lnCota = 2, 1.20, Iif(m.lnCota = 3, 1.19, Iif(m.lnCota = 4, 1.09, Iif(m.lnCota = 5, 1.05, Iif(m.lnCota = 6, 1.21, 1.11)))))), m.lnIdFact)
|
|
lcMesaj = lcMesaj + 'Factura ' + Alltrim(Str(m.lnNrAct)) + Chr(13) + Chr(10)
|
|
Endif
|
|
|
|
Insert Into actactan(nract, dataact, dataireg, id_fdoc, fdoc, nr_nota, luna, an, scd, scc, suma, PROC_TVA, id_jtva_coloana, id_set, id_fact, perechec, pereched, explicatia) ;
|
|
Select loAct.nract, loAct.dataact, loAct.dataireg, loAct.id_fdoc, loAct.fdoc, Reccount('actactan') + Recno() As nr_nota, m.gnLuna As luna, m.gnAn As an, m.lcSCD As scd, m.lcSCC As scc, ;
|
|
a.suma, a.PROC_TVA, a.id_jtva_coloana, m.lnIdSet As id_set, m.lnIdFact As id_fact, ;
|
|
Iif(m.lcJurnal = 'JV', m.lnNrAct, 0) As perechec, Iif(m.lcJurnal = 'JC', m.lnNrAct, 0) As pereched, ;
|
|
'Exigibilizare TVA Incasare' As explicatia ;
|
|
From (lcCursorDefTVA) a
|
|
|
|
|
|
Use In (Select(m.lcCursorDefTVA))
|
|
Endif
|
|
|
|
* apelez defalca_tva_incasare pentru fiecare cota, doar daca soldul neexigibil total este 0
|
|
* NU MAI STIU DE CE FAC ASTA???? Am pus lnSumaT > 0 in loc de <> 0, pentru ca aveam un caz special < 0 si nu stiu de ce ieste din bucla
|
|
If m.lnSumaT > 0
|
|
Exit
|
|
Endif
|
|
|
|
Endfor && lnCota = 1 TO 3
|
|
Endscan && crsTVAIncasareTemp
|
|
|
|
|
|
Select actactan
|
|
Scan
|
|
Gather Name loAct Fields Except nr_nota, luna, an, scd, scc, suma, PROC_TVA, id_jtva_coloana, id_set, id_fact, perechec, pereched
|
|
If !Empty(Nvl(loAct.explicatia, ''))
|
|
Replace explicatia With loAct.explicatia
|
|
Endif
|
|
Replace id_sucursala With m.gnIdSucursala
|
|
Endscan
|
|
|
|
|
|
update_jtva_coloane(m.lcJurnal, 'crsExplicatiiTVATemp', 1)
|
|
|
|
Select .F. As ales, 1 As Cu_tva, Cast(0 As N(2)) As tipnota, a.*, b.denumire As explicatie_tva_2 ;
|
|
From actactan a Left Join crsExplicatiiTVATemp b On a.id_jtva_coloana = b.id_jtva_coloana ;
|
|
Into Cursor tact Readwrite
|
|
|
|
Update tact Set explicatie_tva = explicatie_tva_2
|
|
|
|
Use In (Select('crsExplicatiiTVATemp'))
|
|
|
|
If !Empty(m.lcMesaj)
|
|
lcMesaj = [ATENTIE! Nu s-au gasit toate informatiile necesare!] + Chr(13) + Chr(10) + ;
|
|
[Completati campul "Explicatia TVA" exigibila pentru inregistrarile:] + Chr(13) + Chr(10) + m.lcMesaj
|
|
AMESSAGEBOX(m.lcMesaj, 0 + 48, _Screen.Caption)
|
|
Endif
|
|
|
|
Select tact
|
|
Go Top
|
|
llNotaNoua = .T.
|
|
llMaximize = .T.
|
|
loForm = Createobject([frm_modific2007], m.lnIdSet, m.llNotaNoua)
|
|
loForm.lb_titlu_alb_b121.Caption = 'Exigibilizare TVA Incasare'
|
|
Select tact
|
|
loForm.Show(1, m.llMaximize)
|
|
|
|
If buton = 1
|
|
Use In (Select('actactan'))
|
|
|
|
Select tact
|
|
Replace id_jtva_coloana With Null, PROC_TVA With 0 For Cu_tva = 0
|
|
Select * From tact Into Cursor actactan Readwrite
|
|
|
|
Select actactan
|
|
Replace All id_util With gnIdUtil, id_set With m.lnIdSet
|
|
lnSucces = OSCRIE_IN_FISIERE(0)
|
|
Endif && buton = 1
|
|
Endif && m.lnBut = 1
|
|
|
|
|
|
Use In (Select('actactan'))
|
|
Use In (Select('tact'))
|
|
|
|
Endproc && inchidere_tva_sold
|
|
|
|
*_________________________________
|
|
Procedure inchidere_venituri_cheltuieli
|
|
Lparameters tnTip
|
|
* tnTip: 7 = Venituri, 6 = Cheltuieli
|
|
|
|
Local overif As 'verificare'
|
|
Local lCompletareParteneri, lVerificAnalitic, lcCursor, lcSel, lcSql, llSucces, lnBut, lnIdSet
|
|
Local lnSucces, lnTip, loAct, lcAcont121, llNotaNoua, llMaximize
|
|
|
|
lnTip = Iif(Empty(m.tnTip), 7, m.tnTip)
|
|
lnIdSet = Iif(m.lnTip = 7, 90005, 90006)
|
|
|
|
* Stergere inchidere anterioara
|
|
Use In (Select('actactan'))
|
|
lcSql = [select * from vact where id_set = ] + Alltrim(Str(m.lnIdSet)) + [ and an = ?gnAn and luna = ?gnLuna] + m.gcCondSucursala
|
|
lcCursor = [actactan]
|
|
|
|
llSucces = goExecutor.oExecuta(lcSql, m.lcCursor)
|
|
If !m.llSucces
|
|
Return
|
|
Endif
|
|
|
|
Select actactan
|
|
If Reccount() > 0
|
|
Clear Class "verificare"
|
|
overif = Createobject('verificare')
|
|
overif.Show(1)
|
|
If buton = 2
|
|
Use In (Select('actactan'))
|
|
Release overif
|
|
Return
|
|
Endif
|
|
Do OSCRIE_IN_FISIERE.prg With 2, .F.
|
|
Endif
|
|
|
|
* Nota inchidere curenta
|
|
lnBut = lans(m.lnIdSet)
|
|
llSucces = (m.lnBut = 1)
|
|
|
|
If m.llSucces
|
|
lcSel = '{call pack_inchideri.inchidere_' + Iif(m.lnTip = 7, 'venituri', 'cheltuieli') + '(?gnAn,?gnLuna,?gnIdSucursala)}'
|
|
lcCursor = 'crs_inchidere'
|
|
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
|
|
Endif
|
|
|
|
If m.llSucces
|
|
Select actactan
|
|
Go Top
|
|
Scatter Name loAct
|
|
Zap
|
|
|
|
lcAcont121 = ''
|
|
If m.lnTip = 7 && venituri
|
|
lcAcont121 = Iif(Type('gcRC_ACONT121_INCHIDERE_V') = 'C' And !Empty(Nvl(m.gcRC_ACONT121_INCHIDERE_V, '')), m.gcRC_ACONT121_INCHIDERE_V, Space(4))
|
|
Insert Into actactan (scd, ascd, scc, ascc, suma, id_sectie, sectie) ;
|
|
Select Cont As scd, ACONT As ascd, '121 ' As scc, lcAcont121 As ascc, suma, ;
|
|
Iif(Type('id_sectie') = 'U', loAct.id_sectie, id_sectie) As id_sectie, ;
|
|
Iif(Type('sectie') = 'U', loAct.sectie, sectie) As sectie From crs_inchidere
|
|
Else
|
|
lcAcont121 = Iif(Type('gcRC_ACONT121_INCHIDERE_C') = 'C' And !Empty(Nvl(m.gcRC_ACONT121_INCHIDERE_C, '')), m.gcRC_ACONT121_INCHIDERE_C, Space(4))
|
|
Insert Into actactan (scc, ascc, scd, ascd, suma, id_sectie, sectie) ;
|
|
Select Cont As scc, ACONT As ascc, '121 ' As scd, lcAcont121 As ascd, suma, ;
|
|
Iif(Type('id_sectie') = 'U', loAct.id_sectie, id_sectie) As id_sectie, ;
|
|
Iif(Type('sectie') = 'U', loAct.sectie, sectie) As sectie From crs_inchidere
|
|
Endif
|
|
|
|
Select actactan
|
|
Scan
|
|
Gather Name loAct Fields Except scc, ascc, scd, ascd, suma, id_sectie, sectie
|
|
Endscan
|
|
|
|
Select .F. As ales, 0 As Cu_tva, Cast(0 As N(2)) As tipnota, a.*, Space(100) As explicatie_tva ;
|
|
From actactan a ;
|
|
Into Cursor tact Readwrite
|
|
|
|
Use In (Select('crsExplicatiiTVATemp'))
|
|
|
|
Select tact
|
|
Go Top
|
|
llNotaNoua = .T.
|
|
llMaximize = .T.
|
|
loForm = Createobject([frm_modific2007], m.lnIdSet, m.llNotaNoua)
|
|
loForm.lb_titlu_alb_b121.Caption = 'Nota inchidere ' + Iif(m.lnTip = 7, 'venituri', 'cheltuieli')
|
|
Select tact
|
|
loForm.Show(1, m.llMaximize)
|
|
|
|
If m.gnButon = 1
|
|
Use In (Select('actactan'))
|
|
|
|
Select tact
|
|
Replace id_jtva_coloana With Null, PROC_TVA With 0 For Cu_tva = 0
|
|
Select * From tact Into Cursor actactan Readwrite
|
|
|
|
Select actactan
|
|
Replace All id_util With m.gnIdUtil, id_set With m.lnIdSet
|
|
lnSucces = OSCRIE_IN_FISIERE(0)
|
|
Endif && gnButon = 1
|
|
Endif && llSucces
|
|
|
|
Use In (Select('crs_inchidere'))
|
|
Use In (Select('actactan'))
|
|
Endproc && inchidere_venituri_cheltuieli
|
|
|
|
|
|
**************************************
|
|
*** Genereaza note 461 = 542 pe baza sold inregistrari 542 la 30.06.aa, 31.12.aa
|
|
*** folositor pentru aflarea soldul 542 la sfarsitul perioadei in F30 bilant
|
|
*** ID_SET: 90021
|
|
**************************************
|
|
Procedure inchidere_sold_542
|
|
Private pnIdSet, pnCod
|
|
|
|
Local overif As 'verificare'
|
|
Local lcCursor, lcCursorVerificare, lcSql, llSucces, lnButon, lnSucces, loAct
|
|
Private pcSirDifAcont, pcSirDifPart, pdDataIreg
|
|
|
|
pnIdSet = 90021
|
|
pnCod = 0
|
|
llSucces = .T.
|
|
lcCursorVerificare = [crsact]
|
|
|
|
*** STERGERE NOTA INCHIDERE SOLD 542 90021
|
|
lcSql = [select * from vact where id_set = ?pnIdSet and an = ?gnAn and luna = ?gnLuna] + m.gcCondSucursala
|
|
lcCursor = [actactan]
|
|
|
|
llSucces = goExecutor.oExecuta(lcSql, m.lcCursor)
|
|
If !m.llSucces
|
|
Return m.llSucces
|
|
Endif
|
|
|
|
Select actactan
|
|
If Reccount() > 0
|
|
Clear Class "verificare"
|
|
overif = Createobject('verificare')
|
|
overif.Show(1)
|
|
If buton = 2
|
|
Use In (Select('actactan'))
|
|
Release overif
|
|
Return m.llSucces
|
|
Endif
|
|
lnSucces = OSCRIE_IN_FISIERE(2, .F.)
|
|
llSucces = (m.lnSucces > 0)
|
|
Endif
|
|
|
|
|
|
If !m.llSucces
|
|
Return m.llSucces
|
|
Endif
|
|
|
|
*** Cerere date (nu imi trebuie informatii gen nract, dataact, dar trebuie sa se creeze actactan)
|
|
lnButon = lans(m.pnIdSet)
|
|
If m.lnButon = 2
|
|
llSucces = .F.
|
|
Return m.llSucces
|
|
Endif
|
|
|
|
Select actactan
|
|
Go Top
|
|
Scatter Name loAct
|
|
|
|
pdDataIreg = loAct.dataireg
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
|
|
|
|
*** SCRIERE NOTA INCHIDERE SOLD 542 90021
|
|
If m.llSucces
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
llSucces = goConn.BeginManualTransaction()
|
|
Do While m.llSucces
|
|
*** da frecvent fatal error cand transmit parametri cu ? in loc de valori - probabil bug in driverul de odbc
|
|
*!* lcSql = [{call pack_inchideri.note_inchidere_tva(?gnAn, ?gnLuna, ?gnIdSucursala, ?pnIdFdoc, ?gnIdUtil, ?pdDataIreg, ?pdDataAct, ?pnNrAct, ?pcExplicatia, ?pcSirDifAcont, ?pcSirDifPart, ?@pnCod)}]
|
|
TEXT To lcSql Noshow Textmerge
|
|
{call pack_inchideri.note_inchidere_542(<<gnAn>>, <<gnLuna>>, <<iif(isnull(gnIdSucursala), 'NULL', transform(gnIdSucursala))>>, <<gnIdUtil>>, TO_DATE('<<dtos(pdDataIreg)>>', 'YYYYMMDD'), '<<pcSirDifAcont>>', '<<pcSirDifPart>>', ?@pnCod)}
|
|
ENDTEXT
|
|
|
|
|
|
llSucces = goExecutor.oExecuta(m.lcSql, m.lcCursorVerificare)
|
|
If !m.llSucces && eroare
|
|
Exit
|
|
Endif
|
|
|
|
If Reccount(m.lcCursorVerificare) = 0 && nu mai este nimic de completat
|
|
Exit
|
|
Endif
|
|
|
|
*** Trebuie completate analitice, parteneri
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
llSucces = verificare_completare_act(m.lcCursorVerificare, .T., .T., @pcSirDifAcont, @pcSirDifPart)
|
|
Use In (Select(m.lcCursorVerificare))
|
|
Enddo && .T.
|
|
llSucces = goConn.EndManualTransaction(Iif(m.llSucces, 'COMMIT', 'ROLLBACK'))
|
|
Endif && llSucces
|
|
|
|
Use In (Select('actactan'))
|
|
|
|
If Nvl(m.pnCod, 0) <> 0
|
|
AMESSAGEBOX('S-a inregistrat Nota de inchidere sold 542!', 0 + 64, _Screen.Caption)
|
|
Else
|
|
AMESSAGEBOX('Nu exista inregistrari pentru Nota de inchidere sold 542!', 0 + 64, _Screen.Caption)
|
|
Endif
|
|
Endproc && inchidere_sold_542
|
|
|
|
|
|
**************************************
|
|
*** Genereaza note inverse 542 = 461 pe baza notei de inchidere din registrul jurnal din luna anterioara (la 07/aa 01/aa)
|
|
*** ID_SET: 90022
|
|
**************************************
|
|
Procedure repunere_sold_542
|
|
|
|
Private pnIdSet, pnCod
|
|
|
|
Local overif As 'verificare'
|
|
Local lcCursor, lcCursorVerificare, lcSql, llSucces, lnButon, lnSucces, loAct
|
|
Private pcSirDifAcont, pcSirDifPart, pdDataIreg
|
|
|
|
pnIdSet = 90022
|
|
pnCod = 0
|
|
llSucces = .T.
|
|
lcCursorVerificare = [crsact]
|
|
|
|
*** STERGERE NOTA REPUNERE SOLD 542 90022
|
|
lcSql = [select * from vact where id_set = ?pnIdSet and an = ?gnAn and luna = ?gnLuna] + m.gcCondSucursala
|
|
lcCursor = [actactan]
|
|
|
|
llSucces = goExecutor.oExecuta(lcSql, m.lcCursor)
|
|
If !m.llSucces
|
|
Return m.llSucces
|
|
Endif
|
|
|
|
Select actactan
|
|
If Reccount() > 0
|
|
Clear Class "verificare"
|
|
overif = Createobject('verificare')
|
|
overif.Show(1)
|
|
If buton = 2
|
|
Use In (Select('actactan'))
|
|
Release overif
|
|
Return m.llSucces
|
|
Endif
|
|
lnSucces = OSCRIE_IN_FISIERE(2, .F.)
|
|
llSucces = (m.lnSucces > 0)
|
|
Endif
|
|
|
|
|
|
If !m.llSucces
|
|
Return m.llSucces
|
|
Endif
|
|
|
|
*** Cerere date (nu imi trebuie informatii gen nract, dataact, dar trebuie sa se creeze actactan)
|
|
lnButon = lans(m.pnIdSet)
|
|
If m.lnButon = 2
|
|
llSucces = .F.
|
|
Return m.llSucces
|
|
Endif
|
|
|
|
Select actactan
|
|
Go Top
|
|
Scatter Name loAct
|
|
|
|
pdDataIreg = loAct.dataireg
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
|
|
|
|
*** SCRIERE NOTA REPUNERE SOLD 542 90022
|
|
If m.llSucces
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
llSucces = goConn.BeginManualTransaction()
|
|
Do While m.llSucces
|
|
*** da frecvent fatal error cand transmit parametri cu ? in loc de valori - probabil bug in driverul de odbc
|
|
*!* lcSql = [{call pack_inchideri.note_inchidere_tva(?gnAn, ?gnLuna, ?gnIdSucursala, ?pnIdFdoc, ?gnIdUtil, ?pdDataIreg, ?pdDataAct, ?pnNrAct, ?pcExplicatia, ?pcSirDifAcont, ?pcSirDifPart, ?@pnCod)}]
|
|
TEXT To lcSql Noshow Textmerge
|
|
{call pack_inchideri.note_repunere_542(<<gnAn>>, <<gnLuna>>, <<iif(isnull(gnIdSucursala), 'NULL', transform(gnIdSucursala))>>, <<gnIdUtil>>, TO_DATE('<<dtos(pdDataIreg)>>', 'YYYYMMDD'), '<<pcSirDifAcont>>', '<<pcSirDifPart>>', ?@pnCod)}
|
|
ENDTEXT
|
|
|
|
|
|
llSucces = goExecutor.oExecuta(m.lcSql, m.lcCursorVerificare)
|
|
If !m.llSucces && eroare
|
|
Exit
|
|
Endif
|
|
|
|
If Reccount(m.lcCursorVerificare) = 0 && nu mai este nimic de completat
|
|
Exit
|
|
Endif
|
|
|
|
*** Trebuie completate analitice, parteneri
|
|
pcSirDifAcont = ""
|
|
pcSirDifPart = ""
|
|
llSucces = verificare_completare_act(m.lcCursorVerificare, .T., .T., @pcSirDifAcont, @pcSirDifPart)
|
|
Use In (Select(m.lcCursorVerificare))
|
|
Enddo && .T.
|
|
llSucces = goConn.EndManualTransaction(Iif(m.llSucces, 'COMMIT', 'ROLLBACK'))
|
|
Endif && llSucces
|
|
|
|
Use In (Select('actactan'))
|
|
|
|
If Nvl(m.pnCod, 0) <> 0
|
|
AMESSAGEBOX('S-a inregistrat Nota de repunere sold 542!', 0 + 64, _Screen.Caption)
|
|
Else
|
|
AMESSAGEBOX('Nu exista inregistrari pentru Nota de repunere sold 542!', 0 + 64, _Screen.Caption)
|
|
Endif
|
|
Endproc && repunere_sold_542
|
|
|
|
|
|
*************************************************
|
|
*** completare configurare conturi pentru inchiderea de amortizari
|
|
*** completeaza conturile de cheltuiala si amortizare pe sectii cu conturile de la inregistrarile fara sectii, daca este cazul
|
|
*** id_sectie a fost adaugat in 09.07.2020 si erau configurari doar pe cont, acont, nu si pe sectie
|
|
*************************************************
|
|
Procedure inchidere_amortizari_completare_conturi
|
|
Local lcLunaAn, lcSelect, lcSql
|
|
lcSelect = Select()
|
|
|
|
lcLunaAn = Padl(Int(m.gnLuna), 2, '0') + Alltrim(Str(Int(m.gnAn)))
|
|
TEXT TO lcSql TEXTMERGE NOSHOW
|
|
BEGIN
|
|
pack_imob.setlunacurenta(to_date('<<m.lcLunaAn>>','mmyyyy'));
|
|
|
|
insert into imob_inchidere (id_sectie, cont, acont, scd, ascd, scc, ascc)
|
|
select a.id_sectie,
|
|
a.cont,
|
|
a.acont,
|
|
nvl(a.scd, b.cont_cheltuiala) as scd,
|
|
ascd,
|
|
nvl(a.scc, b.cont_amortizare) as scc,
|
|
a.ascc
|
|
from (Select Distinct DECODE(s.id_sectie, 0, NULL, s.id_sectie) as id_sectie,
|
|
trim(s.Cont) as cont,
|
|
trim(s.acont) as acont,
|
|
nvl(i1.scd, i2.scd) as scd,
|
|
nvl(i1.ascd, i2.ascd) as ascd,
|
|
nvl(i1.scc, i2.scc) as scc,
|
|
nvl(i1.ascc, i2.ascc) as ascc
|
|
FROM imob_vsituatie_lunara s
|
|
left join imob_inchidere i1
|
|
on nvl(s.id_sectie, 0) = nvl(i1.id_sectie, 0)
|
|
and trim(s.cont) = trim(i1.cont)
|
|
and trim(nvl(s.acont, 'x')) = trim(nvl(i1.acont, 'x'))
|
|
left join (select cont, acont, scd, ascd, scc, ascc
|
|
from imob_inchidere
|
|
where id_sectie is null) i2
|
|
on trim(s.cont) = trim(i2.cont)
|
|
and trim(nvl(s.acont, 'x')) = trim(nvl(i2.acont, 'x'))
|
|
WHERE s.iesit_din_gest = 0
|
|
and s.id_tip_imobilizare in (1, 2)
|
|
and rpad(nvl(s.id_sectie,0), 10, '0') || rpad(trim(s.cont),4, 'x') || rpad(trim(s.acont), 4, 'x') not in
|
|
(select rpad(nvl(id_sectie,0), 10, '0') || rpad(trim(cont),4, 'x') || rpad(trim(acont), 4, 'x') from imob_inchidere)) a
|
|
left join imob_conturi b
|
|
on trim(a.cont) = trim(b.cont);
|
|
END;
|
|
ENDTEXT
|
|
llSucces = goExecutor.oExecuta(m.lcSql)
|
|
|
|
Select (m.lcSelect)
|
|
Return m.llSucces
|
|
Endproc && inchidere_amortizari_completare_conturi
|
|
|
|
Procedure viz_inchidere_amortizari_conturi
|
|
Local loFrm, llBlank, llSucces, llBlank
|
|
|
|
inchidere_amortizari_completare_conturi()
|
|
|
|
llBlank = .T.
|
|
= ccsectii(m.llBlank) && vnom_sectii
|
|
Select vnom_sectii
|
|
Index On id_sectie Tag id_sectie
|
|
|
|
llSucces = goExecutor.oExecuta("select id, id_sectie, sectie, cont, acont, scd, ascd, scc, ascc from vimob_inchidere order by sectie, cont, acont", "imob_conturi")
|
|
If m.llSucces
|
|
Select imob_conturi
|
|
Go Top
|
|
loFrm = Newobject("imob_conturi", "oconfigcont.vcx")
|
|
loFrm.Show(1)
|
|
Use In (Select('imob_conturi'))
|
|
Endif
|
|
|
|
= close_ccsectii()
|
|
Endproc && viz_inchidere_amortizari_conturi
|
|
|
|
*________________________________
|
|
|
|
Procedure inchidere_amortizari
|
|
Parameters tnTip
|
|
|
|
Local lcCursorInchidere, lcSql, lcCursor, lnSucces
|
|
Local loForm As [frm_modific2007]
|
|
Local overif As 'verificare'
|
|
Local lcAct, lcDirContafin, llMaximize, llNotaNoua, llSucces, lnBut, lnIdSectie, loAct
|
|
Private pnIdSet, pnSectie, pnTip, pnLucrare
|
|
|
|
pnTip = Iif(Empty(tnTip) Or Type('tnTip') # 'N', 1, tnTip)
|
|
If pnTip = 1
|
|
pnIdSet = 90003
|
|
Endif
|
|
If pnTip = 2
|
|
pnIdSet = 90009
|
|
Endif
|
|
|
|
* Completare conturi
|
|
inchidere_amortizari_completare_conturi()
|
|
|
|
lcCursorInchidere = ""
|
|
|
|
lcSql = [select * from vact where id_set = ?pnIdSet and an = ?gnAn and luna = ?gnLuna] + m.gcCondSucursala
|
|
lcCursor = [actactan]
|
|
|
|
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
|
goExecutor.oReset()
|
|
If lnSucces < 0
|
|
AMESSAGEBOX('Cautare Nota Inchidere Amortizari:' + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare")
|
|
Return
|
|
Endif
|
|
|
|
Select actactan
|
|
If Reccount() > 0
|
|
Clear Class "verificare"
|
|
overif = Createobject('verificare')
|
|
overif.Show(1)
|
|
If buton = 2
|
|
If Used('actactan')
|
|
Use In actactan
|
|
Endif
|
|
Release overif
|
|
Return
|
|
Else
|
|
Do OSCRIE_IN_FISIERE.prg With 2, .F.
|
|
Endif
|
|
Endif
|
|
|
|
|
|
lnBut = lans(pnIdSet)
|
|
|
|
If m.lnBut = 1
|
|
If m.gnNotaImob = 3
|
|
* Import nota Contafin
|
|
lcDirContafin = goApp.ReadIni([inchidere], "director_contafin")
|
|
If Empty(m.lcDirContafin) Or !Directory(m.lcDirContafin)
|
|
lcDirContafin = Getdir('', 'Directorul firmei Contafin', 'Directorul firmei Contafin', 64)
|
|
goApp.WriteIni([inchidere], "director_contafin", m.lcDirContafin)
|
|
Endif
|
|
|
|
lcAct = Addbs(m.lcDirContafin) + 'AN' + Alltrim(Str(m.gnAn)) + '\DATE' + Padl(Alltrim(Str(m.gnLuna, 2, 0)), 2, '0') + '\ACT.DBF'
|
|
If File(m.lcAct)
|
|
llSucces = goExecutor.oExecuta('SELECT scd, ascd, scc, ascc, suma, explicatia4 as explicatie, id_sectie, sectie FROM vact WHERE 1=2', 'crs_inchidere')
|
|
|
|
Use (m.lcAct) In 0 Shared Alias c_act_temp
|
|
Select explicatia, scd, scc, ascd, ascc, sectie, nume_2 As explicatie, suma From c_act_temp Where id_set = m.pnIdSet Into Cursor cActTemp
|
|
Use In (Select('c_act_temp'))
|
|
If Reccount('cActTemp') = 0
|
|
AMESSAGEBOX('Nu exista nici o nota cu tipul de operatie ' + Alltrim(Str(m.pnIdSet)) + ' in Registrul jurnal din Contafin!', 0 + 48, _Screen.Caption)
|
|
Create Cursor crs_inchidere(scd C(4), ascd C(4), scc C(4), ascc C(4), suma N(18, 4), explicatie C(100), id_sectie I, sectie C(100))
|
|
Endif && RECCOUNT
|
|
|
|
Select crs_inchidere
|
|
Append From Dbf('cActTemp')
|
|
Use In (Select('cActTemp'))
|
|
|
|
Select crs_inchidere
|
|
Scan
|
|
lnIdSectie = GetIdSectie(crs_inchidere.sectie)
|
|
Replace id_sectie With m.lnIdSectie In crs_inchidere
|
|
Endscan
|
|
Else
|
|
AMESSAGEBOX('Nu exista fisierul ' + m.lcAct, 0 + 48, _Screen.Caption)
|
|
Create Cursor crs_inchidere(scd C(4), ascd C(4), scc C(4), ascc C(4), suma N(18, 4), explicatie C(100), id_sectie I, sectie C(100))
|
|
Endif && FILE(m.lcAct)
|
|
Else
|
|
pnSectie = 0
|
|
DO CASE
|
|
CASE m.gnNotaImob = 2
|
|
pnSectie = 1
|
|
CASE m.gnCampSectie = 1 AND AMESSAGEBOX("Inchiderea se face dupa campul 'Sectie'?", 4 + 32, "Inchidere amortizari") = 6
|
|
pnSectie = 1
|
|
ENDCASE
|
|
pnLucrare = 0
|
|
IF m.gnCampLucrare = 1 AND AMESSAGEBOX("Inchiderea se face dupa campul 'Lucrare'?", 4 + 32, "Inchidere amortizari") = 6
|
|
pnLucrare = 1
|
|
ENDIF
|
|
|
|
lcCursorInchidere = GET_CURSOR_INCHIDERE_AMORTIZARI(m.pnTip, m.pnSectie, m.pnLucrare, m.gnAn, m.gnLuna, "crs_inchidere") && oproceduri_comune_imob.prg
|
|
If !Used(lcCursorInchidere)
|
|
lnBut = 2 && RENUNT
|
|
Endif
|
|
Endif && m.gnNotaImob = 3
|
|
Endif && m.lnBut = 1
|
|
|
|
If m.lnBut = 1
|
|
Select actactan
|
|
Scatter Name loAct
|
|
Zap
|
|
Insert Into actactan (scd, ascd, scc, ascc, suma, explicatia4, id_sectie, sectie, id_lucrare, nrord) ;
|
|
SELECT scd, ascd, scc, ascc, suma, explicatie, id_sectie, sectie, id_lucrare, nrord From crs_inchidere Where suma <> 0
|
|
|
|
Select actactan
|
|
Scan
|
|
Gather Name loAct Fields Except scd, ascd, scc, ascc, suma, explicatia4, id_sectie, sectie, id_lucrare, nrord
|
|
Endscan
|
|
|
|
Select .F. As ales, 0 As Cu_tva, Cast(0 As N(2)) As tipnota, a.*, Space(100) As explicatie_tva ;
|
|
From actactan a ;
|
|
Into Cursor tact Readwrite
|
|
|
|
Use In (Select('crsExplicatiiTVATemp'))
|
|
|
|
Select tact
|
|
Go Top
|
|
llNotaNoua = .T.
|
|
llMaximize = .T.
|
|
loForm = Createobject([frm_modific2007], m.pnIdSet, m.llNotaNoua)
|
|
loForm.lb_titlu_alb_b121.Caption = 'Nota inchidere amortizare ' + Iif(m.pnTip = 1, 'imobilizari corporale', 'imobilizari necorporale')
|
|
Select tact
|
|
loForm.Show(1, m.llMaximize)
|
|
|
|
If m.gnButon = 1
|
|
Use In (Select('actactan'))
|
|
|
|
Select tact
|
|
Replace id_jtva_coloana With Null, PROC_TVA With 0 For Cu_tva = 0
|
|
Select * From tact Into Cursor actactan Readwrite
|
|
|
|
Select actactan
|
|
Replace All id_util With gnIdUtil, id_set With m.pnIdSet
|
|
lnSucces = OSCRIE_IN_FISIERE(0)
|
|
Endif && gnButon = 1
|
|
Endif && lnBut = 1
|
|
|
|
Use In (Select('crs_inchidere'))
|
|
Use In (Select('actactan'))
|
|
Endproc && inchidere_amortizari
|