Files
MBS/PROYECTO/vedir/veprrp016.4gl
T

277 lines
9.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP016
OBJETIVO : Relacion de Ventas
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : AGOSTO 26, 1997.
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE nom_cli CHAR(30)
DEFINE fecha_inicial,fecha_final DATE
DEFINE ventas RECORD
compania SMALLINT,
factura INTEGER,
fecha_factura DATE,
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
monto_bruto DECIMAL(10,2),
monto_desc DECIMAL(10,2),
monto_neto DECIMAL(10,2),
status_t CHAR(1) ,
cond_pago LIKE vetb00002.cond_pago
END RECORD
FUNCTION veprrp016()
DEFINE p_costo DECIMAL(12,2)
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM vefmrp016 FROM "vefmrp016"
DISPLAY FORM vefmrp016
CALL pantalla()
DISPLAY "veprrp016" AT 4,3
DISPLAY "Analisis De Beneficios Al STD Mas Itbi" AT 6,21
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha_inicial,fecha_final
ON KEY (F2)
RUN "copy pantalla.bat impresion.bat"
DISPLAY "ACTIVACION REPORTE POR WORDPAD" AT 20,15 ATTRIBUTE(RED)
BEFORE FIELD fecha_final
LET fecha_final = today
AFTER FIELD fecha_final
IF fecha_final is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
# Busca las ventas locales para el rango de fechas especificado
DECLARE facturas CURSOR FOR
SELECT a.cod_cia, a.factura, a.fecha_factura, a.tipo_cliente,a.sec_cliente,
a.sub_total,a.monto_desc,a.neto,a.status_t, a.cond_pago
FROM vetb00002 a
WHERE a.fecha_factura BETWEEN fecha_inicial AND fecha_final ORDER BY 2
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
DISPLAY " " AT 20,14
START REPORT ventas_ft TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
FOREACH facturas INTO ventas.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF ventas.status_t = "E" THEN
LET ventas.monto_bruto = 0
LET ventas.monto_desc = 0
LET ventas.monto_neto = 0
END IF
# VALORA LA FACTURA AL COSTO STD.
LET p_costo = 0
SELECT SUM(a.cantidad*b.precio) INTO p_costo
FROM vetb00003 a, vetb00025 b
WHERE a.factura = ventas.factura AND a.cod_n = b.cod_n AND
a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND
a.cod_sec = b.cod_sec AND b.ventas = 1 AND
b.sec_cliente IS NULL AND b.tipo_cliente IS NULL AND
a.status_t IS NULL
IF p_costo IS NULL THEN
LET p_costo = 0
END IF
OUTPUT TO REPORT ventas_ft(ventas.*,p_costo)
END FOREACH
FINISH REPORT ventas_ft
CLEAR SCREEN
RUN "impresion C:\\archivo"
RUN "copy printer2.bat impresion.bat"
END FUNCTION
REPORT ventas_ft(x,costo)
DEFINE x RECORD
compania SMALLINT,
factura INTEGER,
fecha_factura DATE,
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
monto_bruto DECIMAL(10,2),
monto_desc DECIMAL(10,2),
monto_neto DECIMAL(10,2),
status_t CHAR(1) ,
cond_pago LIKE vetb00002.cond_pago
END RECORD
DEFINE t_costo,costo,descuento DECIMAL(10,2)
DEFINE valor_factura DECIMAL(10,2)
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE normall CHAR(3)
DEFINE comprimido CHAR(3)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 27, ASCII 80
LET normall = ASCII 030
LET hora = time
LET lj = (155 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, doce,comp_on
PRINT COLUMN 1, "veprrp016",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 148, "Pag. ", pageno using "###"
PRINT COLUMN 69, "Sistema de Ventas",
COLUMN 146, today using "dd/mm/yyyy"
PRINT COLUMN 53,"Analisis De Margenes De Beneficios Al STD Mas Itbi",
COLUMN 151, hora
PRINT COLUMN 1, "Del ", fecha_inicial USING "dd/mm/yy"," Al ",
fecha_final using "dd/mm/yy"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------------"
PRINT COLUMN 115, "STD Mas",
COLUMN 128, "Margen " ,
COLUMN 140, "Porc."
PRINT COLUMN 1, "Factura",
COLUMN 11, "Fecha",
COLUMN 20, "C l i e n t e",
COLUMN 66, "Monto RD$",
COLUMN 81, "Descuento",
COLUMN 97, "Neto RD$",
COLUMN 115, "Itbi ",
COLUMN 129, "Benef." ,
COLUMN 140, "Margen",
COLUMN 148, "Condicion"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"--------------------------------------------------------"
# , negrillas_off
ON EVERY ROW
IF t_costo IS NULL THEN
LET t_costo = 0
END IF
SELECT a.* INTO condicion.* FROM vetb00012 a
WHERE a.cond_pago = x.cond_pago
LET nom_cli = NULL
IF x.status_t IS NULL THEN
SELECT UNIQUE a.nombre INTO nom_cli FROM vetb00004 a
WHERE a.tipo_cliente=x.tipo_cliente and
a.sec_cliente=x.sec_cliente and
a.status_t is null
IF nom_cli IS NULL THEN
LET nom_cli = "Cliente no existe. Verifique"
END IF
ELSE
LET nom_cli = "NULA"
END IF
PRINT
COLUMN 1, x.factura using "######",
COLUMN 9, x.fecha_factura using "dd/mm/yy",
COLUMN 20, x.tipo_cliente using "&&","-",
x.sec_cliente using "&&&&"," ", nom_cli clipped,
COLUMN 60, x.monto_bruto using "####,###,###.##",
COLUMN 71, x.monto_desc using "####,###,###.##",
COLUMN 82, x.monto_bruto - x.monto_desc
using "####,###,###.##",
COLUMN 94, costo using "####,###,###.##",
COLUMN 104, x.monto_bruto - x.monto_desc - costo
using "###,###,###.##" ;
IF nom_cli != "NULA" THEN
PRINT COLUMN 140, ((x.monto_bruto - x.monto_desc - costo) /
(x.monto_bruto - x.monto_desc)) * 100
using "###.##";
END IF
PRINT COLUMN 152, condicion.descrip CLIPPED
LET t_costo = t_costo + costo
ON LAST ROW
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"--------------------------------------------------------"
PRINT
COLUMN 33, "Total General Ventas ---> ",
COLUMN 60, SUM(x.monto_bruto) using "####,###,###.##",
COLUMN 71, SUM(x.monto_desc) using "####,###,###.##",
COLUMN 82, SUM(x.monto_bruto - x.monto_desc)
using "####,###,###.##",
COLUMN 93, SUM(costo) using "####,###,###.##",
COLUMN 104, SUM(x.monto_bruto - x.monto_desc - costo)
using "####,###,###.##" ,
COLUMN 140, ((SUM(x.monto_bruto) - SUM(x.monto_desc)-costo) /
(SUM(x.monto_bruto) - SUM(x.monto_desc))) * 100
using "###.##";
LET t_costo = 0
PRINT normall
END REPORT