Files
vfp_roaauto/COMUN/programe/oredeschid.prg

300 lines
11 KiB
Plaintext

*!* 12.01.2011
*!* marius.mutu
*!* deschidluna + parametru: tlProgramat
*!* deschiderea / redeschiderea de luna se face automat de catre un job in baza de date noaptea
*******************************************
* PROCEDURE deschiluna( )
* Data/ora : 11/15/04, 17:13:14
* autor : liana.macinic
* descriere:
****** PARAMETER BLOCK **************
* Parametri : 1
* parametru: tdeschid = este .t. daca procedura se foloseste pentru deschidere de luna
* este .f. daca procedura se foloseste pentru redeschidere de luna
* parametru: tcTipRefacere: refacere_completa, refacere_precedente_rulaje
* refacere_completa - stergere si refacere
* parametru: tlProgramat: deschiderea / redeschiderea de luna se face automat de catre un job in baza de date noaptea
*******************************************
Procedure deschidluna
Lparameters tlDeschid,tcTipRefacere, tlProgramat
Local lcExplicatie,lcConfirmare,lcMesaj,loFrm
If tlDeschid
lcAn = Alltrim(Str(Year(Gomonth(Date(gnAn,gnLuna,1),1))))
lcLuna = Alltrim(Str(Month(Gomonth(Date(gnAn,gnLuna,1),1))))
lcExplicatie = [Deschidere de lunã]
lcConfirmare = [Doriti sã deschideti luna ] + lcLuna + [ / ] + lcAn + [ ?]
lcMesaj = [S-a deschis luna ] + lcLuna + [ / ] + lcAn + [ !]
Else
lcAn = Alltrim(Str(gnAn))
lcLuna = Alltrim(Str(gnLuna))
lcExplicatie = [Redeschidere de luna]
lcConfirmare = [Doriti sã redeschideti luna ] + lcLuna + [ / ] + lcAn + [ ?]
lcMesaj = [S-a redeschis luna ] + lcLuna + [ / ] + lcAn + [ !]
IF m.glLunaInchisa
AMESSAGEBOX('Luna este inchisa! Nu se poate face redeschiderea de luna!',0+64,_screen.Caption)
RETURN
ENDIF
ENDIF
*!* modificare v 2.4.0
private pnTvaIncasare, pnImpozitProfit
pnTvaIncasare = goCalendar.tva_incasare
pnImpozitProfit = goCalendar.impozit_profit
loFrm = createobject("frm_deschidere_luna_cont",lcExplicatie,lcConfirmare,tlDeschid)
loFrm.Show()
if gnButon = 1
*!* If AMESSAGEBOX(lcConfirmare,4+32,lcExplicatie)=6
*!* modificare v 2.4.0 ^
_Screen.MousePointer = 11
*!* modificare v 2.4.0 : am adaugat pnTvaIncasare
lcSql = [begin deschidere_luna(] + lcAn + [,] + lcLuna + [,] + Iif(tlDeschid,[1],[0]) + [,] + ;
IIF(EMPTY(tcTipRefacere),[1],IIF(UPPER(ALLTRIM(tcTipRefacere)) = [REFACERE_COMPLETA],[3],[1])) + [,?pnTvaIncasare,?gnIdUtil); end;]
lnSucces = goExecutor.oExecute(lcSql)
_Screen.MousePointer = 0
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,64,"Eroare")
Else
AMESSAGEBOX(lcMesaj,48,lcExplicatie)
If tlDeschid
lnSucces = update_calendar()
If lnSucces < 0
AMESSAGEBOX('Eroare la actualizarea calendarului!' + CHR(13)+CHR(10) + goExecutor.cEroare, 16, "Eroare")
Return
Endif
Select calendar
Locate For luna = VAL(lcLuna) And anul = VAL(lcAn)
If Found()
Scatter Name goCalendar
Else
AMESSAGEBOX('Eroare la citirea lunii in calendar!' + CHR(13)+CHR(10) + goExecutor.cEroare, 16, "Eroare")
Return
Endif
Do OINIT_OPTIUNI.prg
Endif
Endif
Endif
Release pnTvaIncasare && modificare v 2.4.0
Endproc
*******************************************
*!* PROCEDURE deschidluna
*!* PARAMETERS tldeschid, tcTipRefacere
*!*
*!* LOCAL lnDuplicatTva
*!* lnDuplicatTva = 0
*!* PRIVATE plDeschid, pnDeschid
*!* IF !tlDeschid AND glLunaInchisa
*!* MESSAGEBOX('Luna este blocata! Nu se poate redeschide luna.', 0+64, _screen.Caption)
*!* RETURN
*!* ENDIF
*!* IF EMPTY(tldeschid)
*!* STORE .F. TO plDeschid
*!* pnDeschid = 0
*!* ELSE
*!* plDeschid = tldeschid
*!* pnDeschid = 1
*!* ENDIF
*!* IF EMPTY(tcTipRefacere) OR TYPE('tcTipRefacere') <> 'C'
*!* tcTipRefacere = "REFACERE_PRECEDENTE_RULAJE"
*!* ELSE
*!* tcTipRefacere = UPPER(tcTipRefacere)
*!* ENDIF
*!*
*!* IF plDeschid
*!* ldData1 = GOMONTH(DATE(gnAn,gnLuna,1),1)
*!* lnAn = YEAR(ldData1)
*!* lnLuna = MONTH(ldData1)
*!* lcAn = ALLTRIM(STR(lnAn))
*!* lcLuna = PADL(ALLTRIM(STR(lnLuna)),2,'0')
*!* lnValoare = 12*lnAn + lnLuna
*!* lcSelect = [select COUNT(*) as duplicat from ] + gcS + [.CALENDAR where 12*anul + luna = ?lnValoare]
*!* lnSucces = goExecutor.oExecute(lcSelect,[crsTest])
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare)
*!* RETURN
*!* ENDIF
*!* SELECT crsTest
*!* IF duplicat > 0
*!* AMESSAGEBOX('Luna ' + lcLuna + ' / ' + lcAn + ' este deja deschisa! ')
*!* RETURN
*!* ENDIF
*!* USE IN crsTest
*!* lnPlafonCasa = goCalendar.plafon_casa
*!* lnPlafonPlati = goCalendar.plafon_plati
*!* lnPlafonFurniz = goCalendar.plafon_furnizori
*!* IF AMESSAGEBOX('Doriti sa deschideti luna ' + lcLuna + ' / ' + lcAn + '?',4+32,"Deschidere de luna")!=6
*!* RETURN
*!* ENDIF
*!* *!* 10.07.2006
*!* *!* FLORIN CIOCAN
*!* lcSelect = [select COUNT(*) as duplicatTVA from COTE_TVA ] + ;
*!* [ where an = ] + TRANSFORM(lnAn) + [ AND luna = ] + TRANSFORM(lnLuna) + [ AND sters = 0]
*!* lnSucces = goExecutor.oExecute(lcSelect,[crsTest])
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare)
*!* RETURN
*!* ENDIF
*!* SELECT crsTest
*!* lnDuplicatTva = duplicatTva
*!* USE IN crsTest
*!* IF lnDuplicatTva = 0
*!* lcSql = [insert into cote_tva (proc_tva, descriere, procent, an, luna) ] + ;
*!* [ SELECT proc_tva, descriere, procent, ] + TRANSFORM(lnAn) + [,] + TRANSFORM(lnLuna) + [ from cote_tva where an = ?gnAn and luna = ?gnLuna and sters = 0 ]
*!* lnSucces = goExecutor.oExecute(lcSql)
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare)
*!* RETURN
*!* ENDIF
*!* ENDIF
*!* lcInsert = [INSERT INTO ] + gcS + [.CALENDAR (NL,AN,CTVAI,CTVAM,PLAFON_casa,plafon_plati,plafon_furnizori,anul,luna) ] + ;
*!* [VALUES (?lcLuna ,?lcAn,] + ALLTRIM(STR(NVL(goCalendar.ctvai,0),5,3)) + [,] + ALLTRIM(STR(NVL(goCalendar.ctvam,0),5,3)) + [,?lnPlafonCasa,?lnPlafonPlati,?lnPlafonFurniz,?lnAn,?lnLuna)]
*!* lnSucces = goExecutor.oExecute(lcInsert)
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare)
*!* RETURN
*!* ENDIF
*!* lnSucces = update_calendar()
*!* IF lnSucces < 0
*!* AMESSAGEBOX('Eroare la actualizarea Calendarului ' + goExecutor.cEroare)
*!* RETURN
*!* ENDIF
*!* SELECT calendar
*!* LOCATE FOR luna = lnLuna AND anul = lnAn
*!* IF FOUND()
*!* SCATTER NAME goCalendar
*!* ELSE
*!* AMESSAGEBOX('Eroare la citirea lunii in Calendar ' + goExecutor.cEroare)
*!* RETURN
*!* ENDIF
*!* *!* 11.05.2007
*!* *!* PAULA MUTU
*!* ***
*!* IF gnLuna = 12
*!* lcSql = [insert into plcont (acont, explicatie, cont, tip_sold, an, tip_cont, id_mod, inactiv, nefolosit, explicatieS) ] + ;
*!* [ SELECT acont, explicatie, cont, tip_sold, ] +ALLTRIM(STR(gnAn+1)) + [ as an, tip_cont, id_mod, inactiv, nefolosit, explicatieS ]+;
*!* [ from plcont where an = ?gnAn ]
*!* lnSucces = goExecutor.oExecute(lcSql)
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare)
*!* RETURN
*!* ENDIF
*!* ENDIF
*!* ***
*!* DO OINIT_OPTIUNI.prg
*!* * DO update_nomenclator IN updateserver.prg
*!* ELSE
*!* IF AMESSAGEBOX('Doriti sa redeschideti luna ' + ALLTRIM(STR(gnLuna)) + ' / ' + ALLTRIM(STR(gnAn)) + '?',4+32,"Redeschidere de luna")!=6
*!* RETURN
*!* ENDIF
*!* ENDIF
*!* *DO verificareGlobala WITH .F.,.T. IN overificari.prg
*!* lnLuna = goCalendar.luna
*!* lnAn = goCalendar.anul
*!* DO VerificareLunaDeschisa WITH lnLuna, lnAn, .T., .T., .T. IN overificari.prg
*!* IF USED('crsverificari')
*!* lnNrInreg = 1
*!* lnInreg = 1
*!* lnNrInreg=lnNrInreg+RECCOUNT('crsconturi')
*!* loTherm = NEWOBJECT("_thermometer","_therm","","Generare situatie luna contabila "+ALLTRIM(STR(lnLuna))+"/"+ALLTRIM(STR(lnAn))+"...")
*!* WITH loTherm
*!* .SHOW()
*!* lnPercent = 0
*!* lcexplicatia="Generare situatie"
*!* .UPDATE(lnPercent,lcexplicatia)
*!* SELECT crsverificari
*!* SCAN
*!* lcsursa = UPPER(ALLTRIM(sursa))
*!* lccont = ALLTRIM(CONT)
*!* lctip = IIF(UPPER(tcTipRefacere) = 'REFACERE_COMPLETA', '3', '1')
*!* lcexplicatia = explicatia
*!* lnPercent =(lnInreg*100)/lnNrInreg
*!* .UPDATE(lnPercent,'Generare '+lcexplicatia)
*!* DO refacere WITH lcsursa,lctip,lccont IN orefaceri.prg
*!* lnInreg=lnInreg+1
*!* SELECT crsverificari
*!* ENDSCAN
*!* .COMPLETE()
*!* ENDWITH
*!* RELEASE loTherm
*!* IF plDeschid
*!* AMESSAGEBOX('S-a deschis luna '+ ALLTRIM(STR(gnLuna)) + ' / ' + ALLTRIM(STR(gnAn)) + '!',48,"Deschidere de luna")
*!* ELSE
*!* AMESSAGEBOX('S-a redeschis luna '+ ALLTRIM(STR(gnLuna)) + ' / ' + ALLTRIM(STR(gnAn))+ '!',48,"Redeschidere de luna")
*!* ENDIF
*!*
*!* lcSelect = [insert into log_redeschid (anul, luna, id_program, deschid, id_util) values (?gnAn, ?gnLuna, ?gnIdProgram, ?pnDeschid, ?gnIdUtil)]
*!* lnSucces = goExecutor.oExecute(lcSelect)
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare)
*!* ENDIF
*!*
*!* ELSE
*!* AMESSAGEBOX('Nu s-au refacut situatiile! Verificati in meniul Actualizari / Verificare globala!',48, IIF(plDeschid,"Deschidere de luna","Redeschidere de luna"))
*!* ENDIF
*!* IF USED('crsverificari')
*!* USE IN crsverificari
*!* ENDIF
*!* ENDPROC && deschiluna
*********************** SFARSIT procedura deschiluna *************************
*********************** INCEPUT redeschidere_de_luna *************************
*********************** SFARSIT redeschidere_de_luna *************************
*********************** INCEPUT programare_deschidere_luna *************************
PROCEDURE programare_deschidere_luna
PRIVATE poProgramare
LOCAL m.lcSelect, m.lcFiltru, m.lcSchema, m.lcOrder, m.llAfisare
poProgramare = null
lcSchema=[]
lcSelect=[select id_redeschid, anul, luna, id_program, program, id_util, utilizator, dataora, deschid, programat, dataora_start, dataora_stop, id_utils, utilizators, dataoras, sters, SUBSTR(observatii,1,250) as observatii from vlog_redeschid]
lcFiltru=[STERS = 0 AND LUNA = ]+ALLTRIM(STR(m.gnluna))+[ AND ANUL = ]+ALLTRIM(STR(m.gnan))
lcOrder=[anul desc, luna desc, dataora desc]
llAfisare=.F.
lcGroup = []
llModParam = .T.
lcFiltruOriginal = ""
gencursor('poProgramare','cLogRedeschid', m.lcSelect, m.lcFiltru, m.lcSchema, m.lcOrder, m.llAfisare, m.lcgroup, m.llModParam, m.lcFiltruOriginal)
poProgramare.ca_baza1.afisare()
loProgramareForm = NEWOBJECT("frm_log_deschidereluna","odeschidereluna.vcx")
loProgramareForm.show(1)
ENDPROC && programare_deschidere_luna
*********************** SFARSIT programare_deschidere_luna *************************