Files
MBS/PROYECTOS/otrodir/genera_factura.4gl
T

198 lines
7.5 KiB
Plaintext

SCHEMA smarmotech
REPORT imp_factura(x,z,y,porciento,bonifica,cod_f,pncf,pcodigodgii,descripcion,observacion,usuarios,fecha_vencimiento)
DEFINE x RECORD
cod_cia LIKE vetb00002.cod_cia,
ventas LIKE vetb00002.ventas,
zona CHAR(3),
factura LIKE vetb00002.factura,
bodega SMALLINT,
conduce LIKE vetb00002.conduce,
fecha_conduce DATE,
fecha_factura DATE,
tipo_cliente LIKE vetb00002.tipo_cliente,
sec_cliente LIKE vetb00002.sec_cliente,
nombre CHAR(30),
direccion CHAR(80),
ciudad CHAR(20),
prima_us LIKE vetb00002.prima_us,
porc_desc LIKE vetb00002.porc_desc,
cond_pago LIKE vetb00002.cond_pago,
orden INT,
fecha_orden DATE,
porc_itbi LIKE vetb00002.porc_itbi,
sec_vend LIKE vetb00002.sec_vend,
nombre_vend CHAR(60),
cod_transp LIKE iptb00006.cod_transp,
sec_transp LIKE iptb00006.sec_transp,
cod_tarifa LIKE iptb00006.cod_tarifa,
nombre_tran CHAR(30),
fecha_embarque DATE,
placa_transp LIKE iptb00006.placa,
sub_total DECIMAL(12,2),
desc_valor DECIMAL(12,2),
itbi DECIMAL(12,2),
total_fact DECIMAL(12,2)
END RECORD,
pncf INT, pcodigodgii CHAR(30),
descripcion,descripcion_bodega VARCHAR(100),
fecha_vencimiento DATE
DEFINE z RECORD
area SMALLINT,
cod_n LIKE intb00003.cod_n,
cod_grupo LIKE intb00003.cod_grupo,
cod_tipo LIKE intb00003.cod_tipo,
cod_sec LIKE intb00003.cod_sec,
--ubicacion INT,
cantidad_1 DEC(12,5),
cantidad_2 DEC(12,5),
cantidad_p DEC(12,5),
unidad_med LIKE iptb00002.unidad_med,
descrip_esp CHAR(80),
existencia DEC(12,5),
disponible DEC(12,5),
codigo_bloque CHAR(15),
id_kit INT,
desglose CHAR(1)
END RECORD
DEFINE y RECORD
precio DEC(12,5),
descuento DEC(12,5)
END RECORD,
telefono char (30),celular char(15),
descrip_cond CHAR(50),
observacion VARCHAR(100)
DEFINE punidad,conduce_alm INTEGER,
i,cod_f SMALLINT
DEFINE c_cajas,bonifica INTEGER
DEFINE tot_b,tot_n,tot_m,peso_n,medida,peso_b DECIMAL(12,2),
ch_fech,ch_ncf CHAR(20)
DEFINE porciento DECIMAL(8,3)
DEFINE valor_porc,monto_factura DECIMAL (12,2)
DEFINE rnc CHAR(10)
DEFINE nombre_vend,apellido_vend CHAR(15)
DEFINE hora CHAR(5),
marca,modelo CHAR(25),
ldescuento DEC(12,2),
p_companias RECORD LIKE companias.*,
imagen BYTE,
localidad SMALLINT,
xconduce_almacen INT,
xdireccion,filedestino,nombre_file,sucnombre,chventas,xbodega,direccion_sucursal VARCHAR(100),
usuarios,codigo VARCHAR(50),
simbolo VARCHAR(4),
ch_fechavence VARCHAR(10),
vimagen BOOLEAN,
cliente_bas RECORD LIKE vetb00004.*,
condicion RECORD LIKE vetb00012.*,
ch_fecha VARCHAR(10)
OUTPUT
TOP MARGIN 0
PAGE LENGTH 66
LEFT MARGIN 0
ORDER BY x.factura
FORMAT
FIRST PAGE HEADER
LET xconduce_almacen = x.conduce
SELECT a.descripcion INTO descripcion_bodega FROM intb00009 a WHERE a.cod_bodega = x.bodega
SELECT a.descrip INTO condicion.descrip FROM vetb00012 a WHERE a.cond_pago = x.cond_pago
SELECT a.telefono,a.telex INTO cliente_bas.telefono,cliente_bas.telex FROM vetb00004 a
WHERE a.tipo_cliente = x.tipo_cliente AND a.sec_cliente = x.sec_cliente
SELECT a.* INTO p_companias.* FROM companias a WHERE a.cod_comp = x.cod_cia
SELECT a.sucid,b.sucnombre,b.direccion,c.nombre_provincia,b.telefono,b.fax,b.rnc,a.bodega
INTO localidad,sucnombre,p_companias.direccion,p_companias.direccion1,
p_companias.telefono,p_companias.fax,p_companias.rnc
FROM seg0001 a,sucursales b,vetb00020 c
WHERE a.usuario = usuarios AND a.sucid = b.sucid AND b.localidad = c.cod_provincia
SELECT a.descripcion, a.simbolo INTO chventas,simbolo FROM vetb00060 a WHERE a.ventas = x.ventas
SELECT a.descripcion INTO xbodega FROM intb00009 a WHERE a.cod_bodega = x.bodega
LET conduce_alm = 0
SELECT a.conduce_almacen INTO conduce_alm FROM vetb00002 a WHERE a.factura = x.factura
LET vimagen=TRUE
LOCATE imagen IN MEMORY
SELECT a.firmafactura,a.nombre_file_firma INTO imagen,nombre_file FROM seg0001 a WHERE a.usuario = usuarios
LET filedestino = 'E:\\MARMOTECH\\test\\IMAGENES\\tmp\\',usuarios CLIPPED,nombre_file CLIPPED
IF imagen IS NULL THEN
LET vimagen=FALSE
ELSE
CALL imagen.writeFile(filedestino)
CALL comprimeImagen(filedestino,' -resize 200x200 ')
CALL imagen.readFile(filedestino)
END IF
AFTER GROUP OF x.factura
LET telefono = NULL
LET rnc = NULL
LET tot_n = 0
LET tot_b = 0
LET tot_m = 0
ON EVERY ROW
LET codigo = z.cod_n USING "&&&","-",z.cod_grupo USING "&&&&","-",z.cod_tipo USING "&&&&","-",
z.cod_Sec USING "&&&&&&&"
IF x.direccion is null then
SELECT b.calle||' '||b.casa_num||''||b.barrio||' '||b.urbanizacion
INTO x.direccion
FROM vetb00005 b
WHERE b.tipo_cliente = x.tipo_cliente AND
b.sec_cliente = x.sec_cliente
END IF
LET ch_ncf ="NCF:", pcodigodgii CLIPPED,pncf USING "&&&&&&&&"
SELECT a.num_rnc,a.telefono INTO rnc,telefono FROM vetb00004 a
WHERE a.tipo_cliente = x.tipo_cliente AND a.sec_cliente = x.sec_cliente AND
a.status_t IS NULL
SELECT a.descrip INTO descrip_cond FROM vetb00012 a
WHERE a.cond_pago = x.cond_pago
LET punidad = z.unidad_med
LET marca = NULL
LET modelo = NULL
LET ch_fecha = fecha_vencimiento USING "dd/mm/yyyy"
LET monto_factura = y.precio * z.cantidad_1
LET ldescuento = (z.cantidad_2 / 100) * (y.precio*z.cantidad_1)
LET xdireccion = x.direccion
PRINTX z.cod_n,z.cod_grupo,z.cod_tipo,z.cod_sec,
z.cantidad_1,z.unidad_med ,
z.descrip_esp ,marca , modelo ,
x.sub_total,ldescuento,monto_factura,
direccion_sucursal,p_companias.telefono,
p_companias.fax,p_companias.rnc,x.cond_pago, descripcion,
pcodigodgii,x.factura , x.fecha_factura,
x.sec_vend,x.nombre_vend ,x.nombre,x.tipo_cliente,
x.sec_cliente,x.conduce, # x.orden
xdireccion ,
x.porc_desc , x.desc_valor,y.precio,
x.porc_itbi, x.itbi,x.total_fact,
celular,x.prima_us,rnc,
p_companias.nombre,telefono,
ch_ncf,descrip_cond,observacion,
imagen,chventas,simbolo,x.nombre_tran,x.placa_transp,xbodega,
conduce_alm,ch_fecha,fecha_vencimiento,vimagen,
cliente_bas.telefono,cliente_bas.telex,descripcion_bodega,
condicion.descrip,xconduce_almacen,sucnombre,x.orden
END REPORT