219 lines
6.8 KiB
Plaintext
219 lines
6.8 KiB
Plaintext
{
|
|
----------------------------------------------------------------------------
|
|
PROGRAMA : INPRRP042
|
|
FUNCION : Comparativo de la existencia calculada por movimientos y
|
|
existencia en conteo fisico
|
|
PROGRAMADOR : Juan Fco. Soto
|
|
FECHA : Diciembre 01, 2009
|
|
----------------------------------------------------------------------------
|
|
}
|
|
GLOBALS
|
|
"irprgb000.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 DEC(12,4),
|
|
movimiento LIKE irtb00006.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 irtb00002.cod_n, irtb00002.cod_grupo, ",
|
|
" irtb00002.cod_tipo, irtb00002.cod_sec, ",
|
|
" irtb00002.descrip_esp, ",
|
|
" irtb00002.unidad_med, ",
|
|
" irtb00011.cantidad, ",
|
|
" irtb00011.balance, ",
|
|
" irtb00013.costo_st ",
|
|
" FROM irtb00002 LEFT OUTER JOIN ",
|
|
" irtb00013 ON irtb00002.cod_n = irtb00013.cod_n AND ",
|
|
" irtb00002.cod_grupo = irtb00013.cod_grupo AND ",
|
|
" irtb00002.cod_tipo = irtb00013.cod_tipo AND ",
|
|
" irtb00002.cod_sec = irtb00013.cod_sec LEFT OUTER JOIN ",
|
|
" irtb00011 ON irtb00002.cod_n = irtb00011.cod_n AND ",
|
|
" irtb00002.cod_grupo = irtb00011.cod_grupo AND ",
|
|
" irtb00002.cod_tipo = irtb00011.cod_tipo AND ",
|
|
" irtb00002.cod_sec = irtb00011.cod_sec ",
|
|
" WHERE irtb00011.fecha = CONVERT(DATETIME, ?) AND ",
|
|
" (irtb00013.ano = ?) AND (irtb00013.mes_fin = ?) ",
|
|
" ORDER BY irtb00002.cod_n, irtb00002.cod_grupo, ",
|
|
" irtb00002.cod_tipo, irtb00002.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
|
|
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 DEC(12,4),
|
|
movimiento LIKE irtb00006.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
|