2018 lines
72 KiB
Plaintext
2018 lines
72 KiB
Plaintext
*!* 24.01.2011
|
|
*!* marius.mutu
|
|
*!* viz_balanta_contabilitate - balanta cumulata
|
|
|
|
*!* 07.11.2011
|
|
*!* marius.mutu
|
|
*!* aleg_document_pereche
|
|
*!* conditie sucursala si analitic
|
|
|
|
*!* 22.04.2020
|
|
*!* verificare_note_contabile - se repun documente.sters = 0 daca s-a folosit id_fact pentru pereche si este sters in documente
|
|
*!* din diferite motive in documente se marcheaza sters documente care exista inca???
|
|
|
|
*!* 26.01.2021
|
|
*!* viz_act - am adaugat cont_bancad si cont_bancac
|
|
|
|
*!* 15.09.2021
|
|
*!* verific_analitic - acont_alt, explicatie_alt
|
|
|
|
******************************** INCEPUT: viz_act ********************************
|
|
Procedure viz_act
|
|
Lparameters tnCurs,tcValuta
|
|
|
|
*** verificare INAINTE_DE
|
|
Do inainte With "ACT" In oinainte_de.prg
|
|
|
|
*** creez cursorul actjur fara date
|
|
Private poactjur,ACTJUR,poact,act,porull,rull
|
|
Store '' To poactjur,poact,porull
|
|
|
|
*!* 24.03.2008
|
|
*!* If m.nivel=0
|
|
*!* If At([6;],gcAcces)>0
|
|
pcschema=['SERIE_ACT C(10),ID_ACT N(20),LUNA N(2),AN N(4),COD N(20),DATAIREG D,nract N(20),DATAACT D,'+]+;
|
|
['EXPLICATIA C(100),SCD C(4),ASCD C(4),SCC C(4),ASCC C(4),SUMA N(20,gnPC),PERECHED N(14),DATAACTD D,'+]+;
|
|
['PERECHEC N(14),DATAACTC D,SUMA_VAL N(20,gnPval),ID_VALUTA N(5),NUME_VAL C(5),CURS N(10,gnPcurs2),DATASCAD D,NEIMPOZAB N(20,gnPC),'+]+;
|
|
['NNIR N(14),ID_UTIL N(5),UTIL C(30),DATAORA T,ID_UTILS N(5),UTILS C(30),DATAORAS T,'+]+;
|
|
['ID_RESPONSABIL N(5),NRESP C(30),ID_VENCHELT N(5),DST_CHLT C(100),ID_LUCRARE N(5),NRORD C(50),ID_CTR N(5), CONTRACT C(30),'+]+;
|
|
['ID_SECTIE N(5),SECTIE C(30),PROC_TVA N(5,2),ID_SET N(20),ID_FACT N(20),ID_PARTD N(10),PARTD C(50),COD_FISCALD C(30), ID_PARTC N(10),'+]+;
|
|
['PARTC C(50), COD_FISCALC C(30),ID_SUCURSALA N(5),SUCURSALA C(50),STERS N(1),ID_FDOC N(5),FDOC C(30),EXPLICATIE_TVA C(100),ID_JTVA_COLOANA N(4),'+]+;
|
|
['EXPLICATIA4 C(100),EXPLICATIA5 C(100),ID_GESTIN N(5),GESTIN C(50),ID_GESTOUT N(5),GESTOUT C(50),ID_FACTD N(20),ID_FACTC N(20),'+]+;
|
|
['VALIDAT N(1),ID_UTILV N(5), UTILV C(30), DATAORAV T,CONT_BANCAD C(50),BANCAD C(5),CONT_BANCAC C(50), BANCAC C(50), '+]+;
|
|
['TAXCODE N(6), TAXNAME C(250), SAFT_DESCRIERE C(250), SAFT_PROCENT N(6,2),PAYMENTCODE C(9),PAYMENTNAME C(250), REGISTRU C(20)']
|
|
|
|
pcselect=['select SERIE_ACT,ID_ACT, LUNA, AN, COD, DATAIREG, NRACT, DATAACT, '+]+;
|
|
['EXPLICATIA, SCD, ASCD, SCC, ASCC, SUMA, PERECHED, DATAACTD,'+]+;
|
|
['PERECHEC, DATAACTC, SUMA_VAL, ID_VALUTA, NUME_VAL, CURS, DATASCAD, NEIMPOZAB, '+]+;
|
|
['NNIR, ID_UTIL, UTIL, DATAORA, ID_UTILS, UTILS, DATAORAS, '+]+;
|
|
['ID_RESPONSABIL, NRESP, ID_VENCHELT, DST_CHLT, ID_LUCRARE, NRORD, ID_CTR, CONTRACT, '+]+;
|
|
['ID_SECTIE, SECTIE, PROC_TVA, ID_SET, ID_FACT, ID_PARTD, PARTD, COD_FISCALD, ID_PARTC, '+]+;
|
|
['PARTC, COD_FISCALC, ID_SUCURSALA, SUCURSALA, STERS, ID_FDOC, FDOC, EXPLICATIE_TVA ,ID_JTVA_COLOANA ,'+]+;
|
|
['EXPLICATIA4, EXPLICATIA5, ID_GESTIN, GESTIN, ID_GESTOUT, GESTOUT, ID_FACTD, ID_FACTC, '+]+;
|
|
['VALIDAT, ID_UTILV, UTILV, DATAORAV,CONT_BANCAD,BANCAD,CONT_BANCAC,BANCAC,TAXCODE,TAXNAME,SAFT_DESCRIERE,SAFT_PROCENT,PAYMENTCODE,PAYMENTNAME,REGISTRU'+]+;
|
|
[' from vact_tot where 2=2']
|
|
pcfiltru=[sters=0 and luna=]+Alltrim(Str(gnluna))+[ and an=]+Alltrim(Str(gnan))
|
|
*!* Else
|
|
*!* pcschema=['SERIE_ACT C(10),ID_ACT N(20),LUNA N(2),AN N(4),COD N(20),DATAIREG D,NRACT N(14),DATAACT D,'+]+;
|
|
*!* ['EXPLICATIA C(100),SCD C(4),ASCD C(4),SCC C(4),ASCC C(4),SUMA N(20,gnPA),PERECHED N(14),'+]+;
|
|
*!* ['PERECHEC N(14),SUMA_VAL N(20,gnPval),ID_VALUTA N(5),NUME_VAL C(5),CURS N(10,gnPcurs),DATASCAD D,NEIMPOZAB N(20,gnPA),'+]+;
|
|
*!* ['NNIR N(10),ID_UTIL N(5),UTIL C(30),DATAORA T,ID_UTILS N(5),UTILS C(30),DATAORAS T,'+]+;
|
|
*!* ['ID_RESPONSABIL N(5),NRESP C(30),ID_VENCHELT N(5),DST_CHLT C(100),ID_LUCRARE N(5),NRORD C(50),ID_CTR N(5),CONTRACT C(30),'+]+;
|
|
*!* ['ID_SECTIE N(5),SECTIE C(30),PROC_TVA N(5,2),ID_SET N(20),ID_FACT N(20),ID_PARTD N(10),PARTD C(50),ID_PARTC N(10),'+]+;
|
|
*!* ['PARTC C(50),ID_SUCURSALA N(5),SUCURSALA C(50),ID_FDOC N(5),FDOC C(30),EXPLICATIE_TVA C(100),ID_JTVA_COLOANA N(4),'+]+;
|
|
*!* ['EXPLICATIA4 C(100),EXPLICATIA5 C(100),ID_GESTIN N(5),GESTIN C(50),ID_GESTOUT N(5),GESTOUT C(50),ID_FACTD N(20),ID_FACTC N(20),sters n(1),'+]+;
|
|
*!* ['VALIDAT N(1),ID_UTILV N(5), UTILV C(30), DATAORAV T']
|
|
|
|
*!* pcselect=['select SERIE_ACT,ID_ACT, LUNA, AN, COD, DATAIREG, NRACT, DATAACT,'+]+;
|
|
*!* ['EXPLICATIA, SCD, ASCD, SCC, ASCC, SUMA, PERECHED,'+]+;
|
|
*!* ['PERECHEC, SUMA_VAL, ID_VALUTA, NUME_VAL, CURS, DATASCAD, NEIMPOZAB,'+]+;
|
|
*!* ['NNIR, ID_UTIL, UTIL, DATAORA, ID_UTILS, UTILS, DATAORAS, '+]+;
|
|
*!* ['ID_RESPONSABIL, NRESP, ID_VENCHELT, DST_CHLT, ID_LUCRARE, NRORD, ID_CTR, CONTRACT,'+]+;
|
|
*!* ['ID_SECTIE, SECTIE, PROC_TVA, ID_SET, ID_FACT, ID_PARTD, PARTD, ID_PARTC, '+]+;
|
|
*!* ['PARTC, ID_SUCURSALA, SUCURSALA, ID_FDOC, FDOC, EXPLICATIE_TVA ,ID_JTVA_COLOANA ,'+]+;
|
|
*!* ['EXPLICATIA4, EXPLICATIA5, ID_GESTIN, GESTIN, ID_GESTOUT, GESTOUT, ID_FACTD, ID_FACTC, 0 as sters, '+]+;
|
|
*!* ['VALIDAT, ID_UTILV, UTILV, DATAORAV '+] + ;
|
|
*!* [' from ] + gcS + [.vact_tot where 2=2']
|
|
*!* pcfiltru=[luna=]+Alltrim(Str(gnluna))+[ and an=]+Alltrim(Str(gnan))
|
|
|
|
*!* Endif
|
|
*!* 24.03.2008 ^
|
|
* din afisactual
|
|
*!* If m.nivel>1
|
|
If At([6;],gcAcces)=0
|
|
pcfiltru = pcfiltru + [ AND ID_UTIL=]+Alltrim(Str(gnidutil))+[ ]
|
|
Endif
|
|
|
|
pcfiltru=[1=2]
|
|
|
|
*!* pcschema=['']
|
|
pcorder=[dataireg,id_act]
|
|
llAfisare=.F.
|
|
gencursor('poactjur','actjur',pcselect,pcfiltru,pcschema,pcorder,llAfisare)
|
|
poactjur.ca_baza1.afisare()
|
|
Select ACTJUR
|
|
*COPY TO c:\act.dbf
|
|
|
|
pcselect=['select * from act where 1=2']
|
|
pcfiltru=[1=2]
|
|
pcschema=['']
|
|
pcorder=[dataireg]
|
|
llAfisare=.F.
|
|
gencursor('poact','act',pcselect,pcfiltru,pcschema,pcorder,llAfisare)
|
|
poact.ca_baza1.afisare()
|
|
|
|
pcselect=['select * from rul where 1=2']
|
|
pcfiltru=[1=2]
|
|
pcschema=['']
|
|
pcorder=[]
|
|
llAfisare=.F.
|
|
gencursor('porull','rull',pcselect,pcfiltru,pcschema,pcorder,llAfisare)
|
|
porull.ca_baza1.afisare()
|
|
|
|
update_jtva_coloane("", "crsJtvaTemp", 0) && baza si neimpozabile pentru modificare explicatie TVA in rulaje
|
|
|
|
Clear Class "afisjurcom"
|
|
Select ACTJUR
|
|
OJUR=Createobject('AFISJURcom',tnCurs,tcValuta)
|
|
If .F.
|
|
If NNN>10000
|
|
OJUR.EACTAN=.T.
|
|
Endif
|
|
Endif
|
|
|
|
OJUR.Show(1)
|
|
Release OJUR
|
|
Use In (SELECT('ACTJUR'))
|
|
USE IN (SELECT('crsJtvaTemp'))
|
|
|
|
Release poactjur,poact,porull
|
|
|
|
Endproc
|
|
******************************** SFARSIT: viz_act ********************************
|
|
|
|
************************** INCEPUT: aleg_document_pereche *****************************
|
|
|
|
Procedure aleg_document_pereche
|
|
Parameters tnFel,toAct,tcTabel
|
|
Local lcSel,lcSelAct
|
|
|
|
*** tnFel : tipul soldului
|
|
*** toAct : obiect cu varibilele din tabel
|
|
*** tcTabel : tabelul in care se varsa datele
|
|
|
|
*lcControl = ALLTRIM(tcControl)
|
|
*lcSelAct = &lcControl..RecordSource
|
|
|
|
lcSelAct = Alltrim(tcTabel)
|
|
Select (lcSelAct)
|
|
lnRand = Recno()
|
|
lnSucces=1
|
|
|
|
If tnFel = 0 && ACTIV
|
|
pcContul = Alltrim(Nvl(toAct.scc,[]))
|
|
pcContCoresp = Alltrim(Nvl(toAct.scd,[]))
|
|
pcACont = Alltrim(Nvl(toAct.ascc,[NULL]))
|
|
pnIdPart = Nvl(toAct.Id_partc,0)
|
|
pcNume = Alltrim(Nvl(toAct.partc,[]))
|
|
pnPereche = [perecheC]
|
|
pnIdPereche = [id_factC]
|
|
pnPozCont = 1
|
|
Else && PASIV
|
|
pcContul = Alltrim(Nvl(toAct.scd,[]))
|
|
pcContCoresp = Alltrim(Nvl(toAct.scc,[]))
|
|
pcACont = Alltrim(Nvl(toAct.ascd,[NULL]))
|
|
pnIdPart = Nvl(toAct.Id_partd,0)
|
|
pcNume = Alltrim(Nvl(toAct.partd,[]))
|
|
pnPereche = [perecheD]
|
|
pnIdPereche = [id_factD]
|
|
pnPozCont = 0
|
|
Endif
|
|
lcFis = 'actcv' + Alltrim(pcContul)
|
|
lcTitluSpec = []
|
|
|
|
*!* lcSelect = [select decode(tip_sold,'A',0,'P',1,-1) as tip_sold from ] + gcs + [.vplcont_sintetic where cont = ?pcContul and an = ?gnAn]
|
|
*!* lcCursor = [crsSold]
|
|
*!* lnSucces = goexecutor.oExecute(lcSelect,lcCursor)
|
|
*!* IF lnSucces < 0
|
|
*!* MESSAGEBOX('Modificare:Tip Sold ' +goExecutor.cEroare,0+16,"Eroare")
|
|
*!* ENDIF
|
|
|
|
*!* IF lnSucces > 0
|
|
*!* SELECT crsSold
|
|
*!* LOCATE
|
|
*!* IF !EOF()
|
|
*!* pnFelCont = tip_sold
|
|
*!* ELSE
|
|
*!* pnFelCont = -1
|
|
*!* ENDIF
|
|
|
|
*!* IF pnFelCont = -1 && dc e bifunctional sau nu e definit
|
|
*!* PRIVATE eActiv
|
|
*!* STORE .T. TO eActiv
|
|
*!* PRIVATE loCont
|
|
*!* loCont = CREATEOBJECT("custom")
|
|
*!* ADDPROPERTY(loCont,'cont',pcContul)
|
|
*!* ADDPROPERTY(loCont,'acont',pcAcont)
|
|
|
|
*!* Ol=CREATEOBJECT("frm_sel_cont")
|
|
*!* WITH Ol
|
|
*!* .titlufrumos1.CAPTION= 'Tipul soldului'
|
|
*!* .cboCont.visible = .f.
|
|
*!* .lblCont.Caption = loCont.cont
|
|
*!* .lblAcont.Caption = loCont.acont
|
|
*!* .terminat1.enabled = .t.
|
|
*!* .ocont=loCont
|
|
*!* .HEIGHT = 190
|
|
*!* ENDWITH
|
|
*!* Ol.SHOW(1)
|
|
*!* RELEASE loCont
|
|
*!*
|
|
*!* IF buton = 2
|
|
*!* lnSucces = -1
|
|
*!* ELSE
|
|
*!* pnFelCont = IIF(eActiv,0,1)
|
|
*!* ENDIF
|
|
*!* ENDIF
|
|
|
|
|
|
*!* *!* lcSelect = [select count(*) as ePereche from ] + gcs + [.vcoresp_tip_cont where cont = ?pcContul and fel_cont = ?pnFelCont and cu_inregistrari = 1 ] + ;
|
|
*!* *!* [and ?pcContul not in (select cont from ] + gcs + [.exceptii_ireg where cont_c = ?pcContCoresp and invers = 1 and debit =?pnPozCont)]
|
|
*!* *!* lcCursor = [crsTest]
|
|
*!* *!* lnSucces = goexecutor.oExecute(lcSelect,lcCursor)
|
|
*!* *!* IF lnSucces < 0
|
|
*!* *!* MESSAGEBOX('Modificare:Verific existenta pereche ' +goExecutor.cEroare,0+16,"Eroare")
|
|
*!* *!* ENDIF
|
|
*!* ENDIF
|
|
|
|
*!* IF lnSucces > 0
|
|
*!* SELECT crsTest
|
|
*!* LOCATE
|
|
*!* IF ePereche = 0
|
|
*!* lnSucces = -1
|
|
*!* toact.&pnPereche = 0
|
|
*!* toact.&pnIdPereche = 0
|
|
*!* MESSAGEBOX('Nu trebuie completat documentul pereche!',0,'Informare')
|
|
*!* ENDIF
|
|
*!* ENDIF
|
|
|
|
If lnSucces > 0
|
|
If Type('toAct.Suma_val')# 'U' And !Empty(toAct.Suma_val)
|
|
llval = .T.
|
|
pnSuma = toAct.Suma_val
|
|
lcFormular = [ocompensari_val]
|
|
If Type('toAct.Id_Valuta')# 'U'
|
|
pnIdValuta = toAct.Id_Valuta
|
|
Else
|
|
pnIdValuta = 0
|
|
Endif
|
|
Else
|
|
llval = .F.
|
|
pnSuma = toAct.Suma
|
|
lcFormular = [ocompensari]
|
|
Endif
|
|
|
|
pcDenumire = [Partener ] + pcContul
|
|
pcCond = [ an = ?gnAn and luna = ?gnluna]
|
|
|
|
If llval
|
|
pcCond= pcCond + [ and ABS(i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit)>0 and i.id_valuta = ?pnIdValuta ]
|
|
Else
|
|
pcCond= pcCond + [ and (i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit = 0) ]
|
|
Endif
|
|
|
|
pcselect = ['select i.* FROM Vireg_parteneri i where 2=2 ']
|
|
*!* 07.11.2011
|
|
If Alltrim(pcACont) # [NULL]
|
|
pcfiltru = [ i.id_part = ?pnIdPart AND ABS(i.precdeb + i.debit - i.preccred - i.credit)<>0 AND i.cont = ?pcContul and NVL(acont,'x') = NVL(?pcACont,'x') and ] + pcCond
|
|
Else
|
|
pcfiltru = [ i.id_part = ?pnIdPart AND ABS(i.precdeb + i.debit - i.preccred - i.credit)<>0 AND i.cont = ?pcContul and acont is null and ] + pcCond
|
|
ENDIF
|
|
pcfiltru = m.pcfiltru + m.gcCondSucursala
|
|
*!* 07.11.2011 ^
|
|
pcschema = ['']
|
|
pcorder = ['']
|
|
|
|
Private podateintrod
|
|
Store '' To podateintrod
|
|
|
|
gencursor('podateintrod','crs_actcv',pcselect,pcfiltru,[''],'')
|
|
If Type('podateintrod') # 'O'
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
If Used(lcFis)
|
|
Use In &lcFis
|
|
Endif
|
|
|
|
If tnFel = 0
|
|
lcSel = [SELECT *, ACONT AS ASCC, nume_val as numeval, curs as cursschimb, precdeb + debit as totctva, preccred+credit as achitat, ] +;
|
|
[precvaldeb + valdebit AS sumaval, precVALcred+VALcredit as achitatval, ] +;
|
|
[.f. as ales, 00000000000000.0000 as sumaachi, 000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif ] +;
|
|
[FROM crs_actcv order by dataact INTO CURSOR ] + lcFis + [ READWRITE ]
|
|
Else
|
|
lcSel = [SELECT *, ACONT AS ASCD, nume_val as numeval, curs as cursschimb, preccred + credit as totctva, precdeb+debit as achitat, ] + ;
|
|
[precvalcred + valcredit as sumaval, precVALdeb+VALdebit as achitatval, ] + ;
|
|
[.f. as ales, 00000000000000.0000 as sumaachi, 00000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif ] + ;
|
|
[FROM crs_actcv order by dataact INTO CURSOR ] + lcFis + [ READWRITE ]
|
|
Endif
|
|
&lcSel
|
|
If Used('crs_actcv')
|
|
Use In crs_actcv
|
|
Endif
|
|
|
|
If pcACont # [NULL]
|
|
lcTitluSpec = [ / Analitic: ] + pcACont
|
|
Endif
|
|
|
|
Select (lcFis)
|
|
Clear Class (lcFormular)
|
|
OPLATA=Createobject(lcFormular)
|
|
OPLATA.titlufrumos1.Caption = pcDenumire + [: ] + pcNume + lcTitluSpec
|
|
OPLATA.pcFis = lcFis
|
|
OPLATA.Suma = pnSuma
|
|
*OPLATA.pnFelCont = pnFelCont
|
|
OPLATA.Show(1)
|
|
Clear Class (lcFormular)
|
|
|
|
If gnButon = 1
|
|
Select (lcSelAct)
|
|
Delete
|
|
Select (lcFis)
|
|
Scan For ales
|
|
Scatter Name oper
|
|
Select (lcSelAct)
|
|
Append Blank
|
|
Gather Name toAct
|
|
Replace &pnIdPereche With oper.id_fact, &pnPereche With oper.nract, Suma With oper.sumaachi
|
|
If Type('toAct.Suma_val')# 'U'
|
|
Replace Suma_val With oper.sumaachi2
|
|
Endif
|
|
Select (lcFis)
|
|
Endscan
|
|
Else
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces < 0
|
|
Select &lcSelAct
|
|
lcUpdate = [update ] + lcSelAct + [ set ] + pnPereche + [= ] + Alltrim(Str(toAct.&pnPereche)) + [ WHERE RECNO() = ] + Alltrim(Str(lnRand))
|
|
&lcUpdate
|
|
*UPDATE (lcSelAct) SET &pnPereche = toact.&pnPereche WHERE RECNO() = lnRand
|
|
Else
|
|
Select (lcSelAct)
|
|
Do nrord With lcSelAct
|
|
Endif
|
|
|
|
If Used(lcFis)
|
|
Use In (lcFis)
|
|
Endif
|
|
If Used('crsTest')
|
|
Use In crsTest
|
|
Endif
|
|
|
|
Select (lcSelAct)
|
|
*&lcControl..SetFocus
|
|
|
|
Endproc && aleg_document_pereche
|
|
|
|
************************** SFARSIT: aleg_document_pereche *****************************
|
|
|
|
************************** INCEPUT: exista_cont_in_plan_conturi *****************************
|
|
Function exista_cont_in_plan_conturi
|
|
Parameters tcCont
|
|
LOCAL lcSelect
|
|
|
|
lcSelect = SELECT()
|
|
llExista = .F.
|
|
tcCont = Alltrim(tcCont)
|
|
|
|
lcSql=[select count(*) as exista_cont FROM ] + gcS + [.vplcont_sintetic where cont=?tcCont and inactiv = 0 and an = ?gnAn ]
|
|
lcCursor = 'crs_cont'
|
|
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
If lnSucces < 0
|
|
aMESSAGEBOX('VERIFICARE CONT ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
If lnSucces > 0
|
|
Select crs_cont
|
|
Locate
|
|
llExista = NVL(exista_cont,0) > 0
|
|
ENDIF
|
|
|
|
If !llExista
|
|
aMESSAGEBOX('Acest cont nu este configurat in planul de conturi!',48,'Atentie!')
|
|
Endif
|
|
USE IN (SELECT('crs_cont'))
|
|
SELECT (lcSelect)
|
|
|
|
Return llExista
|
|
************************** SFARSIT: exista_cont_in_plan_conturi *****************************
|
|
|
|
************************** INCEPUT: verific_partener *****************************
|
|
Function verific_partener
|
|
Parameters tcCont, tcColNume, tcColId, tcTabel
|
|
|
|
ll_l=.F.
|
|
|
|
If Empty(tcCont) Or Type('tccont')#'C'
|
|
Return ll_l
|
|
Else
|
|
lcCont = Alltrim(tcCont)
|
|
Endif
|
|
|
|
If Empty(tcColNume) Or Type('tcColNume')#'C'
|
|
Return ll_l
|
|
Else
|
|
lcColNume = Alltrim(tcColNume)
|
|
Endif
|
|
|
|
If Empty(tcColId) Or Type('tcColId')#'C'
|
|
Return ll_l
|
|
Else
|
|
lcColID = Alltrim(tcColId)
|
|
Endif
|
|
|
|
If Empty(tcTabel) Or Type('tcTabel')#'C'
|
|
lcTabel = Alias()
|
|
Else
|
|
lcTabel = Alltrim(tcTabel)
|
|
Endif
|
|
|
|
|
|
lnId_part = 0
|
|
lcNume = ''
|
|
|
|
lcSql=[select count(*) as valoare FROM ] + gcS + [.vconfig_cont_ireg where to_number(cont) = ] + lcCont
|
|
lcCursor = 'c_part'
|
|
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
|
|
If lnSucces < 0
|
|
aMESSAGEBOX('VERIFICARE CONT ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare")
|
|
Else
|
|
ll_l = .T.
|
|
Select c_part
|
|
If valoare > 0
|
|
lcTitlu = 'Nume partener ' + lcCont
|
|
llNou = .T.
|
|
*!* modificare 10.12.2010
|
|
loCauta = CautPartenerContabilitate(GetHash([cTitlu=>] + Alltrim(lcTitlu)+[??cCont=>] + Alltrim(lcCont) + [??] + ;
|
|
[lAdaugCorespondente=>1]))
|
|
*!* locauta = caut_parteneri(lcCont, lcTitlu,,llNou)
|
|
*!* modificare 10.12.2010 ^
|
|
If !Empty(loCauta.id_part)
|
|
lnId_part=loCauta.id_part
|
|
lcNume=Alltrim(loCauta.denumire)
|
|
Endif
|
|
Endif
|
|
|
|
Select (lcTabel)
|
|
Replace &lcColID With lnId_part, &lcColNume With lcNume
|
|
Endif
|
|
|
|
If Used('c_part')
|
|
Use In c_part
|
|
Endif
|
|
|
|
Return ll_l
|
|
************************** SFARSIT: verific_partener *****************************
|
|
|
|
************************** INCEPUT: verific_analitic *****************************
|
|
Function verific_analitic
|
|
Parameters tlClick, tcCont, tcacont, tcColoana, tcTabel
|
|
Local lcTabel, ll_l, lcAcont, lcSql, lcCursor, lnSucces
|
|
|
|
m.den=''
|
|
ll_l=.F.
|
|
lcAcont = []
|
|
If Empty(tcCont)
|
|
Return ll_l
|
|
Else
|
|
pcCont = Alltrim(tcCont)
|
|
Endif
|
|
|
|
If Empty(tcacont) Or Type('tcacont')#'C'
|
|
pcACont = []
|
|
Else
|
|
pcACont = tcacont
|
|
Endif
|
|
|
|
If Empty(tcTabel) Or Type('tcTabel')#'C'
|
|
lcTabel = Alias()
|
|
Else
|
|
lcTabel = Alltrim(tcTabel)
|
|
Endif
|
|
|
|
If Used('TCEVA')
|
|
Use In tceva
|
|
Endif
|
|
|
|
TEXT TO lcSql NOSHOW
|
|
select p.acont || nvl2(p.cont_alt, ' - ' || p.cont_alt, '') || nvl2(p.cod, ' - ' || p.cod, '') || ' - ' || nvl(p.explicatie, '') as den, p.CONT, p.ACONT FROM vplcont_ANALITIC p where cont = ?pcCont and inactiv = 0 and an = ?gnAn order by acont
|
|
ENDTEXT
|
|
|
|
lcCursor = 'tceva'
|
|
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
If lnSucces < 0
|
|
aMESSAGEBOX('oOperatii_comune.VERIFIC_ANALITIC ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
Select tceva
|
|
Locate
|
|
If Eof()
|
|
If !Empty(tcacont) And !Isnull(tcacont)
|
|
aMESSAGEBOX('Nu au fost definite simboluri analitice pentru contul ' + pcCont,48,"Atentie")
|
|
Endif
|
|
lnSucces = -1
|
|
Else
|
|
If !tlClick
|
|
If Empty(tcacont) Or Isnull(tcacont) && exista analitic si nu e completat
|
|
tlClick = .T.
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
Select tceva
|
|
If tlClick
|
|
Do caut_alfa_cursor With 'tceva','den','Alegeti simbolul analitic','m.den'
|
|
Select tceva
|
|
Locate For Alltrim(den) = Alltrim(m.den)
|
|
pcACont = acont
|
|
Else
|
|
Locate For Alltrim(Cont) = pcCont And Alltrim(acont)=Alltrim(pcACont)
|
|
If !Found()
|
|
Do caut_alfa_cursor With 'tceva','den','Alegeti simbolul analitic','m.den'
|
|
Select tceva
|
|
Locate For Alltrim(den) = Alltrim(m.den)
|
|
pcACont = acont
|
|
Endif
|
|
Endif
|
|
Endif
|
|
|
|
IF !EMPTY(m.lcTabel) AND !EMPTY(m.tcColoana) AND USED(m.lcTabel)
|
|
If lnSucces > 0
|
|
Select (lcTabel)
|
|
Replace &tcColoana With pcACont
|
|
ll_l = .T.
|
|
Else
|
|
Select (lcTabel)
|
|
Replace &tcColoana With ''
|
|
ENDIF
|
|
ELSE
|
|
ll_l = (m.lnSucces > 0)
|
|
ENDIF
|
|
|
|
Use In (SELECT('tceva'))
|
|
|
|
Select (lcTabel)
|
|
Return ll_l
|
|
|
|
************************** SFARSIT: verific_analitic *****************************
|
|
************************** INCEPUT: verificare_note_contabile *****************************
|
|
Procedure verificare_note_contabile
|
|
Parameters tcAct,tlVerificAnalitic,tlAlegPartener, tlNuVerificCont
|
|
|
|
*!* 03.05.2013 : am adaugat lcIdFact, lcMesajIdFact
|
|
Local lcInMesaj, lcInMesajAcont, lcInMesajP, lcInMesajIreg, lcMesaj, lcInMesajPSters, lcAct, lnId_set, ll_return, lcIdFact, lcMesajIdFact
|
|
Store '' To lcInMesaj, lcInMesajAcont, lcInMesajP, lcInMesajIreg, lcMesaj, lcAct, lcInMesajPSters, lcIdFact, lcMesajIdFact
|
|
Store .T. To ll_return
|
|
|
|
If Empty(tcAct) Or Type('tcAct') # 'C'
|
|
lcAct = Alias()
|
|
Else
|
|
lcAct = Alltrim(tcAct)
|
|
Endif
|
|
|
|
Select (lcAct)
|
|
lnNrNota=1
|
|
Scan For Suma <> 0
|
|
lcScd = Alltrim(Nvl(scd,''))
|
|
lcScc = Alltrim(Nvl(scc,''))
|
|
*!* 07.05.2013 : verific id_fact de pe notele de TVA devenit exigibil ( 4426 - 4428 si 4428 - 4427 ), id_factc
|
|
*!* si id_factd sa nu fie marcate ca sterse in tabela "documente"
|
|
lcIdFact = Iif(id_fact>0 and tva_incasare=1 and ((scd = [4426] and scc = [4428]) or (scd = [4428] and scc = [4427])),Alltrim(Str(id_fact)),[])
|
|
lcIdFact = lcIdFact + Iif(id_factc>0,Iif(!Empty(lcIdFact),[,],[]) + Alltrim(Str(id_factc)),[])
|
|
lcIdFact = lcIdFact + Iif(id_factd>0,Iif(!Empty(lcIdFact),[,],[]) + Alltrim(Str(id_factd)),[])
|
|
*!* 07.05.2013 ^
|
|
*!* 11.03.2008
|
|
*!* tlNuVerificCont - nu se verifica conturile
|
|
If !tlNuVerificCont
|
|
*!* la clasele 8 si 9 se poate sa nu fie contul corespondent completat
|
|
If Empty(lcScd) And !Inlist(Left(lcScc,1),'8','9')
|
|
ll_return = .F.
|
|
lcMesaj = lcMesaj + ',' + 'contul debitor'
|
|
Endif
|
|
If Empty(lcScc) And !Inlist(Left(lcScd,1),'8','9')
|
|
ll_return = .F.
|
|
lcMesaj = lcMesaj + ',' + 'contul creditor'
|
|
Endif
|
|
Endif
|
|
*!* 11.03.2008 ^
|
|
If Empty(nract)
|
|
ll_return = .F.
|
|
lcMesaj = lcMesaj + ',' + 'nr.document'
|
|
Endif
|
|
If (!Empty(Suma_val) Or !Empty(Curs)) And Empty(Id_Valuta)
|
|
ll_return = .F.
|
|
lcMesaj = lcMesaj + ',' + 'nume valuta'
|
|
Endif
|
|
If Type('cu_tva')<>'U'
|
|
If cu_tva = 1 And Empty(Nvl(id_jtva_coloana,0))
|
|
ll_return = .F.
|
|
lcMesaj = lcMesaj + ',' + 'explicatie TVA'
|
|
Endif
|
|
Endif
|
|
If !ll_return
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
*!* aMESSAGEBOX("La nota nr. "+Alltrim(Str(lnNrNota))+" nu ati completat campu"+ Iif(At([,],lcMesaj,2)>0,[rile],[l]) + ;
|
|
*!* ": "+Substr(lcMesaj,2,60)+"...",0+48,"Atentie")
|
|
lcMesaj = "La nota nr. "+Alltrim(Str(lnNrNota))+" nu ati completat campu"+ Iif(At([,],lcMesaj,2)>0,[rile],[l]) + ;
|
|
": "+Substr(lcMesaj,2,60)+"..." + Chr(13) + Chr(10) + Chr(13)+ Chr(10)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
Exit
|
|
Endif
|
|
lnNrNota=lnNrNota+1
|
|
Endscan
|
|
|
|
If ll_return
|
|
lcMesaj = []
|
|
|
|
Select (lcAct)
|
|
Go Top
|
|
lnId_set=id_set
|
|
|
|
*!* modificare migrare v 1.0 > v 2.0 (am si note cu suma 0)
|
|
*!* Select Distinct scd As Cont From (lcAct) ;
|
|
*!* WHERE Suma # 0 And !Empty(Nvl(scd,'')) ;
|
|
*!* UNION ;
|
|
*!* SELECT Distinct scc As Cont From (lcAct) ;
|
|
*!* WHERE Suma # 0 And !Empty(Nvl(scc,'')) ;
|
|
*!* INTO Cursor tcont
|
|
|
|
*!* If _Tally = 0
|
|
*!* Use In tcont
|
|
Select Distinct scd As Cont From (lcAct) ;
|
|
WHERE !Empty(Nvl(scd,'')) ;
|
|
UNION ;
|
|
SELECT Distinct scc As Cont From (lcAct) ;
|
|
WHERE !Empty(Nvl(scc,'')) ;
|
|
INTO Cursor tcont
|
|
*!* Endif
|
|
*!* modificare migrare v 1.0 > v 2.0 ^
|
|
|
|
lcLista = [-1]
|
|
|
|
i = 0
|
|
Select tcont
|
|
Scan
|
|
If Empty(Nvl(Cont,''))
|
|
Loop
|
|
Endif
|
|
i = i + 1
|
|
lcLista = lcLista + ',' + Alltrim(Cont)
|
|
Endscan
|
|
|
|
lcSql = 'select distinct c.cont as contpart, c.fel_cont, c.cu_inregistrari, c.explicatie as explic_cont,e.cont_c as exceptie, e.debit as pozitie, e.invers, 0 as gasit ' + ;
|
|
'from ' + gcS + '.vconfig_cont_ireg c left join ' + gcS + '.exceptii_ireg e on c.cont = e.cont and e.invers = 1 ' + ;
|
|
'where to_number(c.cont) in (' + lcLista + ')'
|
|
lcCursor = 'verif_part'
|
|
|
|
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
If lnSucces < 0
|
|
aMESSAGEBOX('Modificare:Verific completare id_part ' +goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
If Reccount('verif_part') > 0
|
|
Select (lcAct)
|
|
Scan For !Empty(Suma)
|
|
|
|
Scatter Name loCont
|
|
Select verif_part
|
|
Locate For contpart=loCont.scd
|
|
If Found()
|
|
If Empty(loCont.Id_partd) And !(loCont.scd$lcInMesajP)
|
|
lcInMesajP=lcInMesajP+','+loCont.scd
|
|
Replace gasit With 1
|
|
Endif
|
|
If Empty(loCont.pereched) And cu_inregistrari = 1 And fel_cont = 1 And !(loCont.scd$lcInMesajIreg)
|
|
Locate For contpart=loCont.scd And inlist(upper(exceptie), 'X', upper(loCont.scc)) And fel_cont = 1 And pozitie = 0 And invers = 1
|
|
If !Found()
|
|
lcInMesajIreg = lcInMesajIreg + ',' + loCont.scd
|
|
Endif
|
|
Endif
|
|
*!* modificare 06.11.2007
|
|
Else
|
|
If !Empty(loCont.Id_partd)
|
|
Select (lcAct)
|
|
lcInMesajPSters = lcInMesajPSters + ',' + loCont.scd
|
|
Replace Id_partd With 0,partd With ''
|
|
Endif
|
|
*!* modificare 06.11.2007 ^
|
|
Endif
|
|
|
|
Select verif_part
|
|
Locate For contpart=loCont.scc
|
|
If Found()
|
|
If Empty(loCont.Id_partc) And !(loCont.scc$lcInMesajP)
|
|
lcInMesajP=lcInMesajP+','+loCont.scc
|
|
Replace gasit With 1
|
|
Endif
|
|
If cu_inregistrari = 1 And fel_cont = 0 And Empty(loCont.perechec) And !(loCont.scc$lcInMesajIreg)
|
|
Locate For contpart=loCont.scc And inlist(upper(exceptie), 'X', upper(loCont.scd)) And fel_cont = 0 And pozitie = 1 And invers = 1
|
|
If !Found()
|
|
lcInMesajIreg = lcInMesajIreg + ',' + loCont.scc
|
|
Endif
|
|
Endif
|
|
*!* modificare 06.11.2007
|
|
Else
|
|
If !Empty(loCont.Id_partc)
|
|
Select (lcAct)
|
|
lcInMesajPSters = lcInMesajPSters + ',' + loCont.scc
|
|
Replace Id_partc With 0,partc With ''
|
|
Endif
|
|
*!* modificare 06.11.2007 ^
|
|
Endif
|
|
Select (lcAct)
|
|
Endscan
|
|
*!* modificare 06.11.2007
|
|
Else
|
|
Select (lcAct)
|
|
Scan
|
|
If !Empty(Id_partd)
|
|
lcInMesajPSters = lcInMesajPSters + ',' + Alltrim(scd)
|
|
Replace Id_partd With 0,partd With ''
|
|
Endif
|
|
If !Empty(Id_partc)
|
|
lcInMesajPSters = lcInMesajPSters + ',' + Alltrim(scc)
|
|
Replace Id_partc With 0,partc With ''
|
|
Endif
|
|
Endscan
|
|
Endif
|
|
*!* modificare 06.11.2007 ^
|
|
Endif
|
|
|
|
*!* modificare 07.05.2013
|
|
If lnSucces > 0 And !Empty(Nvl(lcIdFact,[]))
|
|
lcSql = [select pack_contafin.verifica_id_documente(']+lcIdFact+[') as rez from dual]
|
|
lcCursor = 'crsverifdoc'
|
|
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
If lnSucces < 0
|
|
aMESSAGEBOX('Modificare:Verific id documente ' +goExecutor.cEroare,0+16,"Eroare")
|
|
Else
|
|
select (lcCursor)
|
|
lcMesajIdFact = alltrim(nvl(rez,''))
|
|
use in (lcCursor)
|
|
|
|
if !empty(nvl(lcMesajIdFact,[]))
|
|
llDocumentePlus = (Occurs(',',lcMesajIdFact)>0)
|
|
IF AMESSAGEBOX('Document' + iif(m.llDocumentePlus,'ele','ul') + ' ' + lcMesajIdFact + ;
|
|
' a fost marcat sters in lista de documente!' + + Chr(13) + Chr(10) + Chr(13) + Chr(10) + ;
|
|
'Doriti sa ' + iif(m.llDocumentePlus,'le','il') + ' marcati activ?',4+32,_SCREEN.Caption) = 6
|
|
lcSql = 'UPDATE DOCUMENTE SET STERS = 0 WHERE ID_DOC IN (' + m.lcIdFact + ')'
|
|
llSucces = goExecutor.oExecuta(m.lcSql)
|
|
IF m.llSucces
|
|
lcMesajIdFact = ''
|
|
ENDIF
|
|
ENDIF && messagebox
|
|
ENDIF && empty
|
|
ENDIF && lnSucces
|
|
ENDIF && lnSucces
|
|
*!* modificare 07.05.2013 ^
|
|
|
|
If lnSucces > 0 And tlVerificAnalitic
|
|
lcSql=[select CONT, ACONT FROM ] + gcS + [.vplcont_ANALITIC where inactiv = 0 and an = ?gnAn order by cont ]
|
|
lcCursor = 'plcontana'
|
|
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
|
|
If lnSucces < 0
|
|
aMESSAGEBOX('Modificare:Verific completare analitic ' +goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
Select (lcAct)
|
|
Scan For !Empty(Suma)
|
|
Scatter Name loCont
|
|
If Empty(Nvl(loCont.ascd, ''))
|
|
Select plcontana
|
|
Locate For Alltrim(Cont)=Alltrim(loCont.scd)
|
|
If Found()
|
|
If !(loCont.scd$lcInMesaj)
|
|
lcInMesaj=lcInMesaj+','+loCont.scd
|
|
Endif
|
|
Endif
|
|
Else
|
|
Select plcontana
|
|
Locate For Alltrim(Cont)=Alltrim(loCont.scd) And Alltrim(acont) = Alltrim(loCont.ascd)
|
|
If !Found()
|
|
If !(Alltrim(loCont.scd) + '.' + Alltrim(loCont.ascd)$lcInMesajAcont)
|
|
lcInMesajAcont = lcInMesajAcont + ',' + Alltrim(loCont.scd) + '.' + Alltrim(loCont.ascd)
|
|
Endif
|
|
Endif
|
|
Endif
|
|
If Empty(Nvl(loCont.ascc,''))
|
|
Select plcontana
|
|
Locate For Cont=loCont.scc
|
|
If Found()
|
|
If !(loCont.scc$lcInMesaj)
|
|
lcInMesaj=lcInMesaj+','+loCont.scc
|
|
Endif
|
|
Endif
|
|
Else
|
|
Select plcontana
|
|
Locate For Alltrim(Cont)=Alltrim(loCont.scc) And Alltrim(acont) = Alltrim(loCont.ascc)
|
|
If !Found()
|
|
If !(Alltrim(loCont.scc) + '.' + Alltrim(loCont.ascc)$lcInMesajAcont)
|
|
lcInMesajAcont = lcInMesajAcont + ',' + Alltrim(loCont.scc) + '.' + Alltrim(loCont.ascc)
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Select (lcAct)
|
|
Endscan
|
|
Release loCont
|
|
Endif
|
|
Endif
|
|
|
|
*!* modificare 07.05.2013
|
|
if !empty(nvl(lcMesajIdFact,[]))
|
|
lcMesaj = lcMesaj + 'Document' + iif(Occurs(',',lcMesajIdFact)>0,'ele','ul') + ' ' + lcMesajIdFact + ;
|
|
' nu mai exista in baza de date!' + Chr(13) + Chr(10) + Chr(13) + Chr(10)
|
|
ll_return = .F.
|
|
Endif
|
|
*!* modificare 07.05.2013 ^
|
|
|
|
If !Empty(lcInMesaj)
|
|
lcInMesaj = Substr(lcInMesaj,2)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
*!* If Occurs(',',lcInMesaj) > 0
|
|
*!* lcMesaj = 'Nu ati completat simbolurile analitice pentru conturile:'
|
|
*!* Else
|
|
*!* lcMesaj = 'Nu ati completat simbolul analitic pentru contul'
|
|
*!* Endif
|
|
*!* aMESSAGEBOX(lcMesaj+ ' '+ lcInMesaj+' !',48,"Atentie")
|
|
If Occurs(',',lcInMesaj) > 0
|
|
lcInMesaj = 'simbolurile analitice pentru conturile: '+ lcInMesaj
|
|
Else
|
|
lcInMesaj = 'simbolul analitic pentru contul '+ lcInMesaj
|
|
Endif
|
|
lcMesaj = lcMesaj + 'Nu ati completat ' + lcInMesaj + ' !' + Chr(13) + Chr(10) + Chr(13) + Chr(10)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
ll_return = .F.
|
|
Endif
|
|
|
|
If !Empty(lcInMesajAcont)
|
|
lcInMesajAcont = Substr(lcInMesajAcont,2)
|
|
If Occurs(',',lcInMesajAcont) > 0
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
*!* lcMesaj = 'Nu exista conturile analitice in planul de conturi: '
|
|
*!* Else
|
|
*!* lcMesaj = 'Nu exista contul analitic in planul de conturi: '
|
|
*!* Endif
|
|
*!* aMESSAGEBOX(lcMesaj + ' ' + lcInMesajAcont +' !',48,"Atentie")
|
|
lcInMesajAcont = 'conturile analitice in planul de conturi: ' + lcInMesajAcont
|
|
Else
|
|
lcInMesajAcont = 'contul analitic in planul de conturi: ' + lcInMesajAcont
|
|
Endif
|
|
lcMesaj = lcMesaj + 'Nu exista ' + lcInMesajAcont +' !' + Chr(13) + Chr(10) + Chr(13) + Chr(10)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
ll_return = .F.
|
|
Endif
|
|
|
|
If !Empty(lcInMesajP)
|
|
lcInMesajP = Substr(lcInMesajP,2)
|
|
If Occurs(',',lcInMesajP) > 0
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
*!* lcMesaj = 'Nu ati completat partenerii pentru conturile:'
|
|
*!* Else
|
|
*!* lcMesaj = 'Nu ati completat partenerul pentru contul '
|
|
*!* Endif
|
|
*!* aMESSAGEBOX(lcMesaj+' '+ lcInMesajP+' !',48,"Atentie")
|
|
lcInMesajP = 'partenerii pentru conturile: ' + lcInMesajP
|
|
Else
|
|
lcInMesajP = 'partenerul pentru contul ' + lcInMesajP
|
|
Endif
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
If tlAlegPartener && dc nu pot sa ma intorc sa completez partenerii
|
|
If Used('verif_part')
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
aMESSAGEBOX('Nu ati completat '+ lcInMesajP+' !',48,"Atentie")
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
Select verif_part
|
|
Scan For gasit = 1
|
|
lcCont = Alltrim(contpart)
|
|
lcTitlu = Alltrim(explic_cont)
|
|
*!* modificare 10.12.2010
|
|
loPart = CautPartenerContabilitate(GetHash([cTitlu=>] + Alltrim(lcTitlu) + [??] + ;
|
|
[cCont=>] + Alltrim(lcCont) + [??] + ;
|
|
[lAdaugCorespondente=>1]))
|
|
*!* loPart = caut_parteneri(lcCont , lcTitlu)
|
|
*!* modificare 10.12.2010 ^
|
|
Select (lcAct)
|
|
Replace All Id_partd With loPart.id_part, partd With loPart.denumire For Alltrim(scd) = lcCont And Id_partd = 0
|
|
Replace All Id_partc With loPart.id_part, partc With loPart.denumire For Alltrim(scc) = lcCont And Id_partc = 0
|
|
Release loPart
|
|
Select verif_part
|
|
Endscan
|
|
ll_return = .F. && modificare 02.07.2007 : ca sa apese din nou pe terminat si sa se reverifice notele
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
Else
|
|
lcMesaj = lcMesaj + 'Nu ati completat '+ lcInMesajP + ' !' + Chr(13) + Chr(10) + Chr(13) + Chr(10)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
Endif
|
|
Else
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
lcMesaj = lcMesaj + 'Nu ati completat '+ lcInMesajP + ' !' + Chr(13) + Chr(10) + Chr(13) + Chr(10)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
ll_return = .F.
|
|
Endif
|
|
Endif
|
|
|
|
If !Empty(lcInMesajIreg)
|
|
lcInMesajIreg = Substr(lcInMesajIreg,2)
|
|
If Occurs(',',lcInMesajIreg) > 0
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
*!* lcMesaj = 'Nu ati completat doc. pereche pentru conturile:'
|
|
*!* Else
|
|
*!* lcMesaj = 'Nu ati completat doc. pereche pentru contul '
|
|
*!* Endif
|
|
*!* aMESSAGEBOX(lcMesaj+' '+lcInMesajIreg+' !',48,"Atentie")
|
|
lcInMesajIreg = 'doc. pereche pentru conturile: ' + lcInMesajIreg
|
|
Else
|
|
lcInMesajIreg = 'doc. pereche pentru contul ' + lcInMesajIreg
|
|
Endif
|
|
lcMesaj = lcMesaj + 'Nu ati completat '+ lcInMesajIreg + ' !' + Chr(13) + Chr(10) + Chr(13) + Chr(10)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
ll_return = .F.
|
|
Endif
|
|
|
|
*!* modificare 06.11.2007
|
|
If !Empty(lcInMesajPSters)
|
|
lcInMesajPSters = Substr(lcInMesajPSters,2)
|
|
If Occurs(',',lcInMesajPSters) > 0
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
*!* lcMesaj = 'Au fost stersi partenerii corespunzatori conturilor:'
|
|
*!* Else
|
|
*!* lcMesaj = 'A fost sters partenerul corespunzator contului'
|
|
*!* Endif
|
|
*!* aMESSAGEBOX(lcMesaj+ ' '+ lcInMesajPSters+' !',48,"Atentie")
|
|
lcInMesajPSters = 'Au fost stersi partenerii corespunzatori conturilor: ' + lcInMesajPSters
|
|
Else
|
|
lcInMesajPSters = 'A fost sters partenerul corespunzator contului ' + lcInMesajPSters
|
|
Endif
|
|
lcMesaj = lcMesaj + lcInMesajPSters + ' !' + Chr(13) + Chr(10) + Chr(13) + Chr(10)
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
ll_return = .F.
|
|
Endif
|
|
*!* modificare 06.11.2007 ^
|
|
|
|
*!* modificare 14.11.2007
|
|
*!* Verificare mai multe nr act pe acelasi Id fact
|
|
Select Distinct id_fact,nract From &lcAct Where !Inlist(Nvl(id_fact,0),0,-1) ;
|
|
and !(tva_incasare=1 and ((scd = [4426] and scc = [4428]) or (scd = [4428] and scc = [4427]))) ; && modificare ROACONT v 2.4.4
|
|
Into Cursor cduplicatetemp1
|
|
Select id_fact, Count(*) As nr From cduplicatetemp1 ;
|
|
GROUP By id_fact ;
|
|
INTO Cursor cduplicatetemp
|
|
|
|
Use In (Select("cduplicatetemp1"))
|
|
|
|
|
|
Select cduplicatetemp
|
|
Locate For nr>1
|
|
If Found()
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
*!* lcMesaj = 'Nu este posibil ca pe acelasi document sa existe doua numere diferite.'
|
|
*!* aMESSAGEBOX(lcMesaj,0+48,"Atentie")
|
|
lcMesaj = lcMesaj + 'Nu este posibil ca pe acelasi document sa existe doua numere diferite.'
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
ll_return = .F.
|
|
Endif
|
|
Use In (Select("cduplicatetemp"))
|
|
|
|
*!* modificare ROAPRODUCTIE v 2.0.2
|
|
If !Empty(lcMesaj)
|
|
aMESSAGEBOX(Space(45) + "REZULTATE VERIFICARI" + Chr(13)+ Chr(10) + Replicate([=],60) + Chr(13)+ Chr(10) + lcMesaj,48,"Atentie")
|
|
Endif
|
|
*!* modificare ROAPRODUCTIE v 2.0.2 ^
|
|
|
|
*!* modificare 14.11.2007 ^
|
|
|
|
If lnSucces < 0
|
|
ll_return = .F.
|
|
Endif
|
|
|
|
If Used('verif_part')
|
|
Use In verif_part
|
|
Endif
|
|
If Used('plcontana')
|
|
Use In plcontana
|
|
Endif
|
|
If Used('tcont')
|
|
Use In tcont
|
|
Endif
|
|
Else
|
|
If !Empty(lcMesaj)
|
|
aMESSAGEBOX(Space(45) + "REZULTATE VERIFICARI" + Chr(13)+ Chr(10) + Replicate([=],60) + Chr(13)+ Chr(10) + lcMesaj,48,"Atentie")
|
|
Endif
|
|
Endif
|
|
|
|
Select (lcAct)
|
|
Return ll_return
|
|
|
|
Endproc && verificare_note_contabile
|
|
************************** SFARSIT: verificare_note_contabile *****************************
|
|
|
|
|
|
*******************************************
|
|
* PROCEDURE Sterge_Nota( tnCod, tnId_Set )
|
|
* Date : 08/07/2005, 13:03:45
|
|
* author : marius.mutu
|
|
* description:
|
|
*******************************************
|
|
Procedure sterge_nota
|
|
Lparameters tnCod, tnId_Set
|
|
Local lnSucces
|
|
lnSucces = -1
|
|
|
|
If Empty(tnCod)
|
|
tnCod = 0
|
|
Endif
|
|
If Empty(tnId_Set)
|
|
tnId_Set = 0
|
|
Endif
|
|
If tnCod + tnId_Set = 0
|
|
Return
|
|
Endif
|
|
|
|
Local lcWhere
|
|
lcWhere = []
|
|
|
|
If !Empty(tnCod)
|
|
lcWhere = [ and cod = ] + Transform(tnCod)
|
|
Endif
|
|
If !Empty(tnId_Set)
|
|
lcWhere = [ and id_set = ] + Transform(tnId_Set)
|
|
Endif
|
|
If !Empty(lcWhere)
|
|
lcWhere = Substr(lcWhere,6)
|
|
Endif
|
|
|
|
lcSql = [select * from ] + gcS + [.vact where ] + lcWhere + [ and an = ?gnAn and luna = ?gnLuna]+gcCondSucursala
|
|
lcCursor = [actactan]
|
|
|
|
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
goExecutor.oReset()
|
|
If lnSucces < 0
|
|
aMESSAGEBOX('Cautare Nota:' + 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
|
|
lnSucces = OSCRIE_IN_FISIERE(2,.F.)
|
|
Else
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If Used('actactan')
|
|
Use In actactan
|
|
Endif
|
|
Release overif
|
|
|
|
Return lnSucces
|
|
Endproc
|
|
*----------------------------------sfarsit procedura Sterge_Nota----------------------------------
|
|
*******************************************
|
|
* PROCEDURE scrie_nota_import( tnId_Set, tcCursorImport )
|
|
* Date : 08/07/2005, 14:04:32
|
|
* author : marius.mutu
|
|
* description:
|
|
*******************************************
|
|
Procedure scrie_nota_import( tnId_Set, tlVerificAnalitic, tlCompletareParteneri, tcCursorImport,taValori )
|
|
&&taValori -- parametru pentru lans
|
|
Local lnId_set, lcCursor, lnSucces
|
|
Local llVerificAnalitic, llCompletareParteneri
|
|
lnSucces = -1
|
|
|
|
lnId_set = tnId_Set
|
|
lcCursor = tcCursorImport
|
|
llVerificAnalitic = tlVerificAnalitic
|
|
llCompletareParteneri = tlCompletareParteneri
|
|
|
|
If Type('taValori',1)#[A]
|
|
lnBut = lans(lnId_set)
|
|
Else
|
|
lnBut = lans(lnId_set,.F.,.T.,@taValori)
|
|
Endif
|
|
|
|
If lnBut = 1
|
|
lcListaCampuri = Lista_Campuri(lcCursor)
|
|
Select actactan
|
|
Scatter Name oact
|
|
Zap
|
|
*!* INSERT INTO actactan (scd,ascd,scc,ascc,suma, explicatia) SELECT scd, ascd, scc, ascc, suma, explicatia FROM crs_inchidere
|
|
lcInsert = [INSERT INTO ACTACTAN (] + lcListaCampuri + [) select ] + lcListaCampuri + [ from ] + lcCursor
|
|
&lcInsert
|
|
|
|
|
|
Select actactan
|
|
Scan
|
|
lcGather = [GATHER NAME oact FIELDS EXCEPT ] + lcListaCampuri
|
|
&lcGather
|
|
Endscan
|
|
|
|
|
|
*!* v2.5.51 - 15.09.2014 &&modificare facuta pentru a putea modifica nota de inchidere de salarii
|
|
*!* Select actactan
|
|
*!* LOCATE
|
|
*!* Do Form verificare With llVerificAnalitic, llCompletareParteneri
|
|
*!* If gnButon = 1
|
|
*!* Select actactan
|
|
*!* lnSucces = OSCRIE_IN_FISIERE(0)
|
|
*!* Endif
|
|
lcJurnal = []
|
|
update_jtva_coloane(m.lcJurnal, 'crsExplicatiiTVATemp', 1)
|
|
|
|
Select .F. As ales, 0 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'))
|
|
|
|
Select tact
|
|
Go Top
|
|
llNotaNoua = .T.
|
|
llMaximize = .T.
|
|
loForm = Createobject([frm_modific2007], m.lnId_Set, m.llNotaNoua)
|
|
loForm.lb_titlu_alb_b121.Caption = 'Nota' && '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 WHERE suma <>0
|
|
|
|
Select actactan
|
|
Replace All id_util With gnIdUtil, id_set With m.lnId_Set
|
|
lnSucces = OSCRIE_IN_FISIERE(0)
|
|
Endif && buton = 1
|
|
*!* v2.5.51 - 15.09.2014 ^
|
|
|
|
Endif
|
|
|
|
If Used('actactan')
|
|
Use In actactan
|
|
Endif
|
|
|
|
Return lnSucces
|
|
|
|
|
|
Endproc
|
|
*----------------------------------sfarsit procedura scrie_nota_import----------------------------------
|
|
|
|
&& ------- INCEPUT ------- ultima_zi_din_luna
|
|
Function ultima_zi_din_luna
|
|
Parameters tnAnul, tnLuna
|
|
|
|
Local ldData, lnAn, lnLuna
|
|
If Type('tnAnul')='C'
|
|
tnAnul=Val(tnAnul)
|
|
Endif
|
|
|
|
If Type('tnLuna')='C'
|
|
tnLuna=Val(tnLuna)
|
|
Endif
|
|
|
|
If Empty(tnAnul) Or Type('tnAnul')#'N'
|
|
lnAn = gnan
|
|
Else
|
|
lnAn = tnAnul
|
|
Endif
|
|
If Empty(tnLuna) Or Type('tnLuna')#'N'
|
|
lnLuna = gnluna
|
|
Else
|
|
lnLuna = tnLuna
|
|
Endif
|
|
|
|
ldData = Date(lnAn, lnLuna, 1)
|
|
ldData = Gomonth(ldData,1)
|
|
ldData = Date(Year(ldData), Month(ldData), 1) - 1
|
|
|
|
Return ldData
|
|
Endfunc
|
|
&& ------- SFARSIT ------- ultima_zi_din_luna
|
|
|
|
&& -------------------------- INCEPUT do_assign_analitic ------------------------------
|
|
Procedure do_assign_analitic
|
|
Parameters tcCont,pcAct,pcRul
|
|
|
|
Private pcCont,pcAct,pcRul,pParamP,pParamS
|
|
Store 0 To pParamP,pParamS
|
|
lcAnalitic = ''
|
|
lcAlias = Alias()
|
|
|
|
pcCont = Alltrim(tcCont)
|
|
|
|
lcSel = [SELECT * from ] + gcS + [.config_analitice WHERE cont = ?pcCont]
|
|
lcCursor = 'crs_cfg_ana'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
If Reccount('crs_cfg_ana')=0
|
|
Use In crs_cfg_ana
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
Select crs_cfg_ana
|
|
Scatter Name ocfg
|
|
lcCampPrefix = Nvl(Alltrim(ocfg.camp_leg_prefix),'')
|
|
lcCampSufix = Nvl(Alltrim(ocfg.camp_leg_sufix),'')
|
|
|
|
If !Empty(lcCampPrefix)
|
|
If Type('&pcRul..'+lcCampPrefix) # 'U'
|
|
pParamP = &pcRul..&lcCampPrefix
|
|
Else
|
|
If Type('&pcAct..'+lcCampPrefix) # 'U'
|
|
pParamP = &pcAct..&lcCampPrefix
|
|
Endif
|
|
Endif
|
|
Endif
|
|
|
|
If !Empty(lcCampSufix)
|
|
If Type('&pcRul..'+lcCampSufix) # 'U'
|
|
pParamS = &pcRul..&lcCampSufix
|
|
Else
|
|
If Type('&pcAct..'+lcCampSufix) # 'U'
|
|
pParamS = &pcAct..&lcCampSufix
|
|
Endif
|
|
Endif
|
|
Endif
|
|
|
|
lcSel = [{call fconturi_analitice(?gcs,?pcCont,0,?pParamP,?pParamS)}]
|
|
lcCursor = 'crs_analitice'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
Endif
|
|
|
|
&& iau Primul Simbol Analitic din Tabel - ordonat pt ca e selectat cu Distinct
|
|
If lnSucces > 0
|
|
Select crs_analitice
|
|
Go Top
|
|
lcAnalitic = Alltrim(acont)
|
|
Endif
|
|
|
|
&& verificare analiticului cu Planul de Conturi
|
|
If lnSucces > 0
|
|
*!* lcSel = [SELECT cont,acont from ] + gcs + [.vplcont_analitic WHERE cont = ?pcCont and acont = ?lcAnalitic and an = ?gnAn ]
|
|
*!* lcCursor = 'crs_verific'
|
|
*!* lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
*!* IF lnSucces < 0
|
|
*!* MESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
*!* ENDIF
|
|
|
|
lnSucces = verific_analitic_(pcCont, lcAnalitic, .T.)
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
If Reccount('crs_verific')=0
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If Used('crs_cfg_ana')
|
|
Use In crs_cfg_ana
|
|
Endif
|
|
If Used('crs_verific')
|
|
Use In crs_verific
|
|
Endif
|
|
If Used('crs_analitice')
|
|
Use In crs_analitice
|
|
Endif
|
|
If Used('crs_verific')
|
|
Use In crs_verific
|
|
Endif
|
|
|
|
If lnSucces < 0
|
|
lcAnalitic = ''
|
|
Endif
|
|
|
|
Select (lcAlias)
|
|
Return lcAnalitic
|
|
|
|
&& -------------------------- SFARSIT do_assign_analitic ------------------------------
|
|
|
|
&& -------------------------- INCEPUT verific_cont ------------------------------
|
|
Procedure verific_cont
|
|
Parameters tcCont, tlNoMessage
|
|
|
|
Private pcCont
|
|
pcCont = Alltrim(tcCont)
|
|
|
|
&& verificarea contului cu Planul de Conturi
|
|
lcSel = [SELECT cont from ] + gcS + [.vplcont_sintetic WHERE TRIM(cont) = ?pcCont and an = ?gnAn ]
|
|
lcCursor = 'crs_verific'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
If Reccount('crs_verific')=0
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces < 0 And !tlNoMessage
|
|
aMESSAGEBOX('Acest cont nu este definit in planul de conturi!',0+48, 'Atentie')
|
|
Endif
|
|
|
|
Return lnSucces
|
|
|
|
Endproc
|
|
|
|
&& -------------------------- SFARSIT verific_cont ------------------------------
|
|
|
|
&& -------------------------- INCEPUT verific_analitic ------------------------------
|
|
Procedure verific_analitic_
|
|
Parameters tcCont, tcacont, tlNoMessage
|
|
|
|
Private pcCont, pcACont
|
|
pcCont = Alltrim(tcCont)
|
|
pcACont = Alltrim(tcacont)
|
|
|
|
&& verificare contului cu Planul de Conturi
|
|
lcSel = [SELECT cont, acont from ] + gcS + [.vplcont_analitic WHERE TRIM(cont) = ?pcCont and TRIM(acont) = ?pcAcont and an = ?gnAn ]
|
|
lcCursor = 'crs_verific'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
|
|
|
|
If lnSucces > 0
|
|
If Reccount('crs_verific')=0
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces < 0 And !tlNoMessage
|
|
aMESSAGEBOX('Acest analitic nu este definit in planul de conturi!',0+48, 'Atentie')
|
|
Endif
|
|
Return lnSucces
|
|
|
|
Endproc
|
|
|
|
&& -------------------------- SFARSIT verific_analitic ------------------------------
|
|
|
|
*!* vizualizare balanta, balanta c8, balanta c9
|
|
Procedure viz_balanta_contabilitate
|
|
Lparameters tcBal, tlCumulat
|
|
|
|
Local loFrmPerioada, lnAn1, lnLuna1, lnAn2, lnLuna2, lcPerioada, lnInit, lnFinal
|
|
Private pcondper
|
|
pcondper = ""
|
|
|
|
If tlCumulat
|
|
loFrmPerioada=Createobject('frm_perioada_luni')
|
|
loFrmPerioada.Show(1)
|
|
|
|
If gnButon=2
|
|
Return
|
|
Endif
|
|
|
|
If At('_',pcondper) > 0
|
|
lnAn1 = Val(Substr(pcondper,3,4))
|
|
lnLuna1 = Val(Substr(pcondper,1,2))
|
|
lnAn2 = Val(Substr(pcondper,10,4))
|
|
lnLuna2 = Val(Substr(pcondper,8,2))
|
|
|
|
lcPerioada = Substr(pcondper,1,2)+'/'+Substr(pcondper,3,4) + ' - ' + Substr(pcondper,8,2)+'/'+Substr(pcondper,10,4)
|
|
Else
|
|
lnAn1 = Val(Substr(pcondper,3,4))
|
|
lnLuna1 = Val(Substr(pcondper,1,2))
|
|
lnAn2 = Val(Substr(pcondper,3,4))
|
|
lnLuna2 = Val(Substr(pcondper,1,2))
|
|
|
|
lcPerioada = Substr(pcondper,1,2)+'/'+Substr(pcondper,3,4) + ' - ' + Substr(pcondper,1,2)+'/'+Substr(pcondper,3,4)
|
|
Endif
|
|
lnInit = lnAn1 * 12 + lnLuna1
|
|
lnFinal = lnAn2 * 12 + lnLuna2
|
|
Do viz_balanta With , , , , , , m.lnLuna1, m.lnAn1, m.lnLuna2, m.lnAn2, m.tcBal
|
|
ELSE
|
|
Do viz_balanta With , , , , , , , , , , m.tcBal
|
|
Endif
|
|
|
|
|
|
|
|
Endproc && viz_balanta_contabilitate
|
|
|
|
*********************************************************************************************
|
|
* PROCEDURE viz_balanta( )
|
|
* Date : 08/09/2004, 16:00:20
|
|
* author : marius.mutu
|
|
* description:
|
|
* tnAn1, tnLuna1, tnAn2, tnLuna2 - luna initiala, luna finala sau luna curenta
|
|
******************************************* INCEPUT:viz_balanta *******************************************
|
|
Procedure viz_balanta
|
|
Parameters tlFaraInainte_de, tnId_sectie, tlEval_valuta, tnCurs, tcValuta, tcFormular, tnLuna1, tnAn1, tnLuna2, tnAn2, tcBal
|
|
&& tcBal = "bal/bal_c8/bal_c9" && balanta clasele 1-7/ balanta clasa 8 / balanta clasa 9
|
|
|
|
Local lnAn1, lnLuna1, lnAn2, lnLuna2, lcBal, lcProceduraInainte, lcCaption, lcAntetOriginal
|
|
lnAn1 = gnan
|
|
lnLuna1 = gnluna
|
|
lnAn2 = gnan
|
|
lnLuna2 = gnluna
|
|
Private m.sprecdeb1,m.spreccred1,m.ssoldideb, m.ssoldicred, m.sprecdeb,m.spreccred,m.sruldeb,m.srulcred,m.stotdeb,m.stotcred,m.ssolddeb,m.ssoldcred
|
|
Store 0 To m.sprecdeb1,m.spreccred1,m.ssoldideb, m.ssoldicred, m.sprecdeb,m.spreccred,m.sruldeb,m.srulcred,m.stotdeb,m.stotcred,m.ssolddeb,m.ssoldcred
|
|
|
|
If Empty(tcBal) Or Pcount() < 11
|
|
lcBal = "bal"
|
|
Else
|
|
lcBal = Iif(Lower(tcBal)$"bal/bal_c8/bal_c9", Lower(tcBal), "bal")
|
|
Endif
|
|
|
|
lcCaption = "Balanta de verificare"
|
|
Do Case
|
|
Case lcBal = "bal"
|
|
lcProceduraInainte = "BALANTA"
|
|
lcCaption = "Balanta de verificare"
|
|
Case lcBal = "bal_c8"
|
|
lcProceduraInainte = "BALANTA_C8"
|
|
lcCaption = "Balanta de verificare clasa 8"
|
|
Case lcBal = "bal_c9"
|
|
lcProceduraInainte = "BALANTA_C9"
|
|
lcCaption = "Balanta de verificare clasa 9"
|
|
Endcase
|
|
|
|
*** verificare INAINTE_DE
|
|
If !tlFaraInainte_de
|
|
Do inainte With lcProceduraInainte In oinainte_de.prg
|
|
Endif
|
|
|
|
Private T, lccont1, lccont2
|
|
Store '' To lccont1, lccont2
|
|
T='.t.'
|
|
|
|
Local lnId_sectie, llCentru, llEval_valuta, lnCurs, lcValuta
|
|
Store .F. To llCentru
|
|
If !Empty(tnId_sectie)
|
|
lnId_sectie = tnId_sectie
|
|
Endif
|
|
llEval_valuta = tlEval_valuta
|
|
lnCurs = tnCurs
|
|
lcValuta = tcValuta
|
|
|
|
If Pcount() < 10 Or Empty(tnAn1) Or Empty(tnLuna1) Or Empty(tnAn2) Or Empty(tnLuna2)
|
|
lnAn1 = gnan
|
|
lnLuna1 = gnluna
|
|
lnAn2 = gnan
|
|
lnLuna2 = gnluna
|
|
Else
|
|
lnAn1 = tnAn1
|
|
lnLuna1 = tnLuna1
|
|
lnAn2 = tnAn2
|
|
lnLuna2 = tnLuna2
|
|
Endif
|
|
|
|
If !Empty(lnId_sectie)
|
|
llCentru = .T.
|
|
If Used("tbalanta")
|
|
Use In tbalanta
|
|
Endif
|
|
|
|
*!* lcSel = [{call pack_mg_sectie.make_balante_centru(]+Alltrim(Str(lnId_sectie))+[,]+Alltrim(Str(lnLuna1))+[,]+Alltrim(Str(lnAn1))+[,]+Alltrim(Str(lnLuna2))+[,]+Alltrim(Str(lnAn2))+[)}]
|
|
lcSel = [begin pack_mg_sectie.make_balante_centru(]+Alltrim(Str(lnId_sectie))+[,]+ ;
|
|
Alltrim(Str(lnLuna1))+[,]+Alltrim(Str(lnAn1))+[,]+Alltrim(Str(lnLuna2))+[,]+Alltrim(Str(lnAn2))+[); end;]
|
|
lnSucces = goExecutor.oExecute(lcSel)
|
|
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
|
Return
|
|
Endif
|
|
Endif
|
|
|
|
Do make_tbalanta With llCentru, tnLuna1, tnAn1, tnLuna2, tnAn2, lcBal
|
|
|
|
|
|
If llEval_valuta
|
|
lcProc_eval = 'eval_balanta'
|
|
Do &lcProc_eval With lnCurs
|
|
Endif
|
|
|
|
&& Adaugat 03.05.2006 - pt. Balanta in engleza Alfred Knight
|
|
Private pcSold1ian, pcPrec, pcRul, pcTotal, pcSolduri, pcCont, pcDenumire, plBal_alt
|
|
pcSI1 = 'Solduri initiale 1 Ian.'
|
|
pcSI = 'Solduri initiale'
|
|
pcTSP = 'Total sume precedente'
|
|
pcRLC = 'Rulajele lunii curente'
|
|
pcTS = 'Total Sume'
|
|
pcSF = 'Solduri finale'
|
|
pcTR = 'Total rulaje'
|
|
pcCont = "Cont"
|
|
pcDenumire = "Denumire"
|
|
plBal_alt = .F.
|
|
***
|
|
|
|
Sele tbalanta
|
|
* DO FORM afisbal_ana
|
|
If !Empty(tcFormular) And Type('tcFormular')= 'C'
|
|
loBal = Createobject(tcFormular)
|
|
Else
|
|
loBal = Createobject("frm_balanta")
|
|
Endif
|
|
|
|
If llCentru Or llEval_valuta
|
|
lcAntetOriginal = gcAntet
|
|
Endif
|
|
|
|
Do Case
|
|
Case llCentru
|
|
|
|
lcSql=[select sectie from vnom_sectii where id_sectie= ]+Alltrim(Str(lnId_sectie))
|
|
lnSucces=goExecutor.oExecute(lcSql,'crsSectie')
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
|
Endif
|
|
Select crsSectie
|
|
lcCentru_profit = sectie
|
|
If Used('crsSectie')
|
|
Use In crsSectie
|
|
Endif
|
|
|
|
lcCaption = "BALANTA DE VERIFICARE - " + Alltrim(lcCentru_profit) + " " + Padl(Int(lnLuna1),2,'0') + '.' + Alltrim(Str(lnAn1,4,0)) + ' - ' + Padl(Int(lnLuna2),2,'0') + '.' + Alltrim(Str(lnAn2,4,0))
|
|
gcAntet = Alltrim(gcAntet) + " - Centru: "+ lcCentru_profit
|
|
Case llEval_valuta
|
|
lcCaption = "Evaluarea Balantei in valuta 1 "+lcValuta+ "=" +Alltrim(Str(lnCurs,10,gnPCurs))+" LEI"
|
|
gcAntet = Alltrim(gcAntet) + " " + lcCaption
|
|
Otherwise
|
|
gcAntet = Alltrim(gcAntet)
|
|
Endcase
|
|
|
|
*If llCentru Or llEval_valuta
|
|
With loBal
|
|
.lb_titlu_alb_b121.Caption = lcCaption + ;
|
|
IIF(!EMPTY(tnAn2), " " + ALLTRIM(PADL(ROUND(tnLuna1,0),2,'0')) + '/' + ALLTRIM(PADL(ROUND(tnAn1,0),4,'0')) + '-' + ALLTRIM(PADL(ROUND(tnLuna2,0),2,'0')) + '/' + ALLTRIM(PADL(ROUND(tnAn2,0),4,'0')), "")
|
|
*Endif
|
|
*!* modificare 23.02.2008
|
|
.lCentru = llCentru
|
|
.nluna1 = IIF(EMPTY(tnLuna1), 0, ROUND(tnLuna1,0))
|
|
.nan1 = IIF(EMPTY(tnAn1), 0, ROUND(tnAn1,0))
|
|
.nluna2 = IIF(EMPTY(tnLuna2), 0, ROUND(tnLuna2,0))
|
|
.nan2 = IIF(EMPTY(tnAn2), 0, ROUND(tnAn2,0))
|
|
.cbal = lcBal
|
|
.cprocedurainainte = lcProceduraInainte
|
|
*!* modificare 23.02.2008 ^
|
|
Endwith
|
|
loBal.Show(1)
|
|
|
|
If llCentru Or llEval_valuta
|
|
gcAntet =lcAntetOriginal
|
|
Endif
|
|
|
|
If Used("tbalanta")
|
|
Use In tbalanta
|
|
Endif
|
|
|
|
Endproc && viz_balanta
|
|
******************************************* SFARSIT: viz_balanta *******************************************
|
|
********************************************************************************************************************
|
|
*** CREEAZA TBALANTA DIN BAL+BALANA+TOTALURI
|
|
Procedure make_tbalanta
|
|
Parameters tlCentru, tnLuna1, tnAn1, tnLuna2, tnAn2, tcBal, tlNuContAlternativ
|
|
* tcBal = "bal/bal_c8/bal_c9" && balanta clasele 1-7/ balanta clasa 8 / balanta clasa 9
|
|
* tlNuContAlternativ: default (.F.) .T. nu se inlocuieste cont/acont cu cont_alt, acont_alt
|
|
|
|
Local llCentru, lcBal, lcVbal, lcVBalana
|
|
llCentru = tlCentru
|
|
|
|
&& DACA SUNT PE O SUCURSALA - SELECTEZ DOAR INREGISTRARILE DE PE SUCURSALA CURENTA
|
|
Local lcFiltruSucursala
|
|
lcFiltruSucursala = ""
|
|
If !Isnull(gnIdSucursala)
|
|
lcFiltruSucursala = Substr(gcCondSucursala,6)
|
|
Endif
|
|
|
|
If Empty(tcBal) Or Pcount() < 6
|
|
lcBal = "bal"
|
|
Else
|
|
lcBal = Iif(Lower(tcBal)$"bal/bal_c8/bal_c9", Lower(tcBal), "bal")
|
|
Endif
|
|
lcVbal = "VBAL"
|
|
lcVBalana = "VBALANA"
|
|
|
|
Do Case
|
|
Case lcBal = "bal"
|
|
lcVbal = "VBAL"
|
|
lcVBalana = "VBALANA"
|
|
Case lcBal = "bal_c8"
|
|
lcVbal = "VBAL_C8"
|
|
lcVBalana = "VBALANA_C8"
|
|
Case lcBal = "bal_c9"
|
|
lcVbal = "VBAL_C9"
|
|
lcVBalana = "VBALANA_C9"
|
|
Endcase
|
|
|
|
If Used('TBALANTA')
|
|
Use In tbalanta
|
|
Endif
|
|
|
|
Local lnAn1, lnLuna1, lnAn2, lnLuna2
|
|
If Pcount() < 5 Or Empty(tnAn1) Or Empty(tnLuna1) Or Empty(tnAn2) Or Empty(tnLuna2)
|
|
lnAn1 = gnan
|
|
lnLuna1 = gnluna
|
|
lnAn2 = gnan
|
|
lnLuna2 = gnluna
|
|
Else
|
|
lnAn1 = tnAn1
|
|
lnLuna1 = tnLuna1
|
|
lnAn2 = tnAn2
|
|
lnLuna2 = tnLuna2
|
|
Endif
|
|
|
|
LNPRECEDENT=0
|
|
|
|
|
|
|
|
Local lcSelect, lcFiltru, lcSchema1, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal
|
|
Store '' To lcSelect, lcFiltru, lcSchema1, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal
|
|
|
|
Private potbal1, potbal2
|
|
Store Null To potbal1, potbal2
|
|
|
|
&& PARAMETERS tcnume, tcalias, tcselect, tcfiltru, tcschema, tcorder, tlAfisare, tcgroup, tlModParam, tcFiltruOriginal
|
|
If llCentru
|
|
Private pcselect1,pcfiltru1,pcschema1,potbal1,tbal1,pcselect2,pcfiltru2,pcschema2,potbal2,tbal2
|
|
Store "" To potbal1,potbal2
|
|
lcSelect = [select rpad(SUBSTR(cont,1,1),4,' ') as g1,rpad(SUBSTR(cont,1,2),4,' ') as g2,rpad(SUBSTR(cont,1,3),4,' ') as g3,]+;
|
|
[cont as g4,cont,rpad(' ',4,' ') acont, id_bal,denumire, '' as cont_alt, '' as cod,precdeb,preccred,ruldeb,rulcred,]+;
|
|
[totdeb,totcred,solddeb,soldcred,precdeb1,preccred1,4 as bnivel, difana, ]+;
|
|
[cast (null as number(5)) as id_sucursala, '' as sucursala ] + ;
|
|
[from mg_tmp_bal]
|
|
lcFiltru = []
|
|
lcSchema = []
|
|
lcOrder = []
|
|
llAfisare = .F.
|
|
lcGroup = []
|
|
llModParam = .T.
|
|
lcFiltruOriginal = [AN * 12 + LUNA BETWEEN ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ AND ] + Alltrim(Str(lnAn2*12+lnLuna2))
|
|
|
|
gencursor('potbal1','tbal1', lcSelect, lcFiltru, lcSchema1, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
|
|
potbal1.ca_baza1.afisare()
|
|
|
|
lcSelect = [select rpad(SUBSTR(cont,1,1),4,CHR(32)) as g1,rpad(SUBSTR(cont,1,2),4,CHR(32)) as g2,rpad(SUBSTR(cont,1,3),4,CHR(32)) as g3,]+;
|
|
[cont as g4,cont,acont, id_balana as id_bal,denumire, '' as cont_alt, '' as cod,precdeb,preccred,ruldeb,rulcred,]+;
|
|
[totdeb,totcred,solddeb,soldcred,precdeb1,preccred1, 5 as bnivel, 0 as difana, ]+;
|
|
[cast (null as number(5)) as id_sucursala, '' as sucursala ] + ;
|
|
[from mg_tmp_balana]
|
|
lcFiltru = []
|
|
lcOrder = []
|
|
lcSchema = []
|
|
llAfisare=.F.
|
|
lcGroup = []
|
|
llModParam = .T.
|
|
lcFiltruOriginal=[AN * 12 + LUNA BETWEEN ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ AND ] + Alltrim(Str(lnAn2*12+lnLuna2))
|
|
|
|
gencursor('potbal2','tbal2', lcSelect, lcFiltru, lcSchema1, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
|
|
potbal2.ca_baza1.afisare()
|
|
Else
|
|
*** BALANTA SINTETICA CU TOATE INREGISTRARILE
|
|
*!* 25.01.2011
|
|
*!* lcSelect = [select rpad(SUBSTR(cont,1,1),4,' ') as g1, rpad(SUBSTR(cont,1,2),4,' ') as g2, rpad(SUBSTR(cont,1,3),4,' ') as g3, ]+;
|
|
*!* [cont as g4, cont,rpad(' ',4,' ') acont, id_bal, denumire, precdeb, preccred, ruldeb, rulcred, ]+;
|
|
*!* [totdeb, totcred, solddeb, soldcred, precdeb1, preccred1, 4 as bnivel, difana, ]+;
|
|
*!* [id_sucursala, sucursala ] + ;
|
|
*!* [from ] + lcVbal
|
|
|
|
lcSelect = [select rpad(SUBSTR(cont,1,1),4,' ') as g1, rpad(SUBSTR(cont,1,2),4,' ') as g2, rpad(SUBSTR(cont,1,3),4,' ') as g3, ]+;
|
|
[cont as g4, cont,rpad(' ',4,' ') acont, MAX(id_bal) as id_bal, denumire, ] + ;
|
|
[cont_alt, cod, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then precdeb else 0 end) as precdeb, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then preccred else 0 end) as preccred, ] + ;
|
|
[SUM(ruldeb) as ruldeb, SUM(rulcred) as rulcred, ]+;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then totdeb else 0 end) as totdeb, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then totcred else 0 end ) as totcred, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then solddeb else 0 end) as solddeb, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then soldcred else 0 end ) as soldcred, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then precdeb1 else 0 end) as precdeb1, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then preccred1 else 0 end) as preccred1, ] + ;
|
|
[4 as bnivel, MAX(difana) as difana, id_sucursala, sucursala ] + ;
|
|
[from ] + lcVbal
|
|
|
|
lcFiltru = []
|
|
lcSchema = []
|
|
lcOrder = []
|
|
llAfisare = .F.
|
|
lcGroup = [cont, denumire, cont_alt, cod, id_sucursala, sucursala]
|
|
llModParam = .T.
|
|
lcFiltruOriginal = [AN * 12 + LUNA BETWEEN ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ AND ] + Alltrim(Str(lnAn2*12+lnLuna2)) + gcCondSucursala
|
|
|
|
gencursor('potbal1','tbal1', lcSelect, lcFiltru, lcSchema1, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
|
|
potbal1.ca_baza1.afisare()
|
|
|
|
*** BALANTA ANALITICA CU TOATE INREGISTRARILE
|
|
*!* lcSelect = [select rpad(SUBSTR(cont,1,1), 4, CHR(32)) as g1, rpad(SUBSTR(cont,1,2), 4, CHR(32)) as g2, rpad(SUBSTR(cont,1,3),4,CHR(32)) as g3,]+;
|
|
*!* [cont as g4, cont, acont, id_balana as id_bal, denumire, precdeb, preccred, ruldeb, rulcred, ]+;
|
|
*!* [totdeb, totcred, solddeb, soldcred, precdeb1, preccred1, 5 as bnivel, 0 as difana, ]+;
|
|
*!* [id_sucursala, sucursala ] + ;
|
|
*!* [from ] + lcVBalana
|
|
|
|
lcSelect = [select rpad(SUBSTR(cont,1,1), 4, CHR(32)) as g1, rpad(SUBSTR(cont,1,2), 4, CHR(32)) as g2, rpad(SUBSTR(cont,1,3),4,CHR(32)) as g3,]+;
|
|
[cont as g4, cont, acont, MAX(id_balana) as id_bal, denumire, ] + ;
|
|
[cont_alt, cod, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then precdeb else 0 end) as precdeb, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then preccred else 0 end) as preccred, ] + ;
|
|
[SUM(ruldeb) as ruldeb, SUM(rulcred) as rulcred, ]+;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then totdeb else 0 end) as totdeb, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then totcred else 0 end ) as totcred, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then solddeb else 0 end) as solddeb, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn2*12+lnLuna2)) + [ then soldcred else 0 end ) as soldcred, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then precdeb1 else 0 end) as precdeb1, ] + ;
|
|
[SUM(case when an*12+luna = ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ then preccred1 else 0 end) as preccred1, ] + ;
|
|
[5 as bnivel, 0 as difana, id_sucursala, sucursala ] + ;
|
|
[from ] + lcVBalana
|
|
*!* 25.01.2011 ^
|
|
lcFiltru = []
|
|
lcOrder = []
|
|
lcSchema = []
|
|
llAfisare=.F.
|
|
lcGroup = [cont, acont, denumire, cont_alt, cod, id_sucursala, sucursala]
|
|
llModParam = .T.
|
|
lcFiltruOriginal=[AN * 12 + LUNA BETWEEN ] +Alltrim(Str(lnAn1*12+lnLuna1)) + [ AND ] + Alltrim(Str(lnAn2*12+lnLuna2)) + gcCondSucursala
|
|
|
|
gencursor('potbal2','tbal2', lcSelect, lcFiltru, lcSchema1, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
|
|
potbal2.ca_baza1.afisare()
|
|
Endif
|
|
|
|
Local lcBal1
|
|
lcBal1 = 'TBAL1'
|
|
|
|
*!* 12.02.2008
|
|
&& daca sunt pe o mama - cumulez balantele de pe sucursale
|
|
&& TOTALURILE PE CLASE, GRUPE LE FAC PE BALANTA CENTRALIZATA && TG01 in loc de TBAL1
|
|
If glEMama
|
|
|
|
*!* 07.03.2008
|
|
*!* SELECTEZ CONT, PRECDEB, PRECCRED CENTRALIZATE
|
|
*!* SELECTEZ PRECDEB, PRECCRED DIN CURSOR SI RULAJELE DIN SUMA(SUCURSALE.RULAJE)
|
|
*!* DACA FAC DOAR SUMA(PRECDEB), SUMA(PRECCRED) DIN SUCURSALE PIERD SOLDAREA SUMELOR LA 1 IANUARIE
|
|
|
|
*!* 01.04.2008
|
|
*!* am luat sum(precdeb1) din luna curenta in loc de sum(precdeb) din luna ianuarie
|
|
TEXT to lcSql TEXTMERGE noshow
|
|
select nvl(a.cont, b.cont) as cont,
|
|
case when Nvl(a.precdeb,0) > Nvl(a.preccred,0) then abs(Nvl(a.precdeb,0)-Nvl(a.preccred,0)) else 0 end + nvl(b.debit,0) as precdeb,
|
|
case when Nvl(a.precdeb,0) < Nvl(a.preccred,0) then abs(Nvl(a.precdeb,0)-Nvl(a.preccred,0)) else 0 end + nvl(b.credit,0) as preccred
|
|
from
|
|
(select cont, sum(precdeb1) as precdeb, sum(preccred1) as preccred
|
|
from bal
|
|
where an = <<lnAn1>>
|
|
and luna = <<lnLuna1>>
|
|
group by cont) a full join
|
|
(select cont, sum((case when 2005*12+7> an*12+luna
|
|
and 2005*12+7<=pack_sesiune.getan()*12+pack_sesiune.getluna()
|
|
then ROUND(ruldeb / 10000,2) else ruldeb end)) as debit, sum((case when 2005*12+7> an*12+luna
|
|
and 2005*12+7<=pack_sesiune.getan()*12+pack_sesiune.getluna()
|
|
then ROUND(rulcred / 10000,2) else rulcred end)) as credit
|
|
from bal
|
|
where an = <<lnAn1>>
|
|
and luna between 1 and <<lnLuna1-1>>
|
|
group by cont) b on a.cont = b.cont
|
|
ENDTEXT
|
|
|
|
lnSucces = goExecutor.oExecute(lcSql, "crsBalPrecedente")
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare)
|
|
Create Cursor crsBalPrecedente (Cont c(4), precdeb N(10,2), preccred N(10,2))
|
|
Endif
|
|
|
|
TEXT to lcSql TEXTMERGE noshow
|
|
select nvl(a.cont, b.cont) as cont, nvl(a.acont, b.acont) as acont,
|
|
case when Nvl(a.precdeb,0) > Nvl(a.preccred,0) then abs(Nvl(a.precdeb,0)-Nvl(a.preccred,0)) else 0 end + nvl(b.debit,0) as precdeb,
|
|
case when Nvl(a.precdeb,0) < Nvl(a.preccred,0) then abs(Nvl(a.precdeb,0)-Nvl(a.preccred,0)) else 0 end + nvl(b.credit,0) as preccred
|
|
from
|
|
(select cont, acont, sum(precdeb1) as precdeb, sum(preccred1) as preccred
|
|
from balana
|
|
where an = <<lnAn1>>
|
|
and luna = <<lnLuna1>>
|
|
group by cont,acont) a full join
|
|
(select cont, acont, sum((case when 2005*12+7> an*12+luna
|
|
and 2005*12+7<=pack_sesiune.getan()*12+pack_sesiune.getluna()
|
|
then ROUND(ruldeb / 10000,2) else ruldeb end)) as debit, sum((case when 2005*12+7> an*12+luna
|
|
and 2005*12+7<=pack_sesiune.getan()*12+pack_sesiune.getluna()
|
|
then ROUND(rulcred / 10000,2) else rulcred end)) as credit
|
|
from balana
|
|
where an = <<lnAn1>>
|
|
and luna between 1 and <<lnLuna1-1>>
|
|
group by cont,acont) b on a.cont = b.cont and a.acont = b.acont
|
|
ENDTEXT
|
|
|
|
lnSucces = goExecutor.oExecute(lcSql, "crsBalanaPrecedente")
|
|
If lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare)
|
|
Create Cursor crsBalanaPrecedente (Cont c(4), acont c(4), precdeb N(10,2), preccred N(10,2))
|
|
Endif
|
|
|
|
|
|
Sele G1, G2, G3, G4,;
|
|
Cont, acont, 0000000000000 As id_bal, denumire, ;
|
|
cont_alt, cod, ;
|
|
SUM(precdeb) As precdeb, Sum(preccred) As preccred,;
|
|
SUM(ruldeb) As ruldeb, Sum(rulcred) As rulcred, Sum(totdeb) As totdeb, Sum(totcred) As totcred,;
|
|
SUM(solddeb) As solddeb, Sum(soldcred)As soldcred, ;
|
|
SUM(precdeb1) As precdeb1, Sum(preccred1) As preccred1,;
|
|
6 As bnivel, Max(difana) As difana, ;
|
|
00000 As id_sucursala, Space(100) As sucursala ;
|
|
FROM tbal1 ;
|
|
GROUP By G1, G2, G3, G4, Cont, acont, denumire, cont_alt, cod ;
|
|
INTO Cursor TG01a Readwrite
|
|
|
|
Sele G1, G2, G3, G4,;
|
|
Cont, acont, 0000000000000 As id_bal, denumire, ;
|
|
cont_alt, cod, ;
|
|
SUM(precdeb) As precdeb, Sum(preccred) As preccred,;
|
|
SUM(ruldeb) As ruldeb, Sum(rulcred) As rulcred, Sum(totdeb) As totdeb, Sum(totcred) As totcred,;
|
|
SUM(solddeb) As solddeb, Sum(soldcred)As soldcred, ;
|
|
SUM(precdeb1) As precdeb1, Sum(preccred1) As preccred1,;
|
|
7 As bnivel, 0 As difana, ;
|
|
00000 As id_sucursala, Space(100) As sucursala ;
|
|
FROM tbal2 ;
|
|
GROUP By G1, G2, G3, G4, Cont, acont, denumire, cont_alt, cod ;
|
|
INTO Cursor TG02a Readwrite
|
|
|
|
*** BALANTA SINTETICA CENTRALIZATA
|
|
Sele a.G1, a.G2, a.G3, a.G4,;
|
|
a.Cont, a.acont, a.id_bal, a.denumire, ;
|
|
a.cont_alt, a.cod, ;
|
|
Nvl(b.precdeb, Cast(0 As N(16,4))) As precdeb, Nvl(b.preccred, Cast(0 As N(16,4))) As preccred,;
|
|
a.ruldeb, a.rulcred, Nvl(b.precdeb,0)+a.ruldeb As totdeb, Nvl(b.preccred,0)+a.rulcred As totcred,;
|
|
Iif(Nvl(b.precdeb,0)+a.ruldeb > Nvl(b.preccred,0)+a.rulcred, Abs(Nvl(b.precdeb,0)+a.ruldeb - Nvl(b.preccred,0) - a.rulcred), Cast(0 As N(16,4))) As solddeb, ;
|
|
Iif(Nvl(b.precdeb,0)+a.ruldeb < Nvl(b.preccred,0)+a.rulcred, Abs(Nvl(b.precdeb,0)+a.ruldeb - Nvl(b.preccred,0) - a.rulcred), Cast(0 As N(16,4))) As soldcred, ;
|
|
Iif(a.precdeb1 > a.preccred1, Abs(a.precdeb1-a.preccred1), Cast(0 As N(16,4))) As precdeb1, ;
|
|
Iif(a.precdeb1 < a.preccred1, Abs(a.precdeb1-a.preccred1), Cast(0 As N(16,4))) As preccred1, ;
|
|
a.bnivel, a.difana, ;
|
|
a.id_sucursala, a.sucursala ;
|
|
FROM TG01a a Left Join crsBalPrecedente b On a.Cont = b.Cont ;
|
|
INTO Cursor TG01 Readwrite
|
|
|
|
*** BALANTA ANALITICA CENTRALIZATA
|
|
Sele a.G1, a.G2, a.G3, a.G4,;
|
|
a.Cont, a.acont, a.id_bal, a.denumire, ;
|
|
a.cont_alt, a.cod, ;
|
|
Nvl(b.precdeb, Cast(0 As N(16,4))) As precdeb, Nvl(b.preccred, Cast(0 As N(16,4))) As preccred,;
|
|
a.ruldeb, a.rulcred, Nvl(b.precdeb,0)+a.ruldeb As totdeb, Nvl(b.preccred,0)+a.rulcred As totcred,;
|
|
Iif(Nvl(b.precdeb,0)+a.ruldeb > Nvl(b.preccred,0)+a.rulcred, Abs(Nvl(b.precdeb,0)+a.ruldeb - Nvl(b.preccred,0) - a.rulcred), Cast(0 As N(16,4))) As solddeb, ;
|
|
Iif(Nvl(b.precdeb,0)+a.ruldeb < Nvl(b.preccred,0)+a.rulcred, Abs(Nvl(b.precdeb,0)+a.ruldeb - Nvl(b.preccred,0) - a.rulcred), Cast(0 As N(16,4))) As soldcred, ;
|
|
Iif(a.precdeb1 > a.preccred1, Abs(a.precdeb1-a.preccred1), Cast(0 As N(16,4))) As precdeb1, ;
|
|
Iif(a.precdeb1 < a.preccred1, Abs(a.precdeb1-a.preccred1), Cast(0 As N(16,4))) As preccred1, ;
|
|
a.bnivel, a.difana, ;
|
|
a.id_sucursala, a.sucursala ;
|
|
FROM TG02a a Left Join crsBalanaPrecedente b On a.Cont = b.Cont And a.acont = b.acont ;
|
|
INTO Cursor TG02 Readwrite
|
|
|
|
*!* 07.03.2008 ^
|
|
|
|
lcBal1 = 'tg01'
|
|
Else
|
|
Sele G1, G2, G3, G4,;
|
|
Cont, acont, 0000000000000 As id_bal, denumire, ;
|
|
cont_alt, cod, ;
|
|
SUM(precdeb) As precdeb, Sum(preccred) As preccred,;
|
|
SUM(ruldeb) As ruldeb, Sum(rulcred) As rulcred, Sum(totdeb) As totdeb, Sum(totcred) As totcred,;
|
|
SUM(solddeb) As solddeb, Sum(soldcred)As soldcred, ;
|
|
SUM(precdeb1) As precdeb1, Sum(preccred1) As preccred1,;
|
|
5 As bnivel, Max(difana) As difana, ;
|
|
00000 As id_sucursala, Space(100) As sucursala ;
|
|
FROM tbal1 ;
|
|
WHERE .F. ;
|
|
GROUP By G1, G2, G3, G4, Cont, acont, denumire, cont_alt, cod ;
|
|
INTO Cursor TG01
|
|
|
|
Sele G1, G2, G3, G4,;
|
|
Cont, acont, 0000000000000 As id_bal, denumire, ;
|
|
cont_alt, cod, ;
|
|
SUM(precdeb) As precdeb, Sum(preccred) As preccred,;
|
|
SUM(ruldeb) As ruldeb, Sum(rulcred) As rulcred, Sum(totdeb) As totdeb, Sum(totcred) As totcred,;
|
|
SUM(solddeb) As solddeb, Sum(soldcred)As soldcred, ;
|
|
SUM(precdeb1) As precdeb1, Sum(preccred1) As preccred1,;
|
|
5 As bnivel, 0 As difana, ;
|
|
00000 As id_sucursala, Space(100) As sucursala ;
|
|
FROM tbal2 ;
|
|
WHERE .F. ;
|
|
GROUP By G1, G2, G3, G4, Cont, acont, denumire, cont_alt, cod ;
|
|
INTO Cursor TG02
|
|
|
|
lcBal1 = 'tbal1'
|
|
Endif
|
|
*!* 12.02.2008 ^
|
|
|
|
|
|
Sele G1, Space(4) As G2, Space(4) As G3, Space(4) As G4,;
|
|
SPACE(4) As Cont, Space(4) As acont, 0000000000000 As id_bal, Padr("TOTAL "+Alltrim(G1),30," ") As denumire, ;
|
|
SPACE(20) As cont_alt, Space(20) As cod, ;
|
|
SUM(precdeb) As precdeb, Sum(preccred) As preccred,;
|
|
SUM(ruldeb) As ruldeb, Sum(rulcred) As rulcred, Sum(totdeb) As totdeb, Sum(totcred) As totcred,;
|
|
SUM(solddeb) As solddeb, Sum(soldcred)As soldcred, ;
|
|
SUM(precdeb1) As precdeb1, Sum(preccred1) As preccred1,;
|
|
1 As bnivel, 0 As difana, ;
|
|
00000 As id_sucursala, Space(100) As sucursala ;
|
|
FROM &lcBal1;
|
|
GROUP By G1 ;
|
|
INTO Cursor TG1
|
|
|
|
Sele G1, G2, Space(4) As G3, Space(4) As G4, ;
|
|
SPACE(4) As Cont, Space(4) As acont, 0000000000000 As id_bal, Padr("TOTAL "+Alltrim(G2),30," ")As denumire, ;
|
|
SPACE(20) As cont_alt, Space(20) As cod, ;
|
|
SUM(precdeb) As precdeb, Sum(preccred) As preccred, ;
|
|
SUM(ruldeb) As ruldeb, Sum(rulcred) As rulcred, Sum(totdeb) As totdeb, Sum(totcred) As totcred,;
|
|
SUM(solddeb) As solddeb, Sum(soldcred) As soldcred, ;
|
|
SUM(precdeb1) As precdeb1, Sum(preccred1) As preccred1, ;
|
|
2 As bnivel, 0 As difana, ;
|
|
00000 As id_sucursala, Space(100) As sucursala ;
|
|
FROM &lcBal1 ;
|
|
GROUP By G1, G2 ;
|
|
INTO Cursor TG2
|
|
|
|
Sele G1, G2, G3, Space(4) As G4,;
|
|
SPACE(4) As Cont, Space(4) As acont, 0000000000000 As id_bal, Padr("TOTAL "+Alltrim(G3),30," ") As denumire, ;
|
|
SPACE(20) As cont_alt, Space(20) As cod, ;
|
|
SUM(precdeb) As precdeb, Sum(preccred) As preccred,;
|
|
SUM(ruldeb) As ruldeb, Sum(rulcred) As rulcred, Sum(totdeb) As totdeb, Sum(totcred) As totcred,;
|
|
SUM(solddeb) As solddeb, Sum(soldcred) As soldcred, ;
|
|
SUM(precdeb1) As precdeb1, Sum(preccred1) As preccred1,;
|
|
3 As bnivel, 0 As difana, ;
|
|
00000 As id_sucursala, Space(100) As sucursala ;
|
|
FROM &lcBal1 ;
|
|
GROUP By G1, G2, G3 ;
|
|
INTO Cursor TG3
|
|
|
|
* 20 de caractere la cont, acont pentru ca completez ulterior cu cont_alt C(20)
|
|
Select g1,g2,g3,g4,PADR(cont,20, ' ') cont,PADR(acont, 20, ' ') acont,id_bal,denumire,cont_alt,cod,precdeb1,preccred1,precdeb,preccred,ruldeb,rulcred,totdeb,totcred,solddeb,soldcred,bnivel,difana,id_sucursala,sucursala, .F. As bifa, Space(8) As g5 From TG01 ; && BALANTA SINTETICA CENTRALIZATA / SAU CURSOR GOL
|
|
Union ;
|
|
Select g1,g2,g3,g4,PADR(cont,20, ' ') cont,PADR(acont, 20, ' ') acont,id_bal,denumire,cont_alt,cod,precdeb1,preccred1,precdeb,preccred,ruldeb,rulcred,totdeb,totcred,solddeb,soldcred,bnivel,difana,id_sucursala,sucursala, .F. As bifa, Space(8) As g5 From tbal1 ; && BALANTA SINTETICA CU TOATE INREGISTRARILE
|
|
Union ;
|
|
SELECT g1,g2,g3,g4,PADR(cont,20, ' ') cont,PADR(acont, 20, ' ') acont,id_bal,denumire,cont_alt,cod,precdeb1,preccred1,precdeb,preccred,ruldeb,rulcred,totdeb,totcred,solddeb,soldcred,bnivel,difana,id_sucursala,sucursala, .F. As bifa, Space(8) As g5 From TG3 ; && TOTALURI GRUPA 3 DIN BALANTA CENTRALIZATA / SUCURSALA / FIRMA INDEPENDENTA
|
|
Union ;
|
|
SELECT g1,g2,g3,g4,PADR(cont,20, ' ') cont,PADR(acont, 20, ' ') acont,id_bal,denumire,cont_alt,cod,precdeb1,preccred1,precdeb,preccred,ruldeb,rulcred,totdeb,totcred,solddeb,soldcred,bnivel,difana,id_sucursala,sucursala, .F. As bifa, Space(8) As g5 From TG2 ; && TOTALURI GRUPA 2 DIN BALANTA CENTRALIZATA / SUCURSALA / FIRMA INDEPENDENTA
|
|
Union ;
|
|
SELECT g1,g2,g3,g4,PADR(cont,20, ' ') cont,PADR(acont, 20, ' ') acont,id_bal,denumire,cont_alt,cod,precdeb1,preccred1,precdeb,preccred,ruldeb,rulcred,totdeb,totcred,solddeb,soldcred,bnivel,difana,id_sucursala,sucursala, .F. As bifa, Space(8) As g5 From TG1 ; && TOTALURI GRUPA 1 DIN BALANTA CENTRALIZATA / SUCURSALA / FIRMA INDEPENDENTA
|
|
Union ;
|
|
SELECT g1,g2,g3,g4,PADR(cont,20, ' ') cont,PADR(acont, 20, ' ') acont,id_bal,denumire,cont_alt,cod,precdeb1,preccred1,precdeb,preccred,ruldeb,rulcred,totdeb,totcred,solddeb,soldcred,bnivel,difana,id_sucursala,sucursala, .F. As bifa, Space(8) As g5 From tbal2 ; && BALANTA ANALITICA CU TOATE INREGISTRARILE
|
|
Union ;
|
|
SELECT g1,g2,g3,g4,PADR(cont,20, ' ') cont,PADR(acont, 20, ' ') acont,id_bal,denumire,cont_alt,cod,precdeb1,preccred1,precdeb,preccred,ruldeb,rulcred,totdeb,totcred,solddeb,soldcred,bnivel,difana,id_sucursala,sucursala, .F. As bifa, Space(8) As g5 From TG02 ; && BALANTA ANALITICA CENTRALIZATA / SAU CURSOR GOL
|
|
ORDER By G1,G2,G3,G4,sucursala ;
|
|
Into Cursor tbalanta Readwrite
|
|
|
|
|
|
Use In tbal1
|
|
Use In tbal2
|
|
Use In TG01
|
|
Use In TG02
|
|
Use In TG1
|
|
Use In TG2
|
|
Use In TG3
|
|
|
|
Select tbalanta
|
|
Replace All g5 With Left(G1,1)+Substr(G2,2,1)+Substr(G3,3,1)
|
|
Replace All g5 With Allt(g5)+Iif(bnivel<4,'z',Substr(G4,4,1))
|
|
Replace All g5 With Left(Alltrim(g5)+'xxxx',4)+acont
|
|
Replace All g5 With Left(Alltrim(g5)+'zzzzzzzz',8)
|
|
|
|
* Completez contul alternativ
|
|
IF !m.tlNuContAlternativ
|
|
REPLACE ALL cont WITH cont_alt FOR EMPTY(NVL(acont,'')) AND !EMPTY(NVL(cont_alt,'')) && cont sintetic alternativ
|
|
REPLACE ALL acont WITH cont_alt FOR !EMPTY(NVL(acont,'')) AND !EMPTY(NVL(cont_alt,'')) && cont analitic alternativ
|
|
ENDIF
|
|
|
|
*lcIndex = ADDBS(gcTempPath) + 'tbalanta.cdx'
|
|
lcIndex = Addbs(gcTempPath) + 'tbalanta_'+Alltrim(Sys(2))+'.cdx' && ca sa pot deschid balanta din cont si manager in acelasi timp
|
|
Index On g5 Tag g5 Of (lcIndex)
|
|
Set Order To g5
|
|
|
|
Return "TBALANTA"
|
|
Endproc && MAKE_TBALANTA
|
|
******************************************************************************************
|
|
Procedure Eval_balanta
|
|
Parameters tnCurs
|
|
|
|
If tnCurs = 0
|
|
tnCurs = 1
|
|
Endif
|
|
|
|
Select tbalanta
|
|
|
|
Repl All precdeb1 With Round(precdeb1/tnCurs,gnPval)
|
|
Repl All preccred1 With Round(preccred1/tnCurs,gnPval)
|
|
Repl All precdeb With Round(precdeb/tnCurs,gnPval)
|
|
Repl All preccred With Round(preccred/tnCurs,gnPval)
|
|
Repl All solddeb With Round(solddeb/tnCurs,gnPval)
|
|
Repl All soldcred With Round(soldcred/tnCurs,gnPval)
|
|
Repl All ruldeb With Round(ruldeb/tnCurs,gnPval)
|
|
Repl All rulcred With Round(rulcred/tnCurs,gnPval)
|
|
Repl All totdeb With Round(totdeb/tnCurs,gnPval)
|
|
Repl All totcred With Round(totcred/tnCurs,gnPval)
|
|
|
|
Endproc && eval_balanta
|