************************
*Imprimir Reporte D.O.S.
************************
FUNCTION pImDSFac()
Local Col:=Lin:=0
local vConFac:=1
cPorta := PrnGetPort()
cPrinter := PrinterPortToName( cPorta )
if empty(cPrinter)
cPrinter := PrinterPortToName( "USB002" )
if empty(cPrinter)
cPrinter := PrinterPortToName( "USB001" )
endif
endif
IMfac := TDosPrn():New(".\dbfs\lamtem\tempo.txt")
IMfac:StartPage()
IMfac:say(lin,col,chr(027) + chr( 112 ) + chr( 000) + chr(100) + chr( 250 )) //Abre el cajon
IF oLamcla:vImpue=".T."
IMfac:say(lin,col,CHR(27)+CHR(33)+CHR(25))
lin++
IMfac:say(lin,col,oLamcla:vGnom)
lin++
IMfac:say(lin,Col,"NIT: "+alltrim(oLamcla:vGnit))
lin++
IMfac:say(lin,Col,CHR(27)+CHR(33)+CHR(4))
lin++
IMfac:say(lin,col,subs(oLamcla:vCaRes,1,34))
if !Empty(alltrim(subs(oLamcla:vCaRes,35,34)))
lin++
IMfac:say(lin,col,subs(oLamcla:vCaRes,35,34))
endif
if !Empty(alltrim(subs(oLamcla:vCaRes,69,34)))
lin++
IMfac:say(lin,col,subs(oLamcla:vCaRes,69,34))
endif
if !Empty(alltrim(subs(oLamcla:vCaRes,103,34)))
lin++
IMfac:say(lin,col,subs(oLamcla:vCaRes,103,34))
endif
if !Empty(alltrim(subs(oLamcla:vCaRes,137,34)))
lin++
IMfac:say(lin,col,subs(oLamcla:vCaRes,137,34))
endif
if !Empty(alltrim(subs(oLamcla:vCaRes,171,34)))
lin++
IMfac:say(lin,col,subs(oLamcla:vCaRes,171,34))
endif
lin++
IF oLamcla:vDire=nil
IMfac:say(lin,Col,"DIRECCION:")
ELSE
IMfac:say(lin,Col,subs(oLamcla:vDire,1,34))
ENDIF
lin++
IMfac:say(lin,Col,"TELEFONO: "+alltrim(if(oLamcla:vTele=nil,oLamcla:vTele:=space(0),oLamcla:vTele)))
lin++
lin++
IMfac:say(lin,Col,"FACTURA DE VENTA No.: "+alltrim(str(vConPago)))
lin++
ENDIF
IMfac:say(lin,Col,"FECHA: "+alltrim(dtoc(oLamcla:vCafec))+" "+subs(time(),1,8))
lin++
SELE d_forma
Dbgotop()
LOCATE FOR d_forma->Tipod=6
IF FOUND()
IMfac:say(lin,Col,"CLIENTE : "+alltrim(oLamcla:vSterc))
lin++
IMfac:say(lin,Col,"CEDULA : "+alltrim(oLamcla:vGTerc))
lin++
ENDIF
lin++
IF oLamcla:vImpue=".T."
IMfac:say(lin,Col,"REFERE TL PRODUCTO IVA CANT VALOR ")
ELSE
IMfac:say(lin,Col,"REFERE TL PRODUCTO DES CANT VALOR ")
ENDIF
lin++
IMfac:say(lin,Col,"====== == =========== ===== ====== =======")
lin++
SELE d_caja
SET FILT TO d_caja->Signo="s"
Dbgotop()
Do While !eof()
vDc:=subs(d_caja->Codig,1,7)
vDt:=subs(d_caja->Talla,1,2)
vDd:=subs(d_caja->Descr,1,13)
vDa:=transform(d_caja->Canti,"99999")
vDp:=transform(d_caja->PVpub,"9,999,999")
vDj:=transform(d_caja->PoIva,"99")
IMfac:say(lin,Col,vDc+" "+vDt+" "+vDd+" "+vDj+"% "+vDa+" "+vDp)
lin++
Skip
Enddo
lin++
IMfac:say(lin,Col,"ARTICULOS COMPRADOS: "+transform(oLamcla:vCaCan,"99999"))
lin++
IMfac:say(lin,col,CHR(27)+CHR(33)+CHR(25))
//ESta parte se encarga de imprimir el descuento en la factura si lo tiene
if vGDesc#0
IMfac:say(lin,Col,"SUBTOTAL......................"+transform(oLamcla:vCatot,"9,999,999"))
lin++
IMfac:say(lin,Col,"DESCUENTO....................."+transform(vGDesc,"9,999,999"))
lin++
IMfac:say(lin,Col,"TOTAL........................."+transform(oLamcla:vCatot-vGDesc,"9,999,999"))
lin++
else
IMfac:say(lin,Col,"TOTAL........................."+transform(oLamcla:vCatot,"9,999,999"))
lin++
endif
IMfac:say(lin,Col,CHR(27)+CHR(33)+CHR(4))
if vCambio#0
IMfac:say(lin,Col,"TOTAL DEVOLUCIONES Y CAMBIOS.."+transform(vCambio,"9,999,999"))
lin++
IMfac:say(lin,Col,"TOTAL A PAGAR ................"+transform(oLamcla:vCatot-vCambio,"9,999,999"))
lin++
endif
//imprime el detalle tributario si lo tiene
SELE d_tari
Dbgotop()
SUM d_tari->Impue TO vTImpues
IF vTImpues#0
IF oLamcla:vImpue=".T."
lin++
IMfac:say(lin,Col,"DETALLE TRIBUTARIO")
lin++
IMfac:say(lin,Col,"TARIFA BASE IVA ")
lin++
IMfac:say(lin,Col,"======== =========== =========== ")
lin++
SELE d_tari
Dbgotop()
Do While !eof()
vTa:=d_tari->Tarif
vIm:=transform(d_tari->Impue,"9,999,999")
vBa:=transform(d_tari->BaIva,"9,999,999")
vPo:=d_tari->PoIva
IF vPo#0
IMfac:say(lin,Col,vTa+"% "+vBa+" "+vIm)
lin--
ENDIF
lin++
Skip
Enddo
ENDIF
ENDIF
lin=lin+2
IMfac:say(lin,Col,"FORMA DE PAGO No.APROV #C VALOR")
lin++
IMfac:say(lin,Col,"=============== ========== == =========")
lin++
SELE d_forma
Dbgotop()
Do while !eof()
vApr:=subs(d_forma->Aprov,1,10)
vCuo:=subs(d_forma->Cuota,1,2)
vVal:=transform(d_forma->ValDo,"9,999,999")
vTip:=d_forma->Tipod
IF vTip=1
vCad:="1.EFECTIVO"
ELSEIF vTip=2
vCad:="2.CHEQUE"
ELSEIF vTip=3
vCad:="3.TARJ.DEB."
ELSEIF vTip=4
vCad:="4.TARJ.CRE."
ELSEIF vTip=5
vCad:="5.OTRO"
ELSEIF vTip=6
vCad:="6.CR.FA.CODENSA"
ENDIF
vTi2:=subs(vCad,1,15)
IMfac:say(lin,Col,vTi2+" "+vApr+" "+vCuo+" "+vVal)
lin++
SELE d_forma
Skip
EndDo
lin++
IMfac:say(lin,Col,"EFECTIVO PESOS: "+transform(oLamcla:vCGTe1,"9,999,999"))
lin++
IMfac:say(lin,Col,"SU CAMBIO : "+transform(oLamcla:vCSTe2,"9,999,999"))
//imprime el detalle tributario si lo tiene
SELE d_camb
Dbgotop()
SUM d_camb->Basei TO vTIcambi
IF vTIcambi#0
lin=lin+2
IMfac:say(lin,Col,"DETALLE DEVOLUCIONES")
lin++
IMfac:say(lin,Col,"NOTA CREDITO FACTURA")
lin++
IMfac:say(lin,Col,"PRODUCTO CANT. VALOR ")
lin++
IMfac:say(lin,Col,"=========== ===== =========")
lin++
SELE d_camb
Dbgotop()
Do While !eof()
vTa:=d_camb->Artic
vIm:=d_camb->Descr
vBa:=transform(d_camb->Basei,"9,999,999")
IMfac:say(lin,Col,alltrim(vTa)+" "+alltrim(vIm)+" "+vBa)
lin++
Skip
Enddo
ENDIF
lin:=lin+2
IMfac:say(lin,Col,"ATENDIDO POR: "+alltrim(oLamcla:vNous))
lin++
IMfac:say(lin,Col,"CAJA: "+oLamcla:vCajas)
lin:=lin+2
// IMfac:say(lin,Col,"LA ROPA INTERIOR Y PROMOCIONES NO TIENEN")
// lin++
// IMfac:say(lin,Col,"CAMBIO")
// lin:=lin+2
IMfac:say(lin,Col,"GRACIAS POR SU COMPRA")
lin:=lin+2
// IMfac:say(lin,Col,"Impreso por LYMA - Sistemas de Informaciòn")
lin:=lin+10
IMfac:say(lin,Col,"")//Es como una FEED de papel para que el corte sea mas facil
lin++
IMfac:say(lin,Col,CHR(27)+CHR(105)) // corte de papel
IMfac:EndPage()
IMfac:End()
while vConFac<=vGCopfac
PrintFileRaw( cPrinter, TrueName(".\dbfs\lamtem\tempo.txt"), "Impresión Caja" )
vConFac++
enddo
Return nil