243 lines
8.5 KiB
Plaintext
243 lines
8.5 KiB
Plaintext
Define Class printSettingsController As wwConfig
|
|
cMode = "XML"
|
|
nNrMaxDispozitiv = 0
|
|
nBonFiscal = 1
|
|
nNotaPlata = 2
|
|
nNotaMasa = 3
|
|
*******************************************************************************
|
|
Procedure Init
|
|
Dimension laListaDispozitive[1]
|
|
AddProperty(This,'aListaDispozitive',CREATEOBJECT('Collection'))
|
|
*!* trebuie adaugate toate proprietatile obiectului care nu trebuie sa apara in fisierul xml (scrise fara majuscule)
|
|
This.cPropertyExclusionList = This.cPropertyExclusionList + [,nnrmaxdispozitiv,alistadispozitive,nbonfiscal,nnotaplata,nnotamasa]
|
|
Endproc
|
|
*******************************************************************************
|
|
Procedure seteazaFisier
|
|
Lparameters tcCaleROA,tcNumeProgram,tcSchema
|
|
Local lcCaleXML,lcBuffer,lcGeneralIniFile,lcIniPath
|
|
lcGeneralIniFile = Alltrim(tcCaleROA) + [ROAPRINT\settings.ini]
|
|
If !File(lcGeneralIniFile)
|
|
lcCaleXML = Alltrim(tcCaleROA) + [USERCONFIG\] + Alltrim(tcNumeProgram) + [_] + Alltrim(tcSchema) + [.XML]
|
|
Else
|
|
lcBuffer = Space(255)
|
|
GetPrivateProfileString( "initializari","Path","",@lcBuffer, Len(lcBuffer), lcGeneralIniFile)
|
|
lcBuffer = Addbs(Alltrim(Strtran(lcBuffer,Chr(0),"")))
|
|
If !Empty(lcBuffer)
|
|
lcIniPath = lcBuffer
|
|
Else
|
|
lcIniPath = Alltrim(tcCaleROA) + [USERCONFIG\]
|
|
Endif
|
|
lcCaleXML = lcIniPath + Alltrim(tcNumeProgram) + [_] + Alltrim(tcSchema) + [.XML]
|
|
Endif
|
|
This.seteazaConfigurari(lcCaleXML)
|
|
Endproc
|
|
*******************************************************************************
|
|
Procedure seteazaConfigurari
|
|
Lparameters tcFisierConfigurare
|
|
Local lcCursorTemp,lcNrD,lnNrDMax,i && ,loObiect
|
|
This.cFileName = tcFisierConfigurare
|
|
lcCursorTemp = [TMP] + Sys(2015)
|
|
If !File(This.cFileName)
|
|
*!* This.adauga_dispozitiv()
|
|
This.Save()
|
|
Else
|
|
Xmltocursor(This.cFileName,lcCursorTemp,512)
|
|
lnNrDMax = 0
|
|
For i = 1 To Fcount(lcCursorTemp)
|
|
lnNrD = VAL(Strtran(Lower(Field(i)),'device',''))
|
|
This.adauga_dispozitiv(lnNrD)
|
|
If lnNrD > lnNrDMax
|
|
lnNrDMax = lnNrD
|
|
Endif
|
|
Endfor
|
|
This.nNrMaxDispozitiv = lnNrDMax
|
|
Use In (lcCursorTemp)
|
|
Endif
|
|
This.Load()
|
|
Endproc
|
|
*******************************************************************************
|
|
Function citeste_nr_dispozitiv
|
|
Lparameters tnTipListare, tcDescriere
|
|
*!* caut dupa tip listare si descriere ( ex : [NOTA MASA ]+ tcDescriere )
|
|
Local lnNrDispozitiv, loObiect, i
|
|
lnNrDispozitiv = 0
|
|
With This.aListaDispozitive
|
|
For i = 1 To .Count
|
|
If .Item(i).nTipListare = tnTipListare AND UPPER(.Item(i).cDescription) = This.getDescription(tnTipListare,tcDescriere)
|
|
lnNrDispozitiv = .Item(i).nNrDispozitiv
|
|
Exit
|
|
Endif
|
|
Endfor
|
|
Endwith
|
|
IF lnNrDispozitiv = 0
|
|
loObiect = This.adauga_dispozitiv()
|
|
loObiect.nTipListare = tnTipListare
|
|
loObiect.cDescription = This.getDescription(tnTipListare,tcDescriere)
|
|
loObiect.cDeviceType = This.getDeviceType(tnTipListare)
|
|
lnNrDispozitiv = loObiect.nNrDispozitiv
|
|
ENDIF
|
|
RETURN lnNrDispozitiv
|
|
Endfunc
|
|
*******************************************************************************
|
|
Function adauga_dispozitiv
|
|
Lparameters tnNrDispozitiv
|
|
Local lcNumeObiect,lnNrDispozitiv, loObiect
|
|
If Empty(tnNrDispozitiv)
|
|
This.nNrMaxDispozitiv = This.nNrMaxDispozitiv + 1
|
|
lnNrDispozitiv = This.nNrMaxDispozitiv
|
|
Else
|
|
lnNrDispozitiv = tnNrDispozitiv
|
|
Endif
|
|
lcNumeObiect = 'oDevice'+Alltrim(Str(lnNrDispozitiv))
|
|
AddProperty(This,lcNumeObiect,Createobject("cDevice"))
|
|
lcNumeObiect = [This.] + lcNumeObiect
|
|
loObiect = &lcNumeObiect
|
|
This.aListaDispozitive.Add(loObiect)
|
|
loObiect.nNrDispozitiv = lnNrDispozitiv
|
|
Return loObiect
|
|
Endfunc
|
|
*******************************************************************************
|
|
Function citeste_imprimanta_dispozitiv
|
|
Lparameters tnNrDispozitiv
|
|
Local lcImprimanta, i
|
|
lcImprimanta = []
|
|
With This.aListaDispozitive
|
|
For i = 1 To .Count
|
|
If .Item(i).nNrDispozitiv = tnNrDispozitiv
|
|
lcImprimanta = .Item(i).cDeviceName
|
|
Exit
|
|
Endif
|
|
Endfor
|
|
Endwith
|
|
Return lcImprimanta
|
|
Endfunc
|
|
*******************************************************************************
|
|
Function scrie_imprimanta_dispozitiv
|
|
Lparameters tnNrDispozitiv,tcImprimanta,tnTipListare,tcDescriere
|
|
*!* scrie imprimanta si dispozitivul ( daca nu exista, atunci il creeaza; daca exista, atunci doar inlocuieste imprimanta)
|
|
Local llNou, i, loObiect
|
|
llNou = .T.
|
|
With This.aListaDispozitive
|
|
For i = 1 To .Count
|
|
If .Item(i).nNrDispozitiv = tnNrDispozitiv
|
|
.Item(i).cDeviceName = tcImprimanta
|
|
.Item(i).cDescription = This.getDescription(tnTipListare,tcDescriere)
|
|
llNou = .F.
|
|
Exit
|
|
Endif
|
|
Endfor
|
|
Endwith
|
|
If llNou
|
|
loObiect = This.adauga_dispozitiv()
|
|
loObiect.nTipListare = tnTipListare
|
|
loObiect.cDescription = This.getDescription(tnTipListare,tcDescriere)
|
|
loObiect.cDeviceName = tcImprimanta
|
|
loObiect.cDeviceType = This.getDeviceType(tnTipListare)
|
|
Endif
|
|
Return .T.
|
|
Endfunc
|
|
*******************************************************************************
|
|
Function getDescription
|
|
Lparameters tnTipListare,tcDescriere
|
|
Local lcDescriere
|
|
Do Case
|
|
Case tnTipListare = This.nBonFiscal
|
|
lcDescriere = Alltrim([BON FISCAL ] + tcDescriere)
|
|
Case tnTipListare = This.nNotaPlata
|
|
lcDescriere = Alltrim([NOTA PLATA ] + tcDescriere)
|
|
Case tnTipListare = This.nNotaMasa
|
|
lcDescriere = Alltrim([NOTA MASA ] + tcDescriere)
|
|
Otherwise
|
|
lcDescriere = Alltrim(tcDescriere)
|
|
Endcase
|
|
Return lcDescriere
|
|
Endfunc
|
|
*******************************************************************************
|
|
Function getDeviceType
|
|
Lparameters tnTipListare
|
|
Local lcTipDispozitiv
|
|
Do Case
|
|
Case tnTipListare = This.nBonFiscal
|
|
lcTipDispozitiv = [ECR]
|
|
Case tnTipListare = This.nNotaPlata
|
|
lcTipDispozitiv = [PRINTER]
|
|
Case tnTipListare = This.nNotaMasa
|
|
lcTipDispozitiv = [PRINTER]
|
|
Otherwise
|
|
lcTipDispozitiv = []
|
|
Endcase
|
|
Return lcTipDispozitiv
|
|
Endfunc
|
|
*******************************************************************************
|
|
Procedure salveaza
|
|
This.Save()
|
|
*!* Release This
|
|
Endproc
|
|
*******************************************************************************
|
|
Enddefine
|
|
*******************************************************************************
|
|
Define Class cDevice As Relation
|
|
nNrDispozitiv = 0
|
|
nTiplistare = 0
|
|
cDescription = ""
|
|
cDeviceType=""
|
|
cDeviceName = ""
|
|
cDeviceDriver= ""
|
|
cDeviceTemplate = ""
|
|
cNetwork = "0"
|
|
cExePath = ""
|
|
cExeParams = ""
|
|
cPrintPath = ""
|
|
cErrorFileProcedure = ""
|
|
cErrorFile = ""
|
|
nErrorFileType = 0 && 1=se apeleaza procedura de eroare cu calea completa a fisierului de eroare, din tagul errorfile, in loc de tagul exepath
|
|
nTimeOut = 0
|
|
cTVAGrupe = "" && 19|9|5|0|N
|
|
nNeplatitorTVA = 0 && 0=Platitor TVA, 1=Neplatitor TVA
|
|
Enddefine
|
|
*********************************************************************************
|
|
*!* Define Class cDevice1 As Relation
|
|
*!* nTiplistare = 1 && 1 = BON FISCAL
|
|
*!* cDescription = "Bon Fiscal"
|
|
*!* cDeviceType="ECR"
|
|
*!* cDeviceName = "EURO500"
|
|
*!* cDeviceDriver= "COMM2A"
|
|
*!* cDeviceTemplate = "EURO500_WIN.TMPL"
|
|
*!* cNetwork = "0"
|
|
*!* cExePath = "C:\COMM2A\COMM2A.EXE"
|
|
*!* cExeParams = "/RO /T /com:1 /speed:38400 /ECR:10 /num:1 /o:18 /data_file:items.txt /err_file:Online.err /LEN:??numar_linii_bon??"
|
|
*!* cPrintPath = "C:\COMM2A\ITEMS.TXT"
|
|
*!* cErrorFileProcedure = "euro500_win.err"
|
|
*!* cErrorFile = "C:\COMM2A\ONLINE.ERR"
|
|
*!* Enddefine
|
|
*!* *******************************************************************************
|
|
*!* Define Class cDevice2 As Relation
|
|
*!* nTiplistare = 2 && nota plata
|
|
*!* cDescription = "Nota Plata"
|
|
*!* cDeviceType = "PRINTER"
|
|
*!* cDeviceName = "EPSONTM220"
|
|
*!* cDeviceDriver = "EPSONTM220"
|
|
*!* cDeviceTemplate = "NOTA.TMPL"
|
|
*!* cNetwork = "0"
|
|
*!* cExePath = ""
|
|
*!* cExeParams = ""
|
|
*!* cPrintPath = "C:\ITEMS.TXT"
|
|
*!* cErrorFileProcedure = ""
|
|
*!* cErrorFile = ""
|
|
*!* Enddefine
|
|
*!* *******************************************************************************
|
|
*!* Define Class cDevice3 As Relation
|
|
*!* nTiplistare = 3 && nota masa
|
|
*!* cDescription = "Nota Masa"
|
|
*!* cDeviceType = "PRINTER"
|
|
*!* cDeviceName = "EPSONTM220"
|
|
*!* cDeviceDriver = "EPSONTM220"
|
|
*!* cDeviceTemplate = "NOTA.TMPL"
|
|
*!* cNetwork = "0"
|
|
*!* cExePath = ""
|
|
*!* cExeParams = ""
|
|
*!* cPrintPath = "C:\ITEMS.TXT"
|
|
*!* cErrorFileProcedure = ""
|
|
*!* cErrorFile = ""
|
|
*!* Enddefine
|
|
*!* ******************************************************************************* |