259 lines
9.4 KiB
Plaintext
259 lines
9.4 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : COPRRP103
|
|
OBJETIVO : Reporte Detallado de Plan de Reorden Segun
|
|
Proyecciones.
|
|
PROGRAMADOR : Tadeo A. Ferreras F.
|
|
FECHA REALIZACION : Mayo 13, 1993
|
|
------------------------------------------------------------------
|
|
}
|
|
|
|
GLOBALS
|
|
"coprgb000.4gl"
|
|
##### Registro para almacenar la informacion enviada al reporte
|
|
|
|
DEFINE prt_reorden RECORD
|
|
fecha_del LIKE cotb00020.fecha_del,
|
|
fecha_al LIKE cotb00020.fecha_al,
|
|
cod_n LIKE cotb00020.cod_n,
|
|
cod_grupo LIKE cotb00020.cod_grupo,
|
|
cod_tipo LIKE cotb00020.cod_tipo,
|
|
cod_sec LIKE cotb00020.cod_sec,
|
|
descrip_esp LIKE intb00001.descrip_esp,
|
|
unidad_med LIKE intb00001.unidad_med,
|
|
tipo LIKE cotb00020.tipo,
|
|
dia_reord LIKE cotb00020.dia_reord,
|
|
mes_reord LIKE cotb00020.mes_reord
|
|
END RECORD
|
|
|
|
##### Funcion para buscar informacion
|
|
|
|
FUNCTION coprrp103()
|
|
CLEAR SCREEN
|
|
CALL pantalla()
|
|
DISPLAY "coprrp103" AT 4,3
|
|
DISPLAY "Listado de Reordenamiento" AT 6,27
|
|
LET int_flag = FALSE
|
|
|
|
LET tipo_papel = 2
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
##### Proceso de busqueda de la informacion requerida
|
|
|
|
DECLARE busqueda CURSOR FOR SELECT a.fecha_del,a.fecha_al,a.cod_n,
|
|
a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,
|
|
b.unidad_med,a.tipo,a.dia_reord,a.mes_reord
|
|
FROM cotb00020 a,intb00001 b
|
|
WHERE
|
|
a.cod_n = b.cod_n and a.cod_grupo = b.cod_grupo
|
|
and a.cod_tipo = b.cod_tipo and
|
|
a.cod_sec = b.cod_sec and a.mes_reord is not null
|
|
|
|
DISPLAY "Reporte Generandose ... Por Favor Espere"
|
|
AT 19,14 ATTRIBUTE(BOLD,REVERSE)
|
|
|
|
START REPORT reorden TO "C:\\archivo"
|
|
|
|
FOREACH busqueda INTO prt_reorden.*
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
FINISH REPORT reorden
|
|
EXIT FOREACH
|
|
END IF
|
|
|
|
OUTPUT TO REPORT reorden(prt_reorden.*)
|
|
END FOREACH
|
|
|
|
FINISH REPORT reorden
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
###### Funcion que disena el reporte
|
|
REPORT reorden(x)
|
|
DEFINE x RECORd
|
|
fecha_del LIKE cotb00020.fecha_del,
|
|
fecha_al LIKE cotb00020.fecha_al,
|
|
cod_n LIKE cotb00020.cod_n,
|
|
cod_grupo LIKE cotb00020.cod_grupo,
|
|
cod_tipo LIKE cotb00020.cod_tipo,
|
|
cod_sec LIKE cotb00020.cod_sec,
|
|
descrip_esp LIKE intb00001.descrip_esp,
|
|
unidad_med LIKE intb00001.unidad_med,
|
|
tipo LIKE cotb00020.tipo,
|
|
dia_reord LIKE cotb00020.dia_reord,
|
|
mes_reord LIKE cotb00020.mes_reord
|
|
END RECORD
|
|
|
|
DEFINE comprimido_12_off CHAR(2),
|
|
comprimido_12_on CHAR(2),
|
|
comprimido_on CHAR(2),
|
|
comprimido_off CHAR(2),
|
|
doble_on CHAR(2),
|
|
doble_off CHAR(2),
|
|
negrillas_on CHAR(2),
|
|
negrillas_off CHAR(2)
|
|
|
|
DEFINE cant,costo,prec DECIMAL(10,2),
|
|
c_base,c_otros_g DECIMAL(10,2),
|
|
c_c_flete DECIMAL(10,2),
|
|
t_c_flete DECIMAL(10,2),
|
|
t_t_flete DECIMAL(10,2),
|
|
num_ord INTEGER,
|
|
c_cod_n SMALLINT,
|
|
c_cod_grupo SMALLINT,
|
|
c_cod_tipo SMALLINT,
|
|
c_cod_sec SMALLINT
|
|
|
|
|
|
OUTPUT
|
|
LEFT MARGIN 6
|
|
TOP MARGIN 1
|
|
|
|
###### Sortenado la informacion en orden de mes de reorden y dia de reorden
|
|
|
|
ORDER BY x.mes_reord,x.dia_reord,
|
|
x.cod_n,x.cod_grupo,
|
|
x.cod_tipo,x.cod_sec
|
|
|
|
##### Creando el formato de salida
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET negrillas_on = ASCII 27, ASCII 71
|
|
LET negrillas_off = ASCII 27, ASCII 72
|
|
LET doble_on = ASCII 14
|
|
LET doble_off = ASCII 20
|
|
LET comprimido_on = ASCII 15
|
|
LET comprimido_off = ASCII 18
|
|
LET comprimido_12_on = ASCII 27, ASCII 77
|
|
LET comprimido_12_off = ASCII 27, ASCII 80
|
|
|
|
LET l = (147 - LENGTH(p_companias.nombre CLIPPED))/2
|
|
PRINT COLUMN 1, Negrillas_on,comprimido_on
|
|
COLUMN 1, "coprrp103",
|
|
COLUMN l, p_companias.nombre CLIPPED,
|
|
COLUMN 140, "Pag. ", pageno using "###"
|
|
PRINT COLUMN 65, "SISTEMA DE COMPRAS",
|
|
COLUMN 140, today using "dd/mm/yy"
|
|
PRINT COLUMN 54,
|
|
"PLAN DE REORDEN MENSUAL SEGUN PROYECCIONES",
|
|
COLUMN 140, time
|
|
PRINT COLUMN 61, "Del ", x.fecha_del using "dd/mmm/yy",
|
|
" Al ", x.fecha_al using "dd/mmm/yy"
|
|
SKIP 2 LINES
|
|
|
|
PRINT COLUMN 1,
|
|
"-----------------------------------",
|
|
"-----------------------------------",
|
|
"-----------------------------------",
|
|
"-----------------------------------",
|
|
"-------"
|
|
|
|
PRINT COLUMN 52, "UNIDAD",
|
|
COLUMN 134, "FECHA DE"
|
|
|
|
PRINT COLUMN 19, "MATERIAL",
|
|
COLUMN 52, "MEDIDA",
|
|
COLUMN 64, "TIPO",
|
|
COLUMN 81, "CANTIDAD",
|
|
COLUMN 101, "C & F",
|
|
COLUMN 134, "REORDEN"
|
|
|
|
PRINT COLUMN 1,
|
|
"-----------------------------------",
|
|
"-----------------------------------",
|
|
"-----------------------------------",
|
|
"-----------------------------------",
|
|
"-------", negrillas_on
|
|
BEFORE GROUP OF x.mes_reord
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1,negrillas_on,x.mes_reord,negrillas_off
|
|
LET t_c_flete = 0
|
|
IF t_t_flete IS NULL THEN
|
|
LET t_t_flete = 0
|
|
END IF
|
|
SKIP 1 LINE
|
|
ON EVERY ROW
|
|
|
|
###### Selecionando la ultima orden de compra para un material
|
|
|
|
SELECT UNIQUE cod_n,cod_grupo,cod_tipo,cod_sec,max(num_oc)
|
|
INTO c_cod_n,c_cod_grupo,c_cod_tipo,c_cod_sec,num_ord
|
|
FROM cotb00015
|
|
WHERE cod_n = x.cod_n AND
|
|
cod_grupo = x.cod_grupo AND cod_tipo = x.cod_tipo AND
|
|
cod_sec = x.cod_sec
|
|
group by 1,2,3,4
|
|
|
|
###### Selecionando canmtidad y precio del material
|
|
|
|
SELECT UNIQUE cantidad,precio
|
|
INTO cant,prec
|
|
FROM cotb00015
|
|
WHERE cod_n = c_cod_n
|
|
AND cod_grupo = c_cod_grupo AND cod_tipo = c_cod_tipo
|
|
AND cod_sec = c_cod_sec AND num_oc = num_ord
|
|
|
|
####### Selecionando los gastos que se incurren en la traida de materiales
|
|
|
|
SELECT c_flete,otros_g INTO c_c_flete,c_otros_g
|
|
FROM cotb00014 WHERE num_oc = num_ord
|
|
|
|
####### Selecionando la base de medida para la compra de un material
|
|
|
|
SELECT base INTO c_base
|
|
FROM intb00002
|
|
WHERE cod_n = c_cod_n
|
|
AND cod_grupo = c_cod_grupo AND cod_tipo = c_cod_tipo
|
|
AND cod_sec = c_cod_sec
|
|
|
|
IF c_base IS NULL THEN
|
|
LET c_base = 1
|
|
END IF
|
|
|
|
IF c_c_flete IS NULL THEN
|
|
LET c_c_flete = 0
|
|
END IF
|
|
|
|
IF c_otros_g IS NULL THEN
|
|
LET c_otros_g = 0
|
|
END IF
|
|
|
|
###### Calculando el costo para la compra de un material
|
|
|
|
LET costo = ((cant * prec)/c_base) + (c_c_flete + c_otros_g)
|
|
|
|
PRINT COLUMN 2, x.cod_n using "&","-",x.cod_grupo using "&","-",
|
|
x.cod_tipo using "&&","-",x.cod_sec using "&&&",
|
|
COLUMN 15,x.descrip_esp clipped,
|
|
COLUMN 55, x.unidad_med,
|
|
COLUMN 63, x.tipo clipped,
|
|
COLUMN 75, cant using "###,###,###.##",
|
|
COLUMN 92, costo using "###,###,###.##",
|
|
COLUMN 136, x.dia_reord
|
|
|
|
##### Acumulando total por mes de reorden
|
|
LET t_c_flete = t_c_flete + costo
|
|
|
|
##### Acumulando total general
|
|
LET t_t_flete = t_t_flete + costo
|
|
|
|
AFTER GROUP OF x.mes_reord
|
|
skip 1 line
|
|
PRINT COLUMN 1,negrillas_on,
|
|
COLUMN 81,"TOTAL...",
|
|
COLUMN 94,t_c_flete using "###,###,###.##",negrillas_off
|
|
|
|
ON LAST ROW
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1,negrillas_on,
|
|
COLUMN 73,"TOTAL GENERAL...",
|
|
COLUMN 94,t_t_flete using "###,###,###.##",
|
|
negrillas_off,comprimido_12_off
|
|
|
|
|
|
END REPORT
|
|
|