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

252 lines
7.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CCPRRP030
OBJETIVO : Notas De Creditos Sin Aplicar
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Julio 28, 1994
-------------------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
DEFINE nom1,apell1 CHAR(15)
DEFINE m RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
nombre CHAR(30),
num_doc SMALLINT,
monto DECIMAL(12,2),
valor_orig DECIMAL(12,2),
vend SMALLINT,
nom_v CHAR(30)
END RECORD
DEFINE fecha2,fecha_corte DATE
DEFINE s_cliente CHAR(6)
FUNCTION ccprrp030()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ccfmrp030 FROM "ccfmrp030"
DISPLAY FORM ccfmrp030
CALL pantalla()
DISPLAY "ccprrp030" AT 4,3
DISPLAY "Notas de Creditos Sin Aplicar" AT 6,25
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
# Creando el criterio de busqueda de informteion
INPUT BY NAME fecha2
AFTER FIELD fecha2
IF fecha2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha2
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
##### Selecionando la prima del dolar tetual
LET selec =
"SELECT a.tipo_cliente,a.sec_cliente,b.nombre,a.num_doc, ",
" SUM(a.valor + a.monto_desc) ",
"FROM cctb00001 a,vetb00004 b ",
"WHERE a.fecha_orig <= ? ",
" AND a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente AND ",
" a.status_t IS NULL AND a.tipo_doc = 'DE' ",
"GROUP BY 1,2,3,4 HAVING SUM(a.valor + a.monto_desc) <> 0 "
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE comando FROM selec
DECLARE busca CURSOR FOR comando
OPEN busca USING fecha2
START REPORT rep30 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH busca INTO m.*
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
# Busca el vendedor para este cliente
SELECT sec_vend INTO m.vend FROM vetb00028
WHERE sec_cliente = m.sec_cliente and
tipo_cliente = m.tipo_cliente
#--------------------------------------------------------------------------
SELECT a.valor + a.monto_desc INTO m.valor_orig FROM cctb00001 a
WHERE a.valor + a.monto_desc > 0 AND a.aplica_a = a.num_doc AND
a.num_doc=m.num_doc AND a.status_t IS NULL AND a.tipo_doc="AV"
AND a.sec_cliente = m.sec_cliente
SELECT a.nom1_emp,a.apell1_emp INTO nom1,apell1 FROM adtb00003 a
WHERE a.num_emp = m.vend
LET m.nom_v = nom1 CLIPPED," ",apell1 CLIPPED
OUTPUT TO REPORT rep30(m.*)
END WHILE
FINISH REPORT rep30
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
#### Funcion que genera el reporte
REPORT rep30(j)
DEFINE j RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
nombre CHAR(30),
num_doc SMALLINT,
monto DECIMAL(12,2),
valor_orig DECIMAL(12,2),
vend SMALLINT,
nom_v CHAR(30)
END RECORD
DEFINE p_cliente CHAR(6)
DEFINE pago_num,numero INTEGER
DEFINE nombre_cta CHAR(30),
p_cxc,p_dep,pago_monto DECIMAL(12,2),
fecha_c DATE
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(3)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
DEFINE total1,total2,total3 DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
##### Sorteando la salida de la informteion
ORDER BY j.vend,j.sec_cliente,j.num_doc
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 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 77
LET normal = ASCII 27, ASCII 80
LET hora = time
LET lj = (85 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, doce,negrillas_on
PRINT COLUMN 1, "ccprrp030",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 78, "Pag. ",pageno USING "###"
PRINT COLUMN 20, " Sistema de Cuentas Por Cobrar ",
COLUMN 78, today using "dd/mm/yy"
PRINT COLUMN 30, "Notas de Creditos Sin Aplicar",
COLUMN 78, hora
PRINT COLUMN 1, "FECHA: AL ", fecha2 USING "dd/mm/yy"
SKIP 1 LINE
PRINT COLUMN 1, "--------------------------------------------------",
"----------------------------------------------"
PRINT COLUMN 1, "Cliente",
COLUMN 45, "Docto.",
COLUMN 55, " Monto",
COLUMN 70, " Aplicado",
COLUMN 85, " Por Aplicar"
PRINT COLUMN 1, "--------------------------------------------------",
"-----------------------------------------------"
PRINT negrillas_off
BEFORE GROUP OF j.vend
LET total3 = 0
PRINT negrillas_on
PRINT COLUMN 1, j.vend USING "####"," ",j.nom_v CLIPPED
PRINT negrillas_off
BEFORE GROUP OF j.sec_cliente
LET total1 = 0
PRINT COLUMN 1, j.tipo_cliente USING "&&","-",
j.sec_cliente USING "&&&&"," ",j.nombre CLIPPED;
ON EVERY ROW
IF total2 IS NULL THEN
LET total2 = 0
END IF
LET total1 = total1 + j.monto
LET total2 = total2 + j.monto
LET total3 = total3 + j.monto
PRINT COLUMN 45, j.num_doc USING "######",
COLUMN 55, j.valor_orig USING "###,###,###.##",
COLUMN 70, j.valor_orig - j.monto USING "(((,(((,((#.##)",
COLUMN 85, j.monto USING "(((,(((,((#.##)"
AFTER GROUP OF j.sec_cliente
PRINT negrillas_on
PRINT COLUMN 1,"Total Cliente",
COLUMN 85, total1 USING "(((,(((,((#.##)"
PRINT negrillas_off
AFTER GROUP OF j.vend
PRINT negrillas_on
PRINT COLUMN 1,"Total Vendedor",
COLUMN 85, total3 USING "(((,(((,((#.##)"
PRINT negrillas_off
SKIP TO TOP OF PAGE
ON LAST ROW
SKIP TO TOP OF PAGE
PRINT negrillas_on
PRINT COLUMN 1,"Total Gral. ",
COLUMN 85, total2 USING "(((,(((,((#.##)"
PRINT negrillas_off,normal
LET total2 = 0
END REPORT