*****************************************************************************
*** Imprimir factura
*******************************************
FUNCTION ImprimirFactura()
LOCAL i, x, y, oPrn, nRow, oFont, oFont1, oFont2, oFont3, aTipoComp := {"ORIGINAL","DUPLICADO","TRIPLICADO"}
** Defino fonts
DEFINE FONT oFont NAME "ARIAL" SIZE config->fon,config->fon*2.5
DEFINE FONT oFont1 NAME "CALIBRI" SIZE config->fon*1.5,config->fon*4 BOLD
DEFINE FONT oFont2 NAME "CALIBRI" SIZE config->fon*4,config->fon*7 BOLD
DEFINE FONT oFont3 NAME "ARIAL" SIZE config->fon,config->fon*2.5 BOLD
PRINT oPrn NAME "Factura" PREVIEW MODAL
oPrn:SetPortrait()
oPrn:SetPage(9)
FOR x := 1 TO config->copias
PAGE
@ 0,0 PRINT TO oPrn IMAGE ALLTRIM(config->arch_fondo) SIZE oPrn:nHorzRes(), oPrn:nVertRes() PIXEL GRAY
oPrn:CmBox( .5, .5, 1.5, 20.5 ) // Box arriba
oPrn:CmBox( 1.5, .5, 5, 20.5 ) // Box datos del comprobante
oPrn:CmBox( 5.3, .5, 7.5, 20.5 ) // Box datos del cliente
oPrn:CmBox( 8, .5, 9, 20.5 ) // Box titulos
oPrn:CmBox( 22, .5, 25, 20.5 ) // Box datos del iva
@ .8, 01.15 PRINT TO oPrn TEXT aTipoComp[x] ;
SIZE 18,.9 CM FONT oFont1 ALIGN "C"
//Config->imprime 1: Logo, 2:Texto, 3: Ambos
IF config->imprime = 2 .or. config->imprime = 3
@ 1.6,.6 PRINT TO oPrn IMAGE "logo.jpg" SIZE 8, 3 CM
ENDIF
IF config->imprime = 1 .or. config->imprime = 3
@ 2, 01 PRINT TO oPrn TEXT ALLTRIM(config->nomb_emp) ;
SIZE 9,1 CM FONT oFont1 ALIGN "C" LASTROW nRow
@ nRow, 01 PRINT TO oPrn TEXT "Domicilio Comercial:"config->dire_emp ;
SIZE 9,1 CM FONT oFont LASTROW nRow ALIGN "C"
ENDIF
oPrn:CmSay( 2 , 11, cabecera->tipoformu, oFont1 )
oPrn:CmBox( 1.5, 9.4, 2.7, 10.7 ) // Box cuadrito comprobante
oPrn:CmSay( 1.5, 9.8, cabecera->letra,oFont2)
oPrn:CmSay( 2.3, 9.5, "Cod:"+cabecera->tipfor,oFont)
oPrn:CmSay( 2.5, 11, "Punto de venta:"+cabecera->puntovta + " Comprobante Nro:"+cabecera->nrofact,oFont)
oPrn:CmSay( 3.0, 11, "Fecha de emision:"+DTOC(cabecera->fecha),oFont)
oPrn:CmSay( 3.5, 11, "CUIT:"+config->cuit_emp,oFont)
oPrn:CmSay( 4.0, 11, "Ingresos brutos:"+config->ingb_emp,oFont)
oPrn:CmSay( 4.5, 11, "Inicio de Actividades:"+DTOC(config->inac_emp),oFont)
@ 5.5, 1 PRINT TO oPrn TEXT "C.U.I.T.:" ;
SIZE 3,.5 CM FONT oFont3 ALIGN "R"
@ 5.5, 4.1 PRINT TO oPrn TEXT cabecera->cuit_clie ;
SIZE 6,.5 CM FONT oFont ALIGN "L"
@ 5.5, 9.5 PRINT TO oPrn TEXT "Razon Social:" ;
SIZE 2.5,1 CM FONT oFont3 ALIGN "R"
@ 5.5, 12.5 PRINT TO oPrn TEXT ALLTRIM(cabecera->nombre) ;
SIZE 8,1 CM FONT oFont LASTROW nRow ALIGN "L"
@ 6,1 PRINT TO oPrn TEXT "Condicion IVA:" ;
SIZE 3,.5 CM FONT oFont3 ALIGN "R"
@ 6,4.1 PRINT TO oPrn TEXT cabecera->coniva ;
SIZE 6,.5 CM FONT oFont ALIGN "L"
nRow := IF(nRow<6,6,nRow)
@ nRow, 9.5 PRINT TO oPrn TEXT "Direccion:" ;
SIZE 2.5,1 CM FONT oFont3 ALIGN "R"
@ nRow, 12.5 PRINT TO oPrn TEXT ALLTRIM(cabecera->direccion) + " " + ;
ALLTRIM(cabecera->localidad) ;
SIZE 8,1 CM FONT oFont ALIGN "L"
@ 6.5, 01 PRINT TO oPrn TEXT "Condicion venta:" ;
SIZE 3,.5 CM FONT oFont3 ALIGN "R"
@ 6.5, 4.1 PRINT TO oPrn TEXT cabecera->formapag;
SIZE 6,.5 CM FONT oFont ALIGN "L"
@ 8.2, 01 PRINT TO oPrn TEXT "Codigo" ;
SIZE 2.8,.5 CM FONT oFont ALIGN "R"
@ 8.2, 04 PRINT TO oPrn TEXT "Descripcion del producto" ;
SIZE 7,.5 CM FONT oFont ALIGN "L"
@ 8.2, 11 PRINT TO oPrn TEXT "Cantidad" ;
SIZE 2,.5 CM FONT oFont ALIGN "R"
@ 8.2, 14 PRINT TO oPrn TEXT "Pr.Unitario" ;
SIZE 2,.5 CM FONT oFont ALIGN "R"
@ 8.2, 17 PRINT TO oPrn TEXT "Subtotal" ;
SIZE 3,.5 CM FONT oFont ALIGN "R"
y := 9.2
detalle->(DbGoTop())
FOR i = 1 TO detalle->(RecCount())
@ y, 01 PRINT TO oPrn TEXT STR(detalle->codart,13) ;
SIZE 2.8,.5 CM FONT oFont ALIGN "R"
@ y, 04 PRINT TO oPrn TEXT ALLTRIM(detalle->detart) ;
SIZE 7,1 CM FONT oFont LASTROW nRow
@ y, 11 PRINT TO oPrn TEXT STR(detalle->cantidad,08,2) ;
SIZE 2,.5 CM FONT oFont ALIGN "R"
@ y, 14 PRINT TO oPrn TEXT STR(detalle->unitario,9,2) ;
SIZE 2,.5 CM FONT oFont ALIGN "R"
@ y, 17 PRINT TO oPrn TEXT STR(detalle->total,9,2)
SIZE 3,.5 CM FONT oFont ALIGN "R"
detalle->(DBSkip())
y := nRow + .1
NEXT
y := y + .5
@ y, 1 PRINT TO oPrn TEXT cabecera->observa ;
SIZE 18,3 CM FONT oFont ALIGN "L"
@ 22.5,1 PRINT TO oPrn TEXT "Percepcion IIBB "+STR(cabecera->percep,6,2)+"% $:" ;
SIZE 5,.5 CM FONT oFont3 ALIGN "R"
@ 22.5,6.1 PRINT TO oPrn TEXT STR(cabecera->IIBB,12,2) ;
SIZE 3,.5 CM FONT oFont ALIGN "R"
@ 22.5, 12 PRINT TO oPrn TEXT "Subtotal $:" ;
SIZE 4,.5 CM FONT oFont3 ALIGN "R"
@ 22.5, 17 PRINT TO oPrn TEXT STR(cabecera->subtotal,10,2) ;
SIZE 3,.5 CM FONT oFont ALIGN "R"
@ 23, 12 PRINT TO oPrn TEXT "Otros Tributos $:" ;
SIZE 4,.5 CM FONT oFont3 ALIGN "R"
@ 23, 17 PRINT TO oPrn TEXT STR(cabecera->otros,10,2) ;
SIZE 3,.5 CM FONT oFont ALIGN "R"
@ 23.5, 12 PRINT TO oPrn TEXT "Total $:" ;
SIZE 4,.5 CM FONT oFont3 ALIGN "R"
@ 23.5, 17 PRINT TO oPrn TEXT STR(cabecera->totalgen,10,2) ;
SIZE 3,.5 CM FONT oFont ALIGN "R"
ENDPAGE
NEXT x
ENDPRINT
RETURN nil