Files
comun/programe/oproceduri_casa_marcat_mp500.prg

116 lines
3.6 KiB
Plaintext

*********************************************************************************************************
Procedure imprimare_bon_mp500
Lparameters tcSir,tdDataOra,tnNrBon
Private pcCale,pcExec,pcFisierText
Store [] To pcCaleExec,pcExec,pcFisierText
Local lcSir,lcFisierRez,laCount,i,llOk
lcSir=tcSir
lcFisierRez = []
laCount = 0
i=0
lcOk = .t.
gaseste_fisier_ini_mp500()
If !Empty(pcCaleExec)
Set Safety Off
Strtofile(lcSir,pcCaleExec+pcFisierText,0)
Cd (pcCaleExec)
lcDirectorZi=Iif(Type('tdDataOra')='D',Dtos(tdDataOra),Dtos(Ttod(tdDataOra)))
ltDataOra=Iif(Type('tdDataOra')='T',tdDataOra,Datetime())
lcNumeFisierBon=Alltrim(Str(tnNrBon))+[_]+Alltrim(Str(Hour(ltDataOra)))+[_]+;
ALLTRIM(Str(Minute(ltDataOra)))+[_]+Alltrim(Str(Sec(ltDataOra)))
lnRaspuns=6
lnNrIncercare=0
Do While lnRaspuns=6
lcComanda=[RUN ]+pcCaleExec+pcExec + [ ] + pcCaleExec + pcFisierText
&lcComanda
lcFisierRez = pcCaleExec+[answer.txt]
laCount = ALINES(laFisierRez,FILETOSTR(lcFisierRez))
IF laCount#0
FOR i=1 TO laCount
llOk = IIF(OCCURS('Er',STREXTRACT(laFisierRez[i],';',';',1))>0,.f.,.t.)
IF llOk = .f.
EXIT
ENDIF
ENDFOR
ELSE
llOk = .f.
ENDIF
RELEASE laFisierRez
IF llOk = .f.
lcDirector=[Bonuri err]
lnRaspuns=aMessagebox("Eroare la listarea bonului! Doriti sa reincercati?",;
4+16+256,"Eroare")
lnNrIncercare=lnNrIncercare+1
ELSE
lcDirector=[Bonuri ok]
lnRaspuns=7
ENDIF
If !Directory(pcCaleExec+lcDirector)
Md (lcDirector)
Endif
If !Directory(pcCaleExec+lcDirector+[\]+lcDirectorZi)
Md (pcCaleExec+lcDirector+[\]+lcDirectorZi)
Endif
lcNumeFisierBon=lcNumeFisierBon+;
IIF(lnNrIncercare>0,[_I]+Alltrim(Str(lnNrIncercare)),[])
Copy File (lcFisierRez) To ;
(pcCaleExec+[\]+lcDirector+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.txt])
Enddo
Cd (gcAppPath)
Endif
Endproc && imprimare_bon_fiscal
*********************************************************************************************************
Procedure gaseste_fisier_ini_mp500
Local lnFileHandle,lcFisierConfigurare,lnRaspuns
lnRaspuns=6
lcFisierConfigurare=gcAppPath+[\INITIALIZARI\]+Alltrim(gcNumeProgram)+[_mp500.xml]
Do While lnRaspuns=6
If File(lcFisierConfigurare)
lnFileHandle=Fopen(lcFisierConfigurare,12)
lnSize = Fseek(lnFileHandle,0,2)
If lnSize>0
Fseek(lnFileHandle, 0, 0)
lcFisier = Fread(lnFileHandle,lnSize)
lcString = Strextract(Upper(lcFisier),;
[<]+Upper(Alltrim(gcS))+[>],[</]+Upper(Alltrim(gcS))+[>])
If !Empty(lcString)
lcElement=[LAUNCH_PATH]
pcCaleExec=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
lcElement=[LAUNCH_FILE]
pcExec=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
lcElement=[LAUNCH_DATA]
pcFisierText=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
Else
aMessagebox("Nu exista configurarile pentru listarea bonurilor fiscale pe aceasta firma!",0+48,"Atentie")
pcCaleExec=[]
Endif
Else
aMessagebox("Fisierul de configurari pentru bonurilor fiscale este gol!",0+48,"Atentie")
pcCaleExec=[]
Endif
Fclose(lnFileHandle)
Else
aMessagebox("Nu exista fisierul de configurare pentru listarea bonurilor fiscale!",0+48,"Atentie")
pcCaleExec=[]
Endif
If Empty(pcCaleExec)
lnRaspuns=aMessagebox("Doriti sa mai incercati listarea bonului?",4+32+256,"Confirmare")
Else
lnRaspuns=7
Endif
Enddo
Endproc && gaseste_fisier_ini
*********************************************************************************************************