208 lines
6.0 KiB
Plaintext
208 lines
6.0 KiB
Plaintext
{
|
|
=======================================================================
|
|
Programa : GEPRRP005
|
|
Sistema : Sistema de Informacion Gerencia
|
|
Proceso : Clientes con Ventas Mayores a X Cantidad
|
|
Autor : Tadeo A. Ferreras
|
|
Fecha : Junio 21,1993
|
|
=======================================================================
|
|
}
|
|
GLOBALS
|
|
"geprgb000.4gl"
|
|
|
|
DEFINE ger_comp2 RECORD
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente SMALLINT,
|
|
nombre CHAR(30),
|
|
limite DECIMAL(12,2),
|
|
neto LIKE vetb00002.neto,
|
|
secuencia SMALLINT
|
|
END RECORD,
|
|
cod1 SMALLINT
|
|
|
|
DEFINE fecha_in,fecha_fi DATE,
|
|
total2,cantidad1 DECIMAL(12,2)
|
|
|
|
FUNCTION geprrp005()
|
|
LET int_flag = FALSE
|
|
OPTIONS
|
|
FORM LINE 8
|
|
|
|
OPEN FORM gefmrp005 FROM "gefmrp005"
|
|
DISPLAY FORM gefmrp005
|
|
CALL pantalla()
|
|
|
|
DISPLAY "geprrp005" AT 4,3 ATTRIBUTE(RED)
|
|
DISPLAY "Clientes Con Ventas Mayores a X Cantidad" AT 6,20
|
|
ATTRIBUTE(BLACK)
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
|
|
|
|
INPUT BY NAME fecha_in,fecha_fi,cantidad1
|
|
|
|
ON KEY(CONTROL-P)
|
|
CALL busca_printer() RETURNING imprime,letras.*, archivo
|
|
|
|
|
|
AFTER FIELD fecha_in
|
|
IF fecha_in IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_in
|
|
END IF
|
|
|
|
BEFORE FIELD fecha_fi
|
|
LET fecha_fi = today
|
|
DISPLAY BY NAME fecha_fi
|
|
|
|
AFTER FIELD fecha_fi
|
|
IF fecha_fi IS NULL THEN
|
|
LET fecha_fi = today
|
|
END IF
|
|
|
|
IF fecha_fi < fecha_in THEN
|
|
LET numero_msg = 51
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_fi
|
|
END IF
|
|
|
|
DISPLAY BY NAME fecha_fi
|
|
|
|
AFTER FIELD cantidad1
|
|
IF cantidad1 IS NULL OR cantidad1 < 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cantidad1
|
|
END IF
|
|
|
|
END INPUT
|
|
|
|
IF int_flag tHEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
SELECT SUM(a.neto) INTO total2 FROM vetb00002 a,vetb00004 b
|
|
WHERE a.sec_cliente = b.sec_cliente AND a.status_t IS NULL AND
|
|
b.status_t IS NULL AND a.fecha_factura BETWEEN fecha_in AND fecha_fi
|
|
|
|
LET selec =
|
|
"SELECT a.tipo_cliente,a.sec_cliente,b.nombre,b.limite_credito,SUM(a.sub_total) ",
|
|
"FROM vetb00002 a,vetb00004 b ",
|
|
"WHERE a.status_t IS NULL AND a.fecha_factura between ? AND ? AND ",
|
|
" a.tipo_cliente = b.tipo_cliente and ",
|
|
" a.sec_cliente = b.sec_cliente AND b.status_t IS NULL ",
|
|
" and a.ventas = '1' ",
|
|
"GROUP BY 1,2,3,4 ORDER BY 5 DESC,1,2 "
|
|
|
|
DISPLAY "Buscando Informacion..... Espere por Favor" AT 17,14
|
|
ATTRIBUTE(BOLD)
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE buscar CURSOR FOR comando
|
|
OPEN buscar USING fecha_in,fecha_fi
|
|
|
|
START REPORT gerencia5 TO "clientes"
|
|
DISPLAY "Impresion en Proceso..... Espere por Favor " AT 17,14
|
|
INITIALIZE letras.* TO NULL
|
|
LET idx = 1
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH buscar INTO ger_comp2.*
|
|
IF STATUS = NOTFOUND THEN
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET ger_comp2.secuencia = idx
|
|
{
|
|
SELECT a.neto,a.fecha_factura
|
|
INTO ger_comp2.neto,ger_comp2.fecha
|
|
FROM vetb00002 a
|
|
WHERE a.factura = ger_comp2.factura
|
|
}
|
|
OUTPUT TO REPORT gerencia5(ger_comp2.*)
|
|
|
|
LET idx = idx + 1
|
|
END WHILE
|
|
FINISH REPORT gerencia5
|
|
#RUN imprime
|
|
END FUNCTION
|
|
|
|
REPORT gerencia5(x)
|
|
|
|
DEFINE x RECORD
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente SMALLINT,
|
|
nombre CHAR(30),
|
|
limite DECIMAL(12,2),
|
|
neto LIKE vetb00002.neto,
|
|
secuencia SMALLINT
|
|
END RECORD
|
|
|
|
DEFINE descrip,descrip1 CHAR(30),
|
|
hora CHAR(5)
|
|
|
|
OUTPUT
|
|
LEFT MARGIN 2
|
|
TOP MARGIN 1
|
|
|
|
ORDER BY x.secuencia
|
|
FORMAT
|
|
PAGE HEADER
|
|
|
|
LET hora = time
|
|
{
|
|
PRINT COLUMN 1, letras.negrillas_on
|
|
PRINT COLUMN 1, "geprrp005",
|
|
COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 73, "Pag. ", pageno USING "###"
|
|
PRINT COLUMN 17, " Sistema de Informacion Gerencial",
|
|
COLUMN 73, today USING "dd/mm/yyyy"
|
|
PRINT COLUMN 18, "Clientes con Ventas Mayores a ",
|
|
cantidad1 USING "###,###,##&.&&",
|
|
COLUMN 76, hora
|
|
SKIP 1 LINES
|
|
PRINT COLUMN 1, "Fecha: Del ",fecha_in USING "MM/DD/yyyy",
|
|
" Al ",fecha_fi USING "MM/DD/yyyy"
|
|
|
|
PRINT COLUMN 1, "----------------------------------------",
|
|
"----------------------------------------",
|
|
"-----------------------"
|
|
PRINT COLUMN 1, "Secuencia",
|
|
COLUMN 11, "Cliente",
|
|
COLUMN 53, "Limite Credito",
|
|
COLUMN 70, "Factura",
|
|
COLUMN 80, "Fecha",
|
|
COLUMN 98, "Monto"
|
|
|
|
PRINT COLUMN 1, "----------------------------------------",
|
|
"----------------------------------------",
|
|
"-----------------------"
|
|
PRINT letras.negrillas_off
|
|
}
|
|
ON EVERY ROW
|
|
|
|
PRINT COLUMN 3, x.secuencia USING "#,###",
|
|
COLUMN 11, x.tipo_cliente USING "&&","-",
|
|
x.sec_cliente USING "&&&&"," ", x.nombre,
|
|
2 SPACES, x.limite USING "###,###,###.##",
|
|
2 SPACES, x.neto USING "###,###,###.##"
|
|
|
|
ON LAST ROW
|
|
PRINT COLUMN 1, letras.negrillas_on
|
|
PRINT COLUMN 30, "TOTAL VENTAS...."," ",
|
|
COLUMN 74, SUM(x.neto) USING "###,###,###.##"
|
|
|
|
END REPORT
|
|
|