307 lines
10 KiB
Plaintext
307 lines
10 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : VEPRRP019
|
|
OBJETIVO : Relacion de Ventas en unidades
|
|
PROGRAMADOR : Juan Fco. Soto
|
|
FECHA REALIZACION : Junio 3, 1993
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "veprgb000.4gl"
|
|
|
|
DEFINE mes SMALLINT
|
|
DEFINE cod_cia SMALLINT
|
|
DEFINE p_datos RECORD
|
|
fecha_in DATE,
|
|
fecha_fin DATE
|
|
END RECORD
|
|
|
|
FUNCTION veprrp019()
|
|
|
|
DEFINE vendedor RECORD
|
|
sec_vend SMALLINT,
|
|
fecha_factura DATE,
|
|
factura INTEGER,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad INTEGER ,
|
|
precio DECIMAL(10,2),
|
|
porc_venta DECIMAL(10,4),
|
|
descrip_esp CHAR(30),
|
|
nombre_vend CHAR(30),
|
|
apellido_vend CHAR(30) ,
|
|
vende CHAR(6),
|
|
codigo CHAR(7)
|
|
END RECORD
|
|
|
|
#WHENEVER ERROR CONTINUE
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21,
|
|
PROMPT LINE 14
|
|
|
|
OPEN FORM vefmrp019 FROM "vefmrp019"
|
|
DISPLAY FORM vefmrp019
|
|
CALL pantalla()
|
|
DISPLAY "veprrp019" AT 4,3
|
|
DISPLAY "Relacion Ventas en Unidades" AT 6,26
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME cod_cia,p_datos.*
|
|
|
|
CONSTRUCT criterio ON a.sec_vend,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec
|
|
FROM sec_vend,cod_n,cod_grupo,cod_tipo,cod_sec
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
LABEL pide:
|
|
PROMPT "1- Unisys 1354 2- IBM PRO"C:\\archivo" " FOR tipo_imp
|
|
IF tipo_imp != 1 AND tipo_imp != 2 THEN
|
|
LET numero_msg = -1301
|
|
CALL msg(numero_msg)
|
|
GOTO pide
|
|
END IF
|
|
IF tipo_imp = 2 THEN
|
|
START REPORT vendidas TO "C:\\archivo"
|
|
ELSE
|
|
START REPORT vendidas TO PIPE "lp -dcentral"
|
|
END IF
|
|
DISPLAY " " AT 19,14
|
|
DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>" AT 19,14
|
|
|
|
LET selec =
|
|
"SELECT a.sec_vend,a.fecha_factura,a.factura,b.cod_n,b.cod_grupo, ",
|
|
" b.cod_tipo,b.cod_sec,b.cantidad,b.cantidad * b.precio ",
|
|
"FROM vetb00002 a,vetb00003 b ",
|
|
"WHERE a.fecha_factura between ? and ? and a.factura = b.factura and ",
|
|
" a.cod_cia = ? and a.status_t is null and ",criterio clipped
|
|
|
|
PREPARE b_vende FROM selec
|
|
DECLARE c_vende CURSOR FOR b_vende
|
|
OPEN c_vende USING p_datos.fecha_in,p_datos.fecha_fin,cod_cia
|
|
|
|
DISPLAY " " AT 19,14
|
|
DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 19,14
|
|
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH c_vende INTO vendedor.*
|
|
IF status = notfound THEN
|
|
EXIT WHILE
|
|
END IF
|
|
SELECT descrip_esp INTO vendedor.descrip_esp FROM iptb00002
|
|
WHERE cod_n = vendedor.cod_n and cod_grupo = vendedor.cod_grupo and
|
|
cod_tipo = vendedor.cod_tipo and cod_sec = vendedor.cod_sec
|
|
|
|
SELECT nom1_emp,apell1_emp INTO vendedor.nombre_vend,vendedor.apellido_vend
|
|
FROM adtb00003 WHERE num_emp = vendedor.sec_vend
|
|
|
|
LET vendedor.vende = vendedor.sec_vend using "&&&&"
|
|
LET vendedor.codigo = vendedor.cod_n using "&",
|
|
vendedor.cod_grupo using "&",
|
|
vendedor.cod_tipo using "&&",
|
|
vendedor.cod_sec using "&&&"
|
|
|
|
OUTPUT TO REPORT vendidas (vendedor.*)
|
|
END WHILE
|
|
|
|
FINISH REPORT vendidas
|
|
CLEAR SCREEN
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
REPORT vendidas(x)
|
|
DEFINE x RECORD
|
|
sec_vend SMALLINT,
|
|
fecha_factura DATE,
|
|
factura INTEGER,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad INTEGER ,
|
|
precio DECIMAL(10,2),
|
|
porc_venta DECIMAL(10,4),
|
|
descrip_esp CHAR(30),
|
|
nombre_vend CHAR(30),
|
|
apellido_vend CHAR(30) ,
|
|
vendedor CHAR(6) ,
|
|
codigo CHAR(7)
|
|
END RECORD
|
|
|
|
DEFINE j RECORD
|
|
factura INTEGER,
|
|
fecha DATE,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descrip_esp CHAR(30),
|
|
precio DECIMAL(10,2),
|
|
cantidad INTEGER
|
|
END RECORD
|
|
DEFINE nombre_mes CHAR(10)
|
|
DEFINE ii,total_clientes INTEGER
|
|
DEFINE doble_on CHAR(3)
|
|
DEFINE doble_off CHAR(3)
|
|
DEFINE negrillas_on CHAR(6)
|
|
DEFINE negrillas_off CHAR(6)
|
|
DEFINE comp_on CHAR(3)
|
|
DEFINE comp_off CHAR(3)
|
|
DEFINE doce CHAR(6)
|
|
DEFINE normal CHAR(6)
|
|
DEFINE hora CHAR(5)
|
|
DEFINE i SMALLINT
|
|
DEFINE porc DECIMAL(10,4)
|
|
DEFINE val_vend,cant_vend,val_dev,cant_dev,total_gen,total_vend,
|
|
total_dev,cant_pagar DECIMAL(12,2)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 4
|
|
|
|
ORDER BY x.vendedor,x.codigo,x.factura
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
IF tipo_imp = 2 THEN
|
|
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
|
|
ELSE
|
|
LET doble_on = ASCII 001
|
|
LET doble_off = ASCII 002
|
|
LET negrillas_on = ASCII 027, ASCII 098
|
|
LET negrillas_off = ASCII 027, ASCII 099
|
|
LET comp_on = ASCII 31
|
|
LET comp_off = ASCII 29
|
|
LET doce = ASCII 30
|
|
LET normal = ASCII 029
|
|
END IF
|
|
LET hora = time
|
|
|
|
LET lj = (97 - LENGTH(p_companias.nombre CLIPPED))/2
|
|
PRINT COLUMN 1, doce, negrillas_on
|
|
PRINT COLUMN 1, "veprrp019",
|
|
COLUMN lj, p_companias.nombre CLIPPED,
|
|
COLUMN 90, "Pag.",
|
|
COLUMN 95, pageno using "###"
|
|
PRINT COLUMN 41, "Sistema de Ventas ",
|
|
COLUMN 88, today using "dd/mm/yyyy"
|
|
PRINT COLUMN 34, "Relacion de Ventas por Vendedor",
|
|
COLUMN 93, hora, negrillas_off
|
|
|
|
IF cod_cia = 1 THEN
|
|
PRINT COLUMN 1, "Rayovac Dominicana"
|
|
ELSE
|
|
PRINT COLUMN 1, "Distribuidora Dominicana de Pilas"
|
|
END IF
|
|
|
|
PRINT COLUMN 1, "Del ",p_datos.fecha_in using "dd/mm/yy"," Al ",
|
|
p_datos.fecha_fin using "dd/mm/yy"
|
|
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------"
|
|
|
|
PRINT COLUMN 1, "PRODUCTO",
|
|
COLUMN 45, "FACTURA",
|
|
COLUMN 53, "FECHA",
|
|
COLUMN 63, "VALOR",
|
|
COLUMN 75, "UNIDADES"
|
|
|
|
PRINT COLUMN 1,
|
|
"--------------------------------------------------",
|
|
"--------------------------------------------------"
|
|
|
|
IF total_gen is null THEN
|
|
LET total_gen = 0
|
|
END IF
|
|
SKIP 1 LINE
|
|
BEFORE GROUP OF x.vendedor
|
|
LET total_vend = 0
|
|
LET total_dev = 0
|
|
PRINT COLUMN 1,doble_on,"VENDEDOR : ",
|
|
x.nombre_vend clipped," ",
|
|
x.apellido_vend clipped, doble_off
|
|
|
|
SKIP 1 LINE
|
|
BEFORE GROUP OF x.codigo
|
|
PRINT COLUMN 1,x.cod_n using "&","-",x.cod_grupo using "&","-",
|
|
x.cod_tipo using "&&","-",x.cod_sec using "&&&",
|
|
" ",x.descrip_esp CLIPPED;
|
|
LET val_vend = 0
|
|
LET cant_vend = 0
|
|
ON EVERY ROW
|
|
|
|
PRINT COLUMN 45, x.factura using "&&&&&&",
|
|
COLUMN 53, x.fecha_factura using "dd/mm/yy",
|
|
COLUMN 62, x.precio using "###,###",
|
|
COLUMN 74, x.cantidad using "###,###"
|
|
LET val_vend = val_vend + x.precio
|
|
LET cant_vend = cant_vend + x.cantidad
|
|
|
|
AFTER GROUP OF x.codigo
|
|
|
|
PRINT COLUMN 60, "----------",
|
|
COLUMN 74, "----------"
|
|
PRINT COLUMN 30, " V E N T A -->",
|
|
COLUMN 58, GROUP SUM(x.precio) using "###,###,###",
|
|
COLUMN 72, GROUP SUM(x.cantidad) using "#,###,###"
|
|
|
|
LET total_vend = total_vend + val_vend
|
|
SELECT SUM(c.precio*a.cantidad_2),SUM(a.cantidad_2)
|
|
INTO val_dev,cant_dev
|
|
FROM iptb00006 a,vetb00003 c,vetb00002 d
|
|
WHERE a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND
|
|
a.cod_tipo = x.cod_tipo AND a.cod_sec = x.cod_sec AND
|
|
a.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND
|
|
a.cod_tipo = c.cod_tipo AND a.cod_sec = c.cod_sec AND
|
|
a.cod_mov IN (12,13) AND a.fecha BETWEEN p_datos.fecha_in AND
|
|
p_datos.fecha_fin AND a.fact_no = c.factura AND a.status_t IS NULL
|
|
AND a.fact_no = d.factura AND d.sec_vend = x.vendedor AND
|
|
a.status_t IS NULL AND d.cod_cia = cod_cia
|
|
|
|
IF val_dev IS NULL THEN
|
|
LET val_dev = 0
|
|
END IF
|
|
IF cant_dev IS NULL THEN
|
|
LET cant_dev = 0
|
|
END IF
|
|
LET total_dev = total_dev + val_dev
|
|
IF cant_dev > 0 THEN
|
|
PRINT COLUMN 30, "D E V O L U C I O N -->",
|
|
COLUMN 58, val_dev using "###,###,###",
|
|
COLUMN 72, cant_dev using "#,###,###"
|
|
PRINT COLUMN 62, "----------",
|
|
COLUMN 74, "----------"
|
|
PRINT COLUMN 30, " T O T A L -->",
|
|
COLUMN 58, val_vend - val_dev using "###,###,###",
|
|
COLUMN 72, cant_vend - cant_dev using "#,###,###"
|
|
END IF
|
|
SKIP 1 LINE
|
|
AFTER GROUP OF x.vendedor
|
|
PRINT COLUMN 1,negrillas_on
|
|
PRINT COLUMN 10, "TOTAL VALOR VENDIDO --> ",
|
|
COLUMN 58, total_vend USING "###,###,###"
|
|
PRINT COLUMN 10, "TOTAL VALOR DEVUELTO --> ",
|
|
COLUMN 58, total_dev USING "###,###,###"
|
|
PRINT COLUMN 58, "-----------"
|
|
PRINT COLUMN 10, "TOTAL VALOR VENDEDOR --> ",
|
|
COLUMN 58, total_vend - total_dev USING "###,###,###"
|
|
PRINT COLUMN 1,negrillas_off
|
|
|
|
END REPORT
|
|
|