Files
MBS/PROYECTO/ccdir/ccprrp028.4gl
T

365 lines
12 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP028
OBJETIVO : Relacion de Notas de Creditos
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Junio 10, 1994
-------------------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
DEFINE t_bruto,t_desc,t_itbi DECIMAL(12,2)
DEFINE idx_1, idx_2, idx_3 SMALLINT
DEFINE fecha_inicial, fecha_final DATE
DEFINE salir, salir2, salir3, tipo_venta CHAR(1)
DEFINE selec5, selec6 CHAR(1500)
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_itbi DECIMAL(10,2),
monto_neto DECIMAL(10,2),
status_t CHAR(1) ,
sec_vend SMALLINT
END RECORD
DEFINE desc_ft RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
porc DECIMAL(10,2)
END RECORD
DEFINE det_ft RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
valor DECIMAL(10,2)
END RECORD
DEFINE monto_desc DECIMAL(10,2)
DEFINE monto_ft DECIMAL(10,2)
FUNCTION ccprrp028()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ccfmrp028 FROM "ccfmrp028"
DISPLAY FORM ccfmrp028
CALL pantalla()
DISPLAY "ccprrp028" AT 4,3
DISPLAY "Relacion Notas de Creditos" AT 6,27
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha_inicial,
fecha_final
AFTER FIELD fecha_inicial
IF fecha_inicial is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
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
IF fecha_final < fecha_inicial THEN
LET numero_msg = 86
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
IF fecha_inicial is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
IF fecha_final is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_final < fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
EXIT INPUT
END INPUT
# Busca las ventas locales para el rango de fechas especificado
LET selec4 =
"SELECT a.cod_cia, a.num_doc, a.fecha_orig, a.tipo_cliente, ",
"a.sec_cliente, a.valor_cheque, a.monto_desc, a.valor_efectivo,",
"a.valor, a.status_t,a.cod_emp_sec ",
"FROM cctb00001 a ",
" WHERE a.fecha_orig between ? and ? ",
" and a.tipo_doc = 'DE' and ",
" a.valor > 0 and ",
" a.num_doc = a.aplica_a ",
" ORDER BY 1,11,2 "
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE ventas_locales FROM selec4
DECLARE facturas SCROLL CURSOR FOR ventas_locales
OPEN facturas USING fecha_inicial, fecha_final
DISPLAY " " AT 20,14
START REPORT prn_credito TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
LET salir = "N"
LET idx_1 = 1
WHILE salir = "N"
FETCH ABSOLUTE idx_1 facturas INTO ventas.*
IF status = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF ventas.status_t = "E" or ventas.status_t = "D" THEN
LET ventas.monto_bruto = 0
LET ventas.monto_desc = 0
LET ventas.monto_itbi = 0
LET ventas.monto_neto = 0
END IF
LET idx_1 = idx_1 + 1
OUTPUT TO REPORT prn_credito(ventas.*)
END WHILE
FINISH REPORT prn_credito
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT prn_credito(x)
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_itbi DECIMAL(10,2),
monto_neto DECIMAL(10,2),
status_t CHAR(1),
sec_vend SMALLINT
END RECORD
DEFINE nombre,apellido CHAR(30)
DEFINE nombre_cia CHAR(20)
DEFINE descuento DECIMAL(10,2)
DEFINE valor_factura DECIMAL(10,2)
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(3)
DEFINE doce CHAR(3)
DEFINE normal CHAR(3)
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 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 69
LET comp_on = ASCII 15
LET comp_off = ASCII 18
# LET comp_on = ASCII 031
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 029
LET normal = ASCII 27, ASCII 80
LET hora = time
LET lj = (133 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_on
PRINT COLUMN 1, "ccprrp028",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 126, "Pag. ",pageno using "###"
PRINT COLUMN 50, " Sistema de Ventas ",
COLUMN 124, today using "dd/mm/yyyy"
PRINT COLUMN 53, "Relacion Notas De Creditos",
COLUMN 129, hora
PRINT COLUMN 54, "Del ", fecha_inicial using "dd/mm/yy",
" Al ", fecha_final using "dd/mm/yy"
SKIP 1 LINES
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"----------------------------------"
PRINT COLUMN 1, "Documen",
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, "ITBIS",
COLUMN 129, "Valor "
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"----------------------------------"
# , negrillas_off
BEFORE GROUP OF x.compania
IF x.compania= 1 THEN
LET nombre_cia = p_companias.nombre CLIPPED
END IF
IF x.compania is null THEN
LET nombre_cia = "NO TIENE CIA"
END IF
PRINT COLUMN 3, nombre_cia
SKIP 1 LINE
BEFORE GROUP OF x.sec_vend
SELECT nom1_emp,apell1_emp INTO nombre,apellido
FROM adtb00003
WHERE num_emp = x.sec_vend
PRINT COLUMN 3, "(",x.sec_vend using "<<<",")",nombre clipped,",",apellido
SKIP 1 LINE
ON EVERY ROW
LET nom_cli = NULL
IF x.status_t IS NULL THEN
SELECT 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
IF t_bruto IS NULL THEN
LET t_bruto = 0
END IF
IF t_desc IS NULL THEN
LET t_desc = 0
END IF
IF t_itbi IS NULL THEN
LET t_itbi = 0
END IF
LET t_bruto = t_bruto + x.monto_bruto
LET t_desc = t_desc + x.monto_desc
LET t_itbi = t_itbi + x.monto_itbi
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 93, x.monto_itbi using "####,###,###.##",
COLUMN 104, x.monto_bruto - x.monto_desc +
x.monto_itbi using "####,###,###.##"
AFTER GROUP OF x.sec_vend
SKIP 1 LINE
PRINT COLUMN 33, "Total Vendedor ---> ",
COLUMN 60, GROUP SUM(x.monto_bruto) using "####,###,###.##",
COLUMN 71, GROUP SUM(x.monto_desc) using "####,###,###.##",
COLUMN 82, GROUP SUM(x.monto_bruto - x.monto_desc)
using "####,###,###.##",
COLUMN 93, GROUP SUM(x.monto_itbi) using "####,###,###.##",
COLUMN 104, GROUP SUM(x.monto_bruto - x.monto_desc +
x.monto_itbi) using "####,###,###.##"
AFTER GROUP OF x.compania
SKIP 1 LINE
PRINT COLUMN 33, "Total Compania ---> ",
COLUMN 60, GROUP SUM(x.monto_bruto) using "####,###,###.##",
COLUMN 71, GROUP SUM(x.monto_desc) using "####,###,###.##",
COLUMN 82, GROUP SUM(x.monto_bruto - x.monto_desc)
using "####,###,###.##",
COLUMN 93, GROUP SUM(x.monto_itbi) using "####,###,###.##",
COLUMN 104, GROUP SUM(x.monto_bruto - x.monto_desc +
x.monto_itbi) using "####,###,###.##"
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 33, "Total General ---> ",
COLUMN 60, t_bruto using "####,###,###.##",
COLUMN 71, t_desc using "####,###,###.##",
COLUMN 82, t_bruto-t_desc using "####,###,###.##",
COLUMN 93, t_itbi using "####,###,###.##",
COLUMN 104, t_bruto-t_desc+t_itbi using "####,###,###.##"
PRINT normall
END REPORT