374 lines
12 KiB
Plaintext
374 lines
12 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : VEPRRP416
|
|
OBJETIVO : Listar las Entrada de Diario de Ventas A Credito
|
|
PROGRAMADOR : JUAN F. SOTO
|
|
FECHA REALIZACION : Julio 19, 1999
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
DATABASE marmotech
|
|
GLOBALS
|
|
|
|
DEFINE criterio,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 p_iptb20 RECORD LIKE iptb00020.*
|
|
DEFINE p_compania RECORD LIKE companias.*
|
|
DEFINE salir CHAR(1)
|
|
DEFINE debito,debito1,credito,credito1 DECIMAL(12,2)
|
|
DEFINE select_ac CHAR(1000)
|
|
DEFINE lj,idx_ac,ano,idx_a,idx_c,l SMALLINT
|
|
DEFINE ano_act,c_ano CHAR(4)
|
|
DEFINE fecha_2 CHAR(8)
|
|
DEFINE nombre_cta CHAR(30)
|
|
DEFINE fecha_ini_per CHAR(8),
|
|
iptb05 RECORD LIKE iptb00005.*
|
|
|
|
DEFINE detalle CHAR(30)
|
|
DEFINE mes SMALLINT
|
|
DEFINE tasa DECIMAL(5,2)
|
|
DEFINE p_fecha,fecha1, fecha2 DATE
|
|
DEFINE nominas CHAR(1)
|
|
DEFINE entra CHAR(14)
|
|
DEFINE entra1 CHAR(5)
|
|
DEFINE tipo_papel SMALLINT
|
|
DEFINE afecta CHAR(1)
|
|
DEFINE mano_ob,material,material9,material6,gastos DECIMAL(12,2)
|
|
|
|
###### Variables para almacenar los datos selecionados
|
|
|
|
###### Variables que la almacenan la informacion enviada al reporte
|
|
|
|
DEFINE salir1 CHAR(1)
|
|
DEFINE idx INTEGER
|
|
END GLOBALS
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
SELECT * INTO p_compania.* FROM companias
|
|
CALL veprrp416()
|
|
END MAIN
|
|
|
|
FUNCTION veprrp416()
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
##### Abriendo y desplegando el formulario de captura de datos
|
|
|
|
OPEN FORM vefmrp416 FROM "vefmrp416"
|
|
DISPLAY FORM vefmrp416
|
|
CALL pantalla()
|
|
DISPLAY "veprrp416" AT 4,3
|
|
DISPLAY "Ventas A Credito" AT 6,28
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
###### Aceptando los valores para el rango de fecha
|
|
|
|
INPUT BY NAME fecha1,fecha2
|
|
|
|
BEFORE FIELD fecha1
|
|
SELECT MAX(fecha) INTO p_fecha FROM cgtb00004
|
|
WHERE ref[1,9] = entra1
|
|
LET fecha1 = p_fecha + 1
|
|
|
|
DISPLAY BY NAME fecha1
|
|
|
|
AFTER FIELD fecha1
|
|
IF fecha1 IS NULL THEN
|
|
ERROR "(16) CAMPO EN BLANCO"
|
|
NEXT FIELD fecha1
|
|
END IF
|
|
|
|
AFTER FIELD fecha2
|
|
IF fecha2 is null THEN
|
|
ERROR "(16) CAMPO EN BLANCO"
|
|
NEXT FIELD fecha2
|
|
END IF
|
|
|
|
|
|
###### Selecionando en rango de fecha de la tabla de periodo para el fecha2
|
|
|
|
END INPUT
|
|
##### Creando la facilidad para cancelar proceso con DELETE O SUPR
|
|
|
|
IF int_flag THEN
|
|
ERROR "(2) OPERACION CANCELADA"
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
CONSTRUCT BY NAME criterio ON a.ventas
|
|
|
|
IF int_flag THEN
|
|
ERROR "(2) OPERACION CANCELADA"
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
LET debito1 = 0
|
|
LET debito = 0
|
|
LET credito1 = 0
|
|
LET credito = 0
|
|
|
|
# Busca la informacion requerida
|
|
|
|
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
|
|
ATTRIBUTE (REVERSE,BOLD)
|
|
|
|
# Busca los codigos de los productos terminados
|
|
|
|
# Busca las ventas reales del ano actual hasta el mes indicado anteriormente
|
|
|
|
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 ",
|
|
criterio CLIPPED,
|
|
" AND a.status_t IS NULL AND b.status_t IS NULL "
|
|
|
|
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
|
|
ERROR "(2) OPERACION CANCELADA"
|
|
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
|
|
|
|
LET p_vetb02.sub_total = p_vetb03.cantidad * p_vetb03.precio
|
|
LET p_vetb02.monto_desc = (p_vetb03.cantidad * p_vetb03.precio) *
|
|
(p_vetb02.porc_desc/100)
|
|
LET p_vetb02.monto_itbi = (p_vetb02.sub_total - p_vetb02.monto_desc)*
|
|
(p_vetb02.porc_itbi/100)
|
|
LET p_vetb02.neto = p_vetb02.sub_total - p_vetb02.monto_desc +
|
|
p_vetb02.monto_itbi
|
|
|
|
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 = (80 - LENGTH(p_compania.nombre CLIPPED))/2
|
|
|
|
PRINT comp_off
|
|
PRINT COLUMN 1, "veprrp416",
|
|
COLUMN lj, p_compania.nombre CLIPPED,
|
|
COLUMN 75, "Pag. ",pageno using "###"
|
|
LET l = (80 - LENGTH("Sistema de Ventas")) / 2
|
|
PRINT COLUMN l, "Sistema de Ventas ",
|
|
COLUMN 75, today using "dd/mm/yyyy"
|
|
|
|
LET l = (80 - LENGTH("Ventas a Credito")) / 2
|
|
PRINT COLUMN l, "Ventas a credito",
|
|
COLUMN 78, hora
|
|
IF x.ventas = "1" THEN
|
|
LET l = (80 - LENGTH("Ventas Locales")) / 2
|
|
PRINT COLUMN l, "Ventas Locales"
|
|
ELSE
|
|
LET l = (80 - LENGTH("Ventas Exportacion")) / 2
|
|
PRINT COLUMN l, "Ventas Exportacion"
|
|
END IF
|
|
PRINT COLUMN 34, "Al ",fecha2 USING "dd/mm/yyyy"
|
|
|
|
PRINT COLUMN 1,ASCII 27, ASCII 80
|
|
PRINT COLUMN 1,comp_on
|
|
|
|
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, "--------------------------------------------------",
|
|
"--------------------------------------------------",
|
|
"------------------------------"
|
|
SKIP 1 LINE
|
|
|
|
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
|
|
|
|
PRINT COLUMN 1, v.cod_n USING "&"," ",p_iptb20.producto CLIPPED,
|
|
COLUMN 40, GROUP SUM(x.sub_total) USING "###,###,###.##",
|
|
COLUMN 55, GROUP SUM(x.monto_desc) USING "###,###,###.##",
|
|
COLUMN 70, GROUP SUM(x.monto_itbi) USING "###,###,###.##",
|
|
COLUMN 85, GROUP SUM(x.neto) 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(x.sub_total) USING "###,###,###.##",
|
|
COLUMN 55, GROUP SUM(x.monto_desc) USING "###,###,###.##",
|
|
COLUMN 70, GROUP SUM(x.monto_itbi) USING "###,###,###.##",
|
|
COLUMN 85, GROUP SUM(x.neto) 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(x.sub_total) USING "###,###,###.##",
|
|
COLUMN 55, GROUP SUM(x.monto_desc) USING "###,###,###.##",
|
|
COLUMN 70, GROUP SUM(x.monto_itbi) USING "###,###,###.##",
|
|
COLUMN 85, GROUP SUM(x.neto) 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(x.sub_total) USING "###,###,###.##",
|
|
COLUMN 55, SUM(x.monto_desc) USING "###,###,###.##",
|
|
COLUMN 70, SUM(x.monto_itbi) USING "###,###,###.##",
|
|
COLUMN 85, SUM(x.neto) USING "###,###,###.##",
|
|
COLUMN 115, SUM(v.cantidad) USING "###,###,###.###"
|
|
PRINT COLUMN 40, "==============",
|
|
COLUMN 55, "==============",
|
|
COLUMN 70, "==============",
|
|
COLUMN 85, "==============",
|
|
COLUMN 115, "==============="
|
|
PRINT ASCII 27, ASCII 80
|
|
SKIP TO TOP OF PAGE
|
|
END REPORT
|
|
|
|
FUNCTION msgrp000(tipo_papel)
|
|
DEFINE tipo_papel SMALLINT,
|
|
longitud CHAR(11),
|
|
linea_papel CHAR(50)
|
|
|
|
CASE
|
|
WHEN tipo_papel = 1
|
|
LET longitud = " 9 1/2 x 11"
|
|
WHEN tipo_papel = 2
|
|
LET longitud = "14 7/8 x 11"
|
|
END CASE
|
|
|
|
LET linea_papel = "Coloque papel ",longitud," en la impresora."
|
|
DISPLAY linea_papel
|
|
AT 15,14
|
|
DISPLAY "Asegurese de que la impresora este encendida."
|
|
AT 16,14
|
|
DISPLAY "<Esc> Ejecuta impresion <Supr> Cancela impresion"
|
|
AT 18,14
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION pantalla()
|
|
DEFINE fecha CHAR(8),
|
|
hora char(5)
|
|
SELECT * INTO p_compania.*
|
|
FROM companias
|
|
|
|
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
|
|
LET fecha = today USING "dd/mm/yy"
|
|
LET hora = time
|
|
DISPLAY p_compania.nombre CLIPPED AT 4,l
|
|
ATTRIBUTE (REVERSE,YELLOW)
|
|
DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW)
|
|
DISPLAY "Sistema de Contabilidad General" AT 5,24
|
|
DISPLAY hora AT 6,73 ATTRIBUTE(YELLOW)
|
|
|
|
CALL fgl_drawbox(5,79,3,1)
|
|
CALL fgl_drawbox(1,79,22,1)
|
|
END FUNCTION
|