{ ---------------------------------------------------------------------------- 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 = 12 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 dife1 TO archivo 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(DATE, ?) 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 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