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

364 lines
13 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP004
OBJETIVO : Reporte Para Entrada de Diario Ventas
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Enero 20, 1993
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE selec_v CHAR(1000)
DEFINE p_vetb02 RECORD LIKE vetb00002.*
DEFINE p_vetb03 RECORD LIKE vetb00003.*
DEFINE p_iptb02 RECORD LIKE iptb00002.*
DEFINE p_vetb04 RECORD LIKE vetb00004.*
DEFINE cond_venta INTEGER
DEFINE fecha1,fecha2 DATE
DEFINE ventas CHAR(1)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "smarmotech" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL veprrp004()
END MAIN
FUNCTION veprrp004()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21,
PROMPT LINE 14
OPEN FORM vefmrp004 FROM "vefmrp004"
DISPLAY FORM vefmrp004
DISPLAY "veprrp004" AT 4,3
DISPLAY "Entrada de Diario Ventas" AT 6,28
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha1,fecha2,ventas,cond_venta
AFTER FIELD ventas
IF ventas IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ventas
END IF
AFTER FIELD fecha1
IF fecha1 IS NULL OR fecha1 > TODAY THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL OR fecha2 < fecha1 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD cond_venta
IF cond_venta IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cond_venta
END IF
IF cond_venta = 1 THEN
ERROR "Venta al Contado" ATTRIBUTE(REVERSE)
ELSE
ERROR "Venta a Credito" ATTRIBUTE(REVERSE)
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF ventas IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ventas
END IF
IF fecha1 IS NULL OR fecha1 > TODAY THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
IF fecha2 IS NULL OR fecha2 < fecha1 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
IF cond_venta IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cond_venta
END IF
EXIT INPUT
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
# Busca los codigos de los productos terminados
# Busca las ventas reales del ano actual hasta el mes indicado anteriormente
IF cond_venta = 1 THEN
LET selec_v =
"SELECT UNIQUE a.*,b.*,c.* FROM vetb00002 a,vetb00003 b, iptb00002 c ",
"WHERE a.factura = b.factura AND b.cod_n = c.cod_n AND ",
" b.cod_grupo = c.cod_grupo AND b.cod_tipo = c.cod_tipo AND ",
" b.cod_sec = c.cod_sec AND a.fecha_factura BETWEEN '",fecha1," '",
" AND '",fecha2," '"," AND a.cond_pago=1 AND a.ventas = '",ventas," ' ",
" AND a.status_t IS NULL AND b.status_t IS NULL "
ELSE
LET selec_v =
"SELECT UNIQUE a.*,b.*,c.* FROM vetb00002 a,vetb00003 b, iptb00002 c ",
"WHERE a.factura = b.factura AND b.cod_n = c.cod_n AND ",
" b.cod_grupo = c.cod_grupo AND b.cod_tipo = c.cod_tipo AND ",
" b.cod_sec = c.cod_sec AND a.fecha_factura BETWEEN '",fecha1," '",
" AND '",fecha2," '"," AND a.cond_pago !=1 AND a.ventas= '",ventas," ' ",
" AND a.status_t IS NULL AND b.status_t IS NULL "
END IF
DISPLAY " " AT 19,14
DISPLAY "<<Buscando Informacion... Espere Por Favor" AT 19,14
PREPARE busca_vr FROM selec_v
DECLARE movi_vr CURSOR FOR busca_vr
OPEN movi_vr
START REPORT reporte4 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
FOREACH movi_vr INTO p_vetb02.*,p_vetb03.*,p_iptb02.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF p_vetb02.sec_vend != 144 THEN
LET p_vetb02.sec_vend = 145
END IF
IF p_vetb02.porc_desc IS NULL THEN
LET p_vetb02.porc_desc = 0
END IF
IF p_vetb02.porc_itbi IS NULL THEN
LET p_vetb02.porc_itbi = 0
END IF
OUTPUT TO REPORT reporte4(p_vetb02.*,p_vetb03.*,p_iptb02.*)
END FOREACH
FINISH REPORT reporte4
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte4(x,v,b)
DEFINE x RECORD LIKE vetb00002.*
DEFINE v RECORD LIKE vetb00003.*
DEFINE b RECORD LIKE iptb00002.*
DEFINE vendedor,imp,imp1 CHAR (1)
DEFINE descrip_venta CHAR(22)
DEFINE descrip1 CHAR(30)
DEFINE doble_on,doble_off,negrillas_on,negrillas_off,comp_on,comp_off,
doce,normal CHAR(2)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.sec_vend,b.cod_cia,v.cod_n
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 hora = time
LET lj = (130 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1,ASCII 27, ASCII 80
PRINT COLUMN 1,comp_on
PRINT COLUMN 1,"veprrp004",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 123, "Pag. ", pageno using "###"
PRINT COLUMN 56, "Sistema de Ventas",
COLUMN 123, today using "dd/mm/yy"
IF ventas = "1" THEN
PRINT COLUMN 56, " Venta Local"
ELSE
PRINT COLUMN 56, "Venta Exportacion"
END IF
IF cond_venta = "1" THEN
PRINT COLUMN 57, "Venta Al Contado"
ELSE
PRINT COLUMN 57, "Venta a Credito"
END IF
PRINT COLUMN 53, "Del ",fecha1 USING "dd/mm/yy",
" Al ",fecha2 USING "dd/mm/yy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------"
PRINT COLUMN 49, "MONTO",
COLUMN 64, "MONTO",
COLUMN 79, "MONTO",
COLUMN 94, "MONTO",
COLUMN 121, "CANTIDADES"
PRINT COLUMN 1, "PRODUCTO",
COLUMN 49, "BRUTO",
COLUMN 60, "DESCUENTO",
COLUMN 79, "ITBI",
COLUMN 94, "NETO",
COLUMN 123, "VENDIDAS"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------"
BEFORE GROUP OF x.sec_vend
SKIP 2 LINE
IF x.sec_vend = 144 THEN
PRINT "**** SAN CRISTOBAL ****"
ELSE
PRINT "**** SANTO DOMINGO ****"
END IF
BEFORE GROUP OF b.cod_cia
SKIP 1 LINE
IF b.cod_cia = 1 THEN
PRINT "PRODUCTO LOCAL"
ELSE
PRINT "PRODUCTO IMPORTADO"
END IF
BEFORE GROUP OF v.cod_n
SELECT a.producto INTO p_iptb20.producto FROM iptb00020 a
WHERE a.cod_n = v.cod_n
AFTER GROUP OF v.cod_n
skip 1 line
PRINT COLUMN 1, v.cod_n USING "&"," ",p_iptb20.producto CLIPPED,
COLUMN 40, GROUP SUM(v.cantidad * v.precio)
USING "###,###,###.##",
COLUMN 55, GROUP SUM((v.cantidad * v.precio)*(x.porc_desc/100))
USING "###,###,###.##",
COLUMN 70, GROUP SUM(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)) USING "###,###,###.##",
COLUMN 85, GROUP SUM(((v.cantidad * v.precio) -
((v.cantidad*v.precio)*(x.porc_desc/100)))+
(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)))
USING "###,###,###.##",
COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###"
AFTER GROUP OF b.cod_cia
PRINT COLUMN 40, "--------------",
COLUMN 55, "--------------",
COLUMN 70, "--------------",
COLUMN 85, "--------------",
COLUMN 115, "---------------"
PRINT COLUMN 1, "Total Por Origen Producto ---> ",
COLUMN 40, GROUP SUM(v.cantidad * v.precio)
USING "###,###,###.##",
COLUMN 55, GROUP SUM((v.cantidad*v.precio) * (x.porc_desc/100))
USING "###,###,###.##",
COLUMN 70, GROUP SUM(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)) USING "###,###,###.##",
COLUMN 85, GROUP SUM(v.cantidad * v.precio) -
GROUP SUM((v.cantidad*v.precio)*(x.porc_desc/100))+
GROUP SUM(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)) USING "###,###,###.##",
COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###"
AFTER GROUP OF x.sec_vend
PRINT COLUMN 40, "--------------",
COLUMN 55, "--------------",
COLUMN 70, "--------------",
COLUMN 85, "--------------",
COLUMN 115, "---------------"
PRINT COLUMN 1, "Total Por Localidad ---> ",
COLUMN 40, GROUP SUM(v.cantidad * v.precio)
USING "###,###,###.##",
COLUMN 55, GROUP SUM((v.cantidad*v.precio) * (x.porc_desc/100))
USING "###,###,###.##",
COLUMN 70, GROUP SUM(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)) USING "###,###,###.##",
COLUMN 85, GROUP SUM(v.cantidad * v.precio) -
GROUP SUM((v.cantidad*v.precio)*(x.porc_desc/100))+
GROUP SUM(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)) USING "###,###,###.##",
COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###"
ON LAST ROW
PRINT COLUMN 40, "--------------",
COLUMN 55, "--------------",
COLUMN 70, "--------------",
COLUMN 85, "--------------",
COLUMN 115, "---------------"
PRINT COLUMN 1, "Total Ventas ---> ",
COLUMN 40, SUM(v.cantidad * v.precio) USING "###,###,###.##",
COLUMN 55, SUM((v.cantidad * v.precio) * (x.porc_desc/100))
USING "###,###,###.##",
COLUMN 70, SUM(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)) USING "###,###,###.##",
COLUMN 85, SUM(v.cantidad * v.precio) -
SUM((v.cantidad * v.precio) * (x.porc_desc/100)) +
SUM(((v.cantidad * v.precio) -
((v.cantidad * v.precio) * (x.porc_desc/100))) *
(x.porc_itbi/100)) USING "###,###,###.##",
COLUMN 115, SUM(v.cantidad) USING "###,###,###.###"
PRINT COLUMN 40, "==============",
COLUMN 55, "==============",
COLUMN 70, "==============",
COLUMN 85, "==============",
COLUMN 115, "==============="
PRINT ASCII 27, ASCII 80
END REPORT