233 lines
7.8 KiB
Plaintext
233 lines
7.8 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : COPRRP027
|
|
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 coprrp027()
|
|
CLEAR SCREEN
|
|
CALL pantalla()
|
|
DISPLAY "coprrp027" 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 reporte_27 TO "C:\\archivo"
|
|
|
|
FOREACH busqueda INTO prt_reorden.*
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
OUTPUT TO REPORT reporte_27(prt_reorden.*)
|
|
END FOREACH
|
|
|
|
FINISH REPORT reporte_27
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
###### Funcion que disena el reporte
|
|
REPORT reporte_27(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,comprimido_12_on,comprimido_on,comprimido_off,
|
|
doble_on,doble_off,negrillas_on,negrillas_off CHAR(2)
|
|
|
|
DEFINE cant,costo,prec,c_base,c_otros_g,c_c_flete,t_c_flete,t_t_flete
|
|
DECIMAL(12,2),
|
|
num_ord INTEGER,
|
|
c_cod_n,c_cod_grupo,c_cod_tipo, 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, comprimido_12_off,Negrillas_on
|
|
PRINT COLUMN 1, "coprrp027",
|
|
COLUMN l, p_companias.nombre CLIPPED,
|
|
COLUMN 140, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 50, " SISTEMA DE COMPRAS",
|
|
COLUMN 140, today using "dd/mm/yy"
|
|
PRINT COLUMN 50, " PLAN DE REORDEN MENSUAL SEGUN PROYECCIONES",
|
|
COLUMN 140, time
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "FECHA: Del ", x.fecha_del using "dd/mmm/yy",
|
|
" Al ", x.fecha_al using "dd/mmm/yy"
|
|
|
|
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, "-------------------------------------------------",
|
|
"-------------------------------------------------",
|
|
"-------------------------------------------------"
|
|
PRINT negrillas_on
|
|
|
|
BEFORE GROUP OF x.mes_reord
|
|
PRINT negrillas_on
|
|
PRINT COLUMN 1, x.mes_reord
|
|
PRINT negrillas_off
|
|
LET t_c_flete = 0
|
|
IF t_t_flete IS NULL THEN
|
|
LET t_t_flete = 0
|
|
END IF
|
|
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 UNIQUE c_flete,otros_g INTO c_c_flete,c_otros_g
|
|
FROM cotb00014
|
|
WHERE num_oc = num_ord AND status_t IS NULL AND fech_oc > "010694"
|
|
|
|
####### Selecionando la base de medida para la compra de un material
|
|
|
|
SELECT UNIQUE MAX(a.base) INTO c_base FROM intb00002 a
|
|
WHERE a.cod_n = c_cod_n AND a.cod_grupo = c_cod_grupo AND
|
|
a.cod_tipo = c_cod_tipo AND a.cod_sec = c_cod_sec AND
|
|
a.status_t IS NULL
|
|
|
|
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
|
|
PRINT negrillas_on
|
|
PRINT COLUMN 81,"TOTAL...",
|
|
COLUMN 94,t_c_flete using "###,###,###.##"
|
|
PRINT negrillas_off
|
|
|
|
ON LAST ROW
|
|
SKIP 1 LINE
|
|
PRINT negrillas_on
|
|
PRINT COLUMN 73, "TOTAL GENERAL...",
|
|
COLUMN 94, t_t_flete using "###,###,###.##"
|
|
PRINT negrillas_on,comprimido_12_off
|
|
|
|
END REPORT
|
|
|