Files
comun/programe/oproceduri_casa_marcat_e500.prg

103 lines
3.8 KiB
Plaintext

*********************************************************************************************************
Procedure imprimare_bon_fiscal
Lparameters tcSir,tdDataOra,tnNrBon
Private pcCale,pcExec,pcFisierText
Store [] To pcCaleExec,pcExec,pcFisierText
Local lcSir
lcSir=tcSir
gaseste_fisier_ini()
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
&lcComanda
If File(pcCaleExec+[ERR])
lcString=Filetostr(pcCaleExec+[ERR])
lcStringOk=Replicate([0]+Chr(13)+Chr(10),Occurs(Chr(13)+Chr(10),lcString))
If lcString=lcStringOk
lcDirector=[Bonuri ok]
lnRaspuns=7
Else
lcDirector=[Bonuri err]
lnRaspuns=aMessagebox("Eroare la listarea bonului! Doriti sa reincercati?",;
4+16+256,"Eroare")
lnNrIncercare=lnNrIncercare+1
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 (pcCaleExec+pcFisierText) To ;
(pcCaleExec+lcDirector+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.txt])
Copy File (pcCaleExec+[ERR]) To ;
(pcCaleExec+lcDirector+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.err])
Delete File (pcCaleExec+[ERR])
Else
lcDirectorErr=[Bonuri err]
If !Directory(pcCaleExec+lcDirectorErr)
Md (lcDirectorErr)
Endif
If !Directory(pcCaleExec+lcDirectorErr+[\]+lcDirectorZi)
Md (pcCaleExec+lcDirectorErr+[\]+lcDirectorZi)
Endif
Copy File (pcCaleExec+pcFisierText) To ;
(pcCaleExec+lcDirectorErr+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.txt])
Endif
Enddo
Cd (gcAppPath)
Endif
Endproc && imprimare_bon_fiscal
*********************************************************************************************************
Procedure gaseste_fisier_ini
Local lnFileHandle,lcFisierConfigurare,lnRaspuns
lnRaspuns=6
lcFisierConfigurare=gcAppPath+[\INITIALIZARI\]+Alltrim(gcNumeProgram)+[_bon.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
*********************************************************************************************************