Files
MBS/PROYECTO/indir/irprrp042.4gl
T
jpeguero efdf8953dd Reorganiza MATERIA PRIMA a PROYECTO y avanza inprmt002/005/013/046
- Mueve todo el contenido de PROYECTOS/indir y varias funciones
  compartidas de PROYECTOS/otrodir hacia PROYECTO, siguiendo
  instruccion de Johnny (PROYECTOS se va a eliminar).
- inprmt002: agrega campo Desglose faltante, corrige typo "eLiminar".
- inprmt005: agrega formulario y 3 campos faltantes (Consumo,
  Requiere Autorizacion, Requisiciones), corrige typo "eLiminar".
- inprmt013: agrega formulario, titulo, corrige typo "eLiminar".
- inprmt046: agrega formulario y varias funciones/dependencias
  faltantes (cincodmov, clasf_bloque, medidas, defecto,
  buscaEmp, consultaTransportista, busca_departamento);
  corrige nombres de campo desalineados con el codigo
  (depto_a, bodega) y los convierte a ComboBox donde el
  codigo lo requiere.
- Corrige dependencia faltante de FORMULARIOS_IN a la libreria
  Database (bloqueaba todo el modulo de MATERIA PRIMA).
2026-08-26 13:31:09 -04:00

231 lines
7.3 KiB
Plaintext

{
----------------------------------------------------------------------------
PROGRAMA : INPRRP014
FUNCION : Comparativo de la existencia calculada por movimientos y
existencia en conteo fisico
PROGRAMADOR : Juan Fco. Soto
FECHA : Diciembre 02, 1992.
----------------------------------------------------------------------------
}
GLOBALS
"inprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL inprrp014()
END MAIN
FUNCTION inprrp014()
DEFINE idx_c SMALLINT
DEFINE salir CHAR(1)
DEFINE p_ano CHAR(4)
DEFINE p_mes INTEGER
DEFINE comparativo RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip_esp CHAR(30),
unidad_med CHAR(3),
existencia LIKE intb00011.cantidad,
movimiento LIKE intb00006.cantidad_2,
costo DECIMAL(10,4)
END RECORD
DEFINE select_cost CHAR (1000)
OPTIONS
FORM LINE 8,
ERROR LINE 24,
COMMENT LINE 21
OPEN FORM INFMRP014 FROM "infmrp014"
CALL PANTALLA()
DISPLAY FORM INFMRP014
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
INPUT BY NAME datos_cons.fech_fi
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
CONSTRUCT criterio ON c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
FROM cod_n,cod_grupo,cod_tipo,cod_sec
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
START REPORT reporte3 TO archivo
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
LET p_ano = YEAR(datos_cons.fech_fi)
LET p_mes = MONTH(datos_cons.fech_fi)
LET selec =
" SELECT intb00001.cod_n, intb00001.cod_grupo, ",
" intb00001.cod_tipo, intb00001.cod_sec, ",
" intb00001.descrip_esp, ",
" intb00001.unidad_med, ",
" intb00011.cantidad, ",
" intb00011.balance, ",
" intb00013.costo_st ",
" FROM intb00001 LEFT OUTER JOIN ",
" intb00013 ON intb00001.cod_n = intb00013.cod_n AND ",
" intb00001.cod_grupo = intb00013.cod_grupo AND ",
" intb00001.cod_tipo = intb00013.cod_tipo AND ",
" intb00001.cod_sec = intb00013.cod_sec LEFT OUTER JOIN ",
" intb00011 ON intb00001.cod_n = intb00011.cod_n AND ",
" intb00001.cod_grupo = intb00011.cod_grupo AND ",
" intb00001.cod_tipo = intb00011.cod_tipo AND ",
" intb00001.cod_sec = intb00011.cod_sec ",
" WHERE intb00011.fecha = CONVERT(DATETIME, ?) AND ",
" (intb00013.ano = ?) AND (intb00013.mes_fin = ?) ",
" ORDER BY intb00001.cod_n, intb00001.cod_grupo, ",
" intb00001.cod_tipo, intb00001.cod_sec"
DISPLAY "<< Buscando Informacion ... Espere Por Favor>>" AT 19,14 ATTRIBUTE
(REVERSE,BOLD)
PREPARE busca_maestra FROM selec
DECLARE diferencia CURSOR FOR busca_maestra
OPEN diferencia USING datos_cons.fech_fi,p_ano,p_mes,p_mes
DISPLAY "<< Reporte Generandose ... Por Favor Espere>> " AT 19,14 ATTRIBUTE
(REVERSE,BOLD)
FOREACH diferencia INTO comparativo.*
IF STATUS = notfound THEN
EXIT FOREACH
END IF
LET comparativo.movimiento = 0
SELECT SUM(cantidad_2) INTO comparativo.movimiento
FROM intb00006
WHERE cod_n = comparativo.cod_n and cod_grupo = comparativo.cod_grupo and
cod_tipo = comparativo.cod_tipo and cod_sec = comparativo.cod_sec and
fecha <= datos_cons.fech_fi and status_t is null
IF comparativo.movimiento is null THEN
LET comparativo.movimiento = 0
END IF
OUTPUT TO REPORT dife1(comparativo.*)
END FOREACH
FINISH REPORT dife1
CLEAR SCREEN
RUN imprime
END FUNCTION
REPORT dife1(x)
DEFINE x RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip_esp CHAR(30),
unidad_med CHAR(3),
existencia LIKE intb00002.existencia,
movimiento LIKE intb00006.cantidad_2,
costo DECIMAL(10,4)
END RECORD,
hora char(5),
normal char(3)
DEFINE dsiete CHAR(3)
DEFINE valor_libro,valor,no_igual,valor_no_igual,total_libro,total_df
DECIMAL(12,2)
OUTPUT
LEFT MARGIN 2
ORDER BY x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec
FORMAT
PAGE HEADER
LET hora = time
LET normal = ASCII 27, ASCII 80
LET dsiete = ASCII 27, ASCII 77
LET lj = (155 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT dsiete
PRINT COLUMN 1, "inprrp014",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 148, "Pag. ", pageno USING "###"
PRINT COLUMN 76, "Sistema de Inventarios",
COLUMN 148, today USING "dd/mm/yyyy"
PRINT COLUMN 57, "Inventario Comparativo Teorico Fisico al Cierre",
COLUMN 151, hora
PRINT COLUMN 1, "Al ",datos_cons.fech_fi USING "dd/mm/yyyy"
PRINT COLUMN 1,
"--------------------------------------------------------------------------------",
"---------------------------------------------------------------------------"
PRINT COLUMN 60, "Cantidad",
COLUMN 73, "Costo" ,
COLUMN 92, "Valor En",
COLUMN 110, "Cantidad",
COLUMN 127, "Diferencia",
COLUMN 145, "Valor"
PRINT COLUMN 20, "ARTICULOS",
COLUMN 60, "En Libro",
COLUMN 73, "Standard",
COLUMN 92, "Libro",
COLUMN 111, "Fisico",
COLUMN 127, "Cantidad",
COLUMN 145, "Diferencia"
PRINT COLUMN 1,
"--------------------------------------------------------------------------------",
"----------------------------------------------------------------------------"
SKIP 1 LINE
ON EVERY ROW
LET existe = "S"
IF x.existencia is null THEN
LET x.existencia = 0
END IF
IF x.costo is null THEN
LET x.costo = 0
END IF
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ",
x.descrip_esp," ", x.unidad_med,
COLUMN 54, x.movimiento USING "---,---,---.##",
COLUMN 72, x.costo USING "--,---.####",
COLUMN 86, x.movimiento*x.costo USING "---,---,---.##",
COLUMN 104, x.existencia USING "---,---,---.##",
COLUMN 123, x.existencia - x.movimiento USING "---,---,---.##",
COLUMN 140, (x.existencia-x.movimiento)*x.costo USING "---,---,---.##"
ON LAST ROW
PRINT COLUMN 87, "--------------",
COLUMN 140, "--------------"
PRINT COLUMN 86, SUM(x.movimiento*x.costo) USING "---,---,---.##",
COLUMN 140, SUM((x.existencia-x.movimiento)*x.costo)
USING "---,---,---.##"
PRINT COLUMN 10, "Total Registros ==> ",count(*) USING "#,###"
END REPORT