364 lines
13 KiB
Plaintext
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
|
|
|