GLOBALS "cgprgb000.4gl" REPORT entrada(x, usuarios) DEFINE x RECORD cod_cia LIKE iptb00002.cod_cia, cod_n LIKE iptb00002.cod_n, cod_grupo LIKE iptb00002.cod_grupo, cod_tipo LIKE iptb00002.cod_tipo, cod_sec LIKE iptb00002.cod_sec, descrip_esp CHAR(100), descrip_ing LIKE iptb00002.descrip_ing, unidad_med LIKE iptb00002.unidad_med, cod_mov LIKE iptb00006.cod_mov, descrip_mov LIKE iptb00005.descrip_mov, consumo DECIMAL(30, 5), material DECIMAL(30, 3), labor DECIMAL(30, 3), gastos DECIMAL(30, 3), descripcion_bodega VARCHAR(30), descripcion_origen VARCHAR(30), cuenta_material VARCHAR(14), cuenta_labor VARCHAR(14), cuenta_gasto VARCHAR(14), cuenta_imp_material VARCHAR(14), cuenta_origen VARCHAR(14), detalle VARCHAR(80), entrada_d VARCHAR(25), nombre_cia VARCHAR(100), departamento INT, descripcion_depto VARCHAR(80), id_orden VARCHAR(25), afecta VARCHAR(2), valor_material, valor_labor, valor_gasto DEC(30, 2), usuario VARCHAR(50) END RECORD, usuarios VARCHAR(50) DEFINE hora CHAR(25) DEFINE debito_material, credito_material, debito_labor, debito_gasto, credito_labor, credito_gasto, debito1, credito1 DECIMAL(30, 2), nombre_ctamaterial, nombre_ctalabor, nombre_ctagasto, nombre_cta2, nombre_cta3 VARCHAR(80), xdepto CHAR(1) DEFINE t_debito, t_credito DECIMAL(30, 2) ORDER BY x.cuenta_origen, x.departamento FORMAT PAGE HEADER # IF x.afecta = 'SI' AND primera IS NULL THEN # BEGIN WORK # LET primera = 'S' # END IF LET hora = TODAY, " ", TIME PRINTX fecha_final, x.entrada_d, x.detalle, x.nombre_cia, hora AFTER GROUP OF x.departamento IF x.consumo < 0 THEN LET credito_material = 0 LET credito_labor = 0 LET credito_gasto = 0 # MATERIAL PARA LOS MOV DE SALIDA IF x.cuenta_material IS NOT NULL THEN LET debito_material = GROUP SUM(x.valor_material) SELECT a.descripcion, a.depto INTO nombre_ctamaterial, xdepto FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_material IF xdepto = 'N' THEN LET x.departamento = NULL END IF { IF debito = 0 OR debito IS NULL THEN LET nombre_ctamaterial = " " END IF} IF debito_material < 0 THEN LET debito_material = debito_material * -1 END IF DISPLAY " DATA 1 ", x.cuenta_material, " ", debito_material, " ", credito_material IF x.afecta = "SI" THEN IF x.cuenta_material IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, departamento, detalle_1, debito, credito, us_crea, fech_crea) VALUES(fecha_final, 1, x.entrada_d, x.cuenta_material, x.departamento, x.detalle, debito_material, credito_material, x.usuario, GETDATE()) END IF END IF END IF # LABOR PARA LOS MOV DE SALIDA DISPLAY " DATA 2 ", x.cuenta_labor, " ", debito_labor, " ", credito_labor IF x.cuenta_labor IS NOT NULL THEN LET debito_labor = GROUP SUM(x.valor_labor) IF debito_labor < 0 THEN LET debito_labor = debito_labor * -1 END IF SELECT a.descripcion, a.depto INTO nombre_ctalabor, xdepto FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_labor IF xdepto = 'N' THEN LET x.departamento = NULL END IF { IF debito = 0 OR debito IS NULL THEN LET nombre_ctalabor = " " END IF} IF x.afecta = "SI" THEN IF x.cuenta_labor IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, departamento, detalle_1, debito, credito, us_crea, fech_crea) VALUES(fecha_final, 1, x.entrada_d, x.cuenta_labor, x.departamento, x.detalle, debito_labor, credito_labor, x.usuario, GETDATE()) END IF END IF END IF # GASTO PARA LOS MOV DE SALIDAS IF x.cuenta_gasto IS NOT NULL THEN LET debito_gasto = GROUP SUM(x.valor_gasto) IF debito_gasto < 0 THEN LET debito_gasto = debito_gasto * -1 END IF SELECT a.descripcion, a.depto INTO nombre_ctagasto, xdepto FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_gasto IF xdepto = 'N' THEN LET x.departamento = NULL END IF { IF debito = 0 OR debito IS NULL THEN LET nombre_ctagasto = " " END IF} DISPLAY " DATA 3 ", x.cuenta_gasto, " ", debito_gasto, " ", credito_gasto IF x.afecta = "SI" THEN IF x.cuenta_gasto IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, departamento, detalle_1, debito, credito, us_crea, fech_crea) VALUES(fecha_final, 1, x.entrada_d, x.cuenta_gasto, x.departamento, x.detalle, debito_gasto, credito_gasto, x.usuario, GETDATE()) END IF END IF END IF ELSE LET debito_material = 0 LET debito_labor = 0 LET debito_gasto = 0 #MATERIAL PARA LOS MOV DE ENTRADA IF x.cuenta_material IS NOT NULL THEN LET credito_material = GROUP SUM(x.valor_material) IF credito_material < 0 THEN LET credito_material = credito_material * -1 END IF SELECT a.descripcion, a.depto INTO nombre_ctamaterial, xdepto FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_material IF xdepto = 'N' THEN LET x.departamento = NULL END IF { IF credito = 0 OR credito IS NULL THEN LET nombre_ctamaterial = " " END IF} IF x.afecta = "SI" THEN IF x.cuenta_material IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, departamento, detalle_1, debito, credito, us_crea, fech_crea) VALUES(fecha_final, 1, x.entrada_d, x.cuenta_material, x.departamento, x.detalle, debito_material, credito_material, x.usuario, GETDATE()) DISPLAY " DATA 4 ", x.cuenta_material, " ", debito_material, " ", credito_material END IF END IF END IF #LABOR PARA LOS MOV DE ENTRADA IF x.cuenta_labor IS NOT NULL THEN LET credito_labor = GROUP SUM(x.valor_labor) IF credito_labor < 0 THEN LET credito_labor = credito_labor * -1 END IF SELECT a.descripcion, a.depto INTO nombre_ctalabor, xdepto FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_labor IF xdepto = 'N' THEN LET x.departamento = NULL END IF {IF credito = 0 OR credito IS NULL THEN LET nombre_ctalabor = " " END IF} IF x.afecta = "SI" THEN IF x.cuenta_labor IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, departamento, detalle_1, debito, credito, us_crea, fech_crea) VALUES(fecha_final, 1, x.entrada_d, x.cuenta_labor, x.departamento, x.detalle, debito_labor, credito_labor, x.usuario, GETDATE()) DISPLAY " DATA 5 ", x.cuenta_labor, " ", debito_labor, " ", credito_labor END IF END IF END IF # GASTO PARA LOS MOV DE ENTRADAS IF x.cuenta_gasto IS NOT NULL THEN LET credito_gasto = GROUP SUM(x.valor_gasto) IF credito_gasto < 0 THEN LET credito_gasto = credito_gasto * 1 END IF SELECT a.descripcion, a.depto INTO nombre_ctagasto, xdepto FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_gasto IF xdepto = 'N' THEN LET x.departamento = NULL END IF { IF credito = 0 OR credito IS NULL THEN LET nombre_ctagasto = " " END IF} IF x.afecta = "SI" THEN IF x.cuenta_gasto IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, departamento, detalle_1, debito, credito, us_crea, fech_crea) VALUES(fecha_final, 1, x.entrada_d, x.cuenta_gasto, x.departamento, x.detalle, debito_gasto, credito_gasto, x.usuario, GETDATE()) DISPLAY " DATA 6 ", x.cuenta_gasto, " ", debito_gasto, " ", credito_gasto END IF END IF END IF END IF PRINTX x.nombre_cia, x.detalle, x.cuenta_material, x.cuenta_labor, x.cuenta_gasto, nombre_ctamaterial, nombre_ctalabor, nombre_ctagasto, hora, fecha_inicial, fecha_final, x.departamento, x.descripcion_depto, debito_material, credito_material, debito_labor, debito_gasto, credito_labor, credito_gasto AFTER GROUP OF x.cuenta_origen IF x.consumo < 0 THEN LET debito1 = 0 LET credito1 = GROUP SUM(x.valor_material + x.valor_labor + x.valor_gasto) ELSE LET debito1 = GROUP SUM(x.valor_material + x.valor_labor + x.valor_gasto) LET credito1 = 0 END IF SELECT a.descripcion, a.depto INTO nombre_cta2, xdepto FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_origen SELECT a.descripcion INTO nombre_cta3 FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_imp_material IF xdepto = 'N' THEN LET x.departamento = NULL END IF IF debito1 < 0 THEN LET debito1 = debito1 * -1 END IF IF credito1 < 0 THEN LET credito1 = credito1 * -1 END IF PRINTX x.cuenta_origen, nombre_cta2, credito1, debito1, x.cuenta_material, x.cuenta_imp_material, nombre_cta3, x.entrada_d, fecha_inicial, x.departamento, x.descripcion_depto IF x.afecta = "SI" THEN IF x.cuenta_origen IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, detalle_1, debito, credito, us_crea, fech_crea) VALUES(fecha_final, 1, x.entrada_d, x.cuenta_origen, x.detalle, debito1, credito1, x.usuario, GETDATE()) END IF { IF x.cuenta_imp_material IS NOT NULL THEN INSERT INTO cgtb00004 (fecha,tipo,ref,cuenta_no,detalle_1,debito,credito,us_crea,fech_crea) VALUES(fecha_final,1,x.entrada_d,x.cuenta_imp_material, x.detalle,debito1,credito1,x.usuario,GETDATE()) DISPLAY " DATA 7 ",x.cuenta_imp_material," ",debito1," ",credito1 END IF} END IF ON LAST ROW # IF x.afecta = 'SI' THEN # COMMIT WORK # END IF { IF x.afecta = "SI" THEN UPDATE cgtb00011 SET referencia = referencia + 1, us_mod = usuarios, fech_mod = getdate() WHERE entrada_no = 5 END IF} LET t_credito = SUM(x.valor_material + x.valor_labor + x.valor_gasto) LET t_debito = SUM(x.valor_material + x.valor_labor + x.valor_gasto) PRINTX t_debito, t_credito END REPORT