if IMPR_DOS=='S'
inicia impresion en oPrn dos // si la impresion es en DOS, clase tDosPrn (genero un archivo y al final lo pando al puerto)
else
inicia impresion en oPrn puerto COMX_TIQ // impresion direta al puerto, clase tPrinter, COMX_TIQ="EPSON TM-T2II Receipt"
endif
nAncho:=Int(T_ANC_PAP/CM17)
nSup:=1 ; lTit:=.t.
if !empty(OBSE_ENC) // encabezado
aEmp:=ParteMemo(OBSE_ENC,nAncho)
for i:=1 to len(aEmp)
aEmp[i]:=strtran(aEmp[i],CHR(20),'')
if IMPR_DOS=='S'
@ nSup,1 dato PadC(aEmp[i],nAncho) letra condensada en oPrn
elseif !Empty(aEmp[i]).and.lTit
lTit:=.f.
@ nSup,1 dato aEmp[i] titulo 4,nAncho letra condensada en oPrn
else
@ nSup,1 dato aEmp[i] titulo 0,nAncho letra condensada en oPrn
endif
nSup++
next
endif
if IMPR_DOS=='N'.and.File(T_LOG_TIQ) // logotipo
nR:=T_CMS_LOG
nC:=T_CMI_LOG
oPrn:Cmtr2Pix(@nR,@nC)
oPrn:SayImage(nR,nC,T_LOG_TIQ,PosX(T_CML_LOG,oPrn),PosY(T_CMA_LOG,oPrn))
endif
@ nSup,1 dato 'Ticket: '+cNumFol+', Fecha '+FormaFecha(gdFecTra)+', Hora: '+time() letra condensada en oPrn
nSup+=2
if IMPR_DOS=='S'
@ nSup,T_COL_CAN-5 dato 'Cant.' en oPrn
@ nSup,T_COL_DES-0 dato Ota('Descripción') en oPrn
@ nSup,T_COL_UNI-10 dato 'P.Unitario' en oPrn
@ nSup,T_COL_TOT-7 dato 'Total' en oPrn
else
@ nSup,T_COL_CAN-5 dato 'Cant.' en oPrn
@ nSup,T_COL_DES-0 dato Ota('Descripción') en oPrn
@ nSup,T_COL_UNI-8 dato 'P.Unitario' en oPrn
@ nSup,T_COL_TOT-5 dato 'Total' en oPrn
endif
nSup++
// inicia detalle
select art
if lEsBarras
OrdSetFocus(8)
else
OrdSetFocus(3)
endif
if cTipo=='PUNTO.VENTA'
select tmp
goto top
while !Eof()
select art
if lEsBarras
DBSeek(tmp->cod_bar)
else
DBSeek(JuntaPza(tmp->(pre_inv+bas_inv+suf_inv)))
endif
select tmp
if IMPR_DOS=='N'.and.nSup>66
termina pagina
inicia pagina
nSup:=1
endif
nCant :=tmp->can_fac
nPrecio:=tmp->pre_nor
@ nSup,T_COL_CAN dato nCant formato '99999' en oPrn
@ nSup,T_COL_DES dato left(Ota(DescArti(art->JUNTA_PZA,lEsBarras)),T_LON_DES) en oPrn
@ nSup,T_COL_UNI dato nPrecio formato '999,999.99' en oPrn
@ nSup,T_COL_TOT dato nCant*nPrecio formato '999,999.99' en oPrn
nSup++
if SERIE_ENART=='S'.and.art->num_ser
aSerie:=DameSeries(MOVI_PVC,cNumFol,art->JUNTA_PZA,tmp->(RecNo()))
for i:=1 to Len(aSerie)
@ nSup,T_COL_DES dato 'Serie:'+aSerie[i] en oPrn
nSup++
next
endif
nTot+=tmp->can_fac*tmp->pre_pub
nIva+=tmp->can_fac*tmp->iva_pub
skip
end
endif
nSup++
if nTDes>0
@ nSup,T_COL_TOT-20 dato 'IMPORTE' en oPrn
@ nSup,T_COL_TOT dato nTSub formato '999,999.99' en oPrn
nSup++
@ nSup,T_COL_TOT-20 dato 'DESCUENTO' en oPrn
@ nSup,T_COL_TOT dato nTDes formato '999,999.99' en oPrn
nSup++
endif
@ nSup,T_COL_TOT-20 dato 'SUBTOTAL' en oPrn
@ nSup,T_COL_TOT dato nTTot formato '999,999.99' en oPrn
nSup++
@ nSup,T_COL_TOT-20 dato 'I.V.A. '+Str(_nTasaIva,2)+'%' en oPrn
@ nSup,T_COL_TOT dato nTIva formato '999,999.99' en oPrn
nSup++
@ nSup,T_COL_TOT-20 dato 'TOTAL' en oPrn
@ nSup,T_COL_TOT dato nTTot+nTIva formato '999,999.99' en oPrn
nSup++
cNum:='('+upper(DescNum(nTTot+nTIva))+')'
@ nSup,2 dato substr(cNum,1,nAncho-5) en oPrn
nSup++
if !Empty(substr(cNum,nAncho-5+1))
@ nSup,2 dato substr(cNum,nAncho-5+1) en oPrn
nSup++
endif
nSup++
@ nSup,T_COL_TOT-20 dato 'EFECTIVO' en oPrn
@ nSup,T_COL_TOT dato nTEfe formato '999,999.99' en oPrn
nSup++
@ nSup,T_COL_TOT-20 dato 'CAMBIO' en oPrn
@ nSup,T_COL_TOT dato nTEfe-(nTTot+nTIva) formato '999,999.99' en oPrn
nSup++
if !empty(OBSE_PIE) // pie de ticket
aEmp:=ParteMemo(OBSE_PIE,nAncho)
for i:=1 to len(aEmp)
aEmp[i]:=strtran(aEmp[i],CHR(20),'')
if IMPR_DOS=='S'
@ nSup,1 dato PadC(aEmp[i],nAncho) en oPrn
else
@ nSup,1 dato aEmp[i] titulo 0,nAncho letra condensada en oPrn
endif
nSup++
next
if IMPR_DOS=='N'
termina pagina
endif
endif
if IMPR_DOS=='S'
termina impresion puerto COMX_TIQ
else
termina impresion
endif
return .t.