primer commit subida
This commit is contained in:
@@ -0,0 +1,242 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : CCPRRP011
|
||||
OBJETIVO : Reporte de Descuento por Pronto Pago
|
||||
Mensual Comparativo
|
||||
PROGRAMADOR : Tadeo A. Ferreras F.
|
||||
FECHA REALIZACION : Mayo 12,1993.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"ccprgb000.4gl"
|
||||
#### Definicion de variables para busqueda de informacion ####
|
||||
|
||||
DEFINE p_ano CHAR(4)
|
||||
DEFINE mes RECORD
|
||||
mes_in SMALLINT,
|
||||
mes_fi SMALLINT
|
||||
END RECORD
|
||||
FUNCTION ccprrp011()
|
||||
DEFINE prt_desc1 RECORD
|
||||
mes_fact SMALLINT,
|
||||
descrip LIKE mestable.descrip,
|
||||
fecha1 DATE,
|
||||
fecha2 DATE
|
||||
END RECORD
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 10
|
||||
WHENEVER ERROR CONTINUE
|
||||
CLEAR SCREEN
|
||||
OPEN FORM ccfmrp011 FROM "ccfmrp011"
|
||||
CALL pantalla()
|
||||
DISPLAY "ccprrp011" at 4,4 attribute(blue)
|
||||
DISPLAY "Descuento por Pronto Pago Mensual Comparativo" at 6,18
|
||||
DISPLAY FORM ccfmrp011
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
###### Proceso para aceptar valores del rango de fecha para busqueda #####
|
||||
|
||||
INPUT BY NAME mes.*,p_ano
|
||||
AFTER FIELD p_ano
|
||||
IF p_ano is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD p_ano
|
||||
END IF
|
||||
|
||||
AFTER FIELD mes_in
|
||||
IF mes.mes_in is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_in
|
||||
END IF
|
||||
|
||||
IF mes.mes_in > 12 THEN
|
||||
LET numero_msg = 154
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_in
|
||||
END IF
|
||||
|
||||
AFTER FIELD mes_fi
|
||||
IF mes.mes_fi is null THEN
|
||||
LET mes.mes_fi = month(today)
|
||||
DISPLAY BY NAME mes.mes_fi
|
||||
END IF
|
||||
|
||||
IF mes.mes_fi > 12 THEN
|
||||
LET numero_msg = 154
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_fi
|
||||
END IF
|
||||
|
||||
IF mes.mes_fi < mes.mes_in THEN
|
||||
LET numero_msg = 86
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD mes_fi
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
|
||||
###### Facilidad para cancelar proceso de impresion ###########
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
return
|
||||
END IF
|
||||
|
||||
####### Selecionando informacion para imprimir #######
|
||||
DECLARE buscar CURSOR FOR
|
||||
SELECT a.mes,g.descrip,a.fecha_inicio,a.fecha_corte
|
||||
FROM mestable g,prdtable a WHERE a.mes = g.mes AND
|
||||
a.mes BETWEEN mes.mes_in AND mes.mes_fi AND a.ano = p_ano
|
||||
|
||||
IF status < 0 THEN
|
||||
CALL integridad()
|
||||
IF bANDera = 1 THEN
|
||||
LET bANDera = 0
|
||||
END IF
|
||||
END IF
|
||||
|
||||
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" at 19,14
|
||||
attribute(reverse,bold)
|
||||
|
||||
####### Enviando informacion a la impresora de contabilidad #######
|
||||
|
||||
START REPORT prt_desc2 TO "C:\\archivo"
|
||||
DISPLAY " " at 19,14
|
||||
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" at 19,14
|
||||
ATTRIBUTE(REVERSE)
|
||||
FOREACH buscar INTO prt_desc1.*
|
||||
OUTPUT TO REPORT prt_desc2(prt_desc1.*,mes.mes_in,mes.mes_fi)
|
||||
END FOREACH
|
||||
FINISH REPORT prt_desc2
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
REPORT prt_desc2(x,mes1,mes2)
|
||||
|
||||
####### Definiendo las variable que se imprimiran #######
|
||||
|
||||
DEFINE x RECORD
|
||||
mes_fact SMALLINT,
|
||||
descrip LIKE mestable.descrip,
|
||||
fecha1 DATE,
|
||||
fecha2 DATE
|
||||
END RECORD,
|
||||
mes1,mes2 SMALLINT,
|
||||
fecha DATE,
|
||||
i,c INTEGER,
|
||||
valor,monto_desc,itbi,acum_itbi,acum_valor,acum_desc DECIMAL(11,2),
|
||||
proporc,acum_prop DECIMAL(10,3)
|
||||
|
||||
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,normal CHAR(2)
|
||||
DEFINE hora CHAR(5)
|
||||
DEFINE l SMALLINT
|
||||
DEFINE varia CHAR(10)
|
||||
DEFINE mes_p CHAR(15)
|
||||
|
||||
|
||||
####### Ordenando o sorteando informacion ########
|
||||
|
||||
ORDER BY x.mes_fact
|
||||
|
||||
######## Disenando el formato de salidad del reporte ######
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_off = ASCII 20
|
||||
LET negrillas_on = ASCII 27, ASCII 98
|
||||
LET negrillas_off = ASCII 27, ASCII 99
|
||||
LET normal = ASCII 27, ASCII 80
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 30
|
||||
LET doce = ASCII 27, ASCII 77
|
||||
LET hora = time
|
||||
LET fecha = today
|
||||
LET hora = time
|
||||
|
||||
LET lj = (130 - LENGTH(p_companias.nombre CLIPPED))/2
|
||||
PRINT COLUMN 1, comp_on
|
||||
PRINT COLUMN 1, "ccprrp011",
|
||||
COLUMN lj, p_companias.nombre CLIPPED,
|
||||
COLUMN 123, "Pag. ",pageno USING "###"
|
||||
PRINT COLUMN 42, " Sistema de Cuentas por Cobrar",
|
||||
COLUMN 123, today USING "dd/mm/yy"
|
||||
PRINT COLUMN 42, "Descuento por Pronto Pago Mensual Comparativo",
|
||||
COLUMN 126, hora
|
||||
skip 1 line
|
||||
PRINT COLUMN 1, negrillas_on
|
||||
PRINT COLUMN 1, "__________________________________________________",
|
||||
"__________________________________________________",
|
||||
"______________________________"
|
||||
PRINT COLUMN 40, "A c t u a l",
|
||||
COLUMN 92, "A c u m u l a d o"
|
||||
|
||||
PRINT COLUMN 27, "Monto a",
|
||||
COLUMN 82, "Monto a"
|
||||
|
||||
PRINT COLUMN 2, "Mes",
|
||||
COLUMN 27, "Cobrar",
|
||||
COLUMN 42, "Desc.",
|
||||
COLUMN 54, "Prop.%",
|
||||
COLUMN 65, "Itbi",
|
||||
COLUMN 82, "Cobrar",
|
||||
COLUMN 98, "Desc.",
|
||||
COLUMN 110, "Prop.%",
|
||||
COLUMN 127, "Itbi"
|
||||
|
||||
PRINT COLUMN 1, "__________________________________________________",
|
||||
"__________________________________________________",
|
||||
"______________________________"
|
||||
PRINT COLUMn 1, negrillas_off
|
||||
|
||||
SKIP 1 LINE
|
||||
#ON EVERY ROW
|
||||
BEFORE GROUP OF x.mes_fact
|
||||
LET valor = 0
|
||||
LET monto_desc = 0
|
||||
|
||||
AFTER GROUP OF x.mes_fact
|
||||
|
||||
SELECT sum(a.neto),SUM(b.monto_desc) INTO valor,monto_desc
|
||||
FROM cctb00001 b,vetb00002 a
|
||||
WHERE b.tipo_doc = "PG" AND b.aplica_a = a.factura AND
|
||||
b.monto_desc != 0 AND b.fecha_orig BETWEEN x.fecha1 AND x.fecha2 and
|
||||
a.status_t is null
|
||||
|
||||
IF acum_valor is null THEN LET acum_valor= 0 END IF
|
||||
IF acum_desc is null THEN LET acum_desc = 0 END IF
|
||||
|
||||
#### Acumulando monto de la factura y monto del descuento por mes del
|
||||
#### periodo en el rango de fecha
|
||||
|
||||
LET acum_valor= acum_valor+ valor
|
||||
LET acum_desc = acum_desc + monto_desc
|
||||
LET proporc = (monto_desc/valor) * 100
|
||||
LET acum_itbi= acum_desc * 0.08
|
||||
LET itbi = monto_desc * 0.08
|
||||
LET acum_prop = (acum_desc/acum_valor) * 100
|
||||
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 2, x.descrip clipped,
|
||||
COLUMN 22, valor USING "###,###,###.##",
|
||||
COLUMN 38, monto_desc USING "###,###,###.##",
|
||||
COLUMN 51, proporc USING "##&.##",
|
||||
COLUMN 63, itbi USING "###,###.##",
|
||||
COLUMN 77, acum_valor USING "###,###,###.##",
|
||||
COLUMN 92, acum_desc USING "###,###,###.##",
|
||||
COLUMN 107, acum_prop USING "##&.##",
|
||||
COLUMN 119, acum_itbi USING "#,###,###.##"
|
||||
ON LAST ROW
|
||||
PRINT comp_off
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user