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

279 lines
8.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP021
OBJETIVO : Control de Entrega Factura
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Junio 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE nom_cli CHAR(30)
DEFINE selec4 CHAR(1000)
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 vent RECORD
fecha DATE,
factura INTEGER,
fech_factura DATE,
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
sec_vend SMALLINT,
monto DECIMAL(10,2),
debito DECIMAL(10,2),
credito DECIMAL(10,2),
balance DECIMAL(10,2)
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 veprrp021()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM vefmrp021 FROM "vefmrp021"
DISPLAY FORM vefmrp021
CALL pantalla()
DISPLAY "veprrp021" AT 4,3
DISPLAY "Control Entrega de facturas" AT 6,26
## Tipo de papel necesario para imprimir el reporte
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
## Criterio de busqueda para la impresion
INPUT BY NAME fecha_inicial
BEFORE FIELD fecha_inicial
LEt fecha_inicial = today
AFTER FIELD fecha_inicial
IF fecha_inicial is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
# Busca las ventas locales para el rango de fechas especificado
CONSTRUCT criterio ON a.sec_vend FROM sec_vend
LET selec4 =
"SELECT a.fecha,a.factura, a.fech_factura, a.tipo_cliente, ",
" a.sec_cliente,a.sec_vend,a.monto,a.debito,a.credito ",
"FROM vetb00031 a ",
"WHERE a.fecha = ? AND a.status_t IS NULL AND ",criterio clipped,
" ORDER BY 2 "
DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE ventas_locales FROM selec4
DECLARE facturas CURSOR FOR ventas_locales
OPEN facturas USING fecha_inicial
START REPORT vent_ft TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere >>"
AT 19,14 ATTRIBUTE (REVERSE)
LET salir = "N"
WHILE salir != "S"
FETCH facturas INTO vent.*
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 vent.monto IS NULL THEN
LET vent.monto = 0
END IF
IF vent.debito IS NULL THEN
LET vent.debito = 0
END IF
IF vent.credito IS NULL THEN
LET vent.credito = 0
END IF
LET vent.balance = vent.monto + vent.debito - vent.credito
OUTPUT TO REPORT vent_ft(vent.*)
END WHILE
FINISH REPORT vent_ft
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT vent_ft(x)
DEFINE x RECORD
fecha DATE,
factura INTEGER,
fech_factura DATE,
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
sec_vend SMALLINT,
monto DECIMAL(10,2),
debito DECIMAL(10,2),
credito DECIMAL(10,2),
balance DECIMAL(10,2)
END RECORD,
totalg1,totalg2,totalg3,totalg4,balance DECIMAL(10,2)
DEFINE nomb,apell CHAR(15)
DEFINE descuento DECIMAL(10,2)
DEFINE valor_factura DECIMAL(10,2)
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE normall CHAR(3)
DEFINE comprimido CHAR(3)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 2
BOTTOM MARGIN 2
ORDER BY x.sec_vend
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 comp_on = ASCII 031
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 27, ASCII 80
LET normall = ASCII 030
LET hora = time
LET lj = (133 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_on
PRINT COLUMN 1, "veprrp021",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 126, "Pag. ",pageno using "###"
PRINT COLUMN 42, " Sistema de Ventas ",
COLUMN 124, today using "dd/mm/yy"
PRINT COLUMN 42, " Control Entrega de Facturas ",
COLUMN 129, hora
PRINT COLUMN 57, "Fecha: ",x.fecha using "dd/mm/yy"
SKIP 1 LINES
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"----------------------------------"
PRINT COLUMN 117, "Valor a"
PRINT COLUMN 1, "Factura",
COLUMN 11, "Fecha",
COLUMN 20, "C l i e n t e",
COLUMN 66, "Monto RD$",
COLUMN 85, "Debito ",
COLUMN 102, "Credito ",
COLUMN 117, "Cobrar"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"----------------------------------"
# , negrillas_off
BEFORE GROUP OF x.sec_vend
SELECT nom1_emp,apell1_emp INTO nomb,apell FROM adtb00003
WHERE (status_t IS NULL OR status_t IN ("I")) AND
num_emp = x.sec_vend
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 2, x.sec_vend USING "&&&&"," ",
nomb clipped," ",apell clipped,negrillas_off
SKIP 1 LINE
ON EVERY ROW
LET nom_cli = NULL
SELECT nombre INTO nom_cli FROM vetb00004
WHERE tipo_cliente = x.tipo_cliente and sec_cliente = x.sec_cliente and
status_t is null
IF nom_cli IS NULL THEN
LET nom_cli = "Cliente no existe. Verifique"
END IF
PRINT COLUMN 1, x.factura using "######",
COLUMN 9, x.fech_factura using "dd/mm/yy",
COLUMN 20, x.tipo_cliente using "&&","-",
x.sec_cliente using "&&&&"," ", nom_cli clipped,
COLUMN 61, x.monto using "###,###,##&.&&",
COLUMN 77, x.debito using "###,###,##&.&&",
COLUMN 96, x.credito USING "###,###,##&.&&",
COLUMN 109, x.balance using "###,###,##&.&&"
AFTER GROUP OF x.sec_vend
SKIP 1 LINE
PRINT COLUMN 33, "Total General Ventas ---> ",
COLUMN 61, GROUP SUM(x.monto) USING "###,###,##&.&&",
COLUMN 77, GROUP SUM(x.debito) USING "###,###,##&.&&",
COLUMN 96, GROUP SUM(x.credito) USING "###,###,##&.&&",
COLUMN 109, GROUP SUM(x.balance) USING "###,###,##&.&&"
SKIP 5 LINE
PRINT column 1,normall
PRINT COLUMN 1,"Firma del Vendedor : ___________________________"
SKIP 1 LINE
PRINT COLUMN 1,"Fecha ____/____/____"
PRINT COLUMN 1,comp_off
SKIP TO TOP OF PAGE
END REPORT