{ ------------------------------------------------------------------------------ PROGRAMA : INPRMT026 OBJETIVO : Programa Captura Documento Movimiento: MATERIALES DEVUELTO DE PRODUCCION de Inventario de Materia Prima. PROGRAMADOR : Juan Fco. Soto (Johnny) FECHA REALIZACION : Agosto 07, 1992. ------------------------------------------------------------------------------ } GLOBALS "inprgb000.4gl" MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL inprmt026() END MAIN FUNCTION busca_material() LET int_flag = FALSE OPEN WINDOW material1 AT 10,9 WITH FORM "infmwd004" ATTRIBUTE(BORDER,FORM LINE FIRST + 2) CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, a.unidad_med FROM cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp, unidad_med LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ", "a.unidad_med FROM intb00001 a ", "WHERE a.status_t IS NULL AND ",criterio CLIPPED, "ORDER BY 1,2,3,4" PREPARE comando4 FROM selec DECLARE comp4 CURSOR FOR comando4 LET idx = 1 FOREACH comp4 INTO datos_mt[idx].* LET idx = idx + 1 END FOREACH CALL SET_COUNT(idx - 1) IF idx = 1 THEN LET numero_msg = 3 CALL msg(numero_msg) GOTO salir END IF DISPLAY ARRAY datos_mt TO datos_mt1.* LET idx = ARR_CURR() LABEL salir: CLOSE WINDOW material1 END FUNCTION FUNCTION inprmt026() DEFINE fecha CHAR(8) DEFINE hora CHAR(5) CLEAR SCREEN OPTIONS ERROR LINE 24, FORM LINE 5, COMMENT LINE 22, PROMPT LINE 23 LET fecha = today USING "dd/mm/yy" LET hora = time DISPLAY p_companias.nombre AT 1,lj ATTRIBUTE (REVERSE,YELLOW) DISPLAY fecha AT 1,70 ATTRIBUTE (YELLOW) DISPLAY hora AT 2,73 ATTRIBUTE (YELLOW) DISPLAY "Materiales Devueltos de Produccion" AT 2,23 DISPLAY "inprmt026" AT 1,3 ATTRIBUTE (YELLOW) DISPLAY " Adiciona Registro Cancela Operacion" AT 3,2 ATTRIBUTE (YELLOW,REVERSE) OPEN FORM infmmt026 FROM "infmmt026" DISPLAY FORM infmmt026 {LET actual = "UPDATE intb00002 SET existencia = existencia + ? ", "WHERE cod_n = ? and cod_grupo = ? and cod_tipo = ? and ", " cod_sec = ? " } CALL inpcad026() END FUNCTION FUNCTION inpcad026() DEFINE fecha_c DATE DEFINE dia SMALLINT #WHENEVER ERROR CONTINUE LET opc = null LET int_flag = FALSE INITIALIZE datos.* TO NULL #PREPARE actualiza FROM actual LABEL vuelve: IF (OPC = "S" OR OPC = "s") OR opc is null THEN INITIALIZE datos.* TO NULL END IF LET datos_gen.cod_mov = 48 INPUT BY NAME datos.* WITHOUT DEFAULTS AFTER FIELD bodega SELECT *FROM intb00009 WHERE cod_bodega = datos.bodega IF status >= 0 THEN IF status = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD bodega END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF BEFORE FIELD num_doc LET datos.bodega = 1 DISPLAY BY NAME datos.bodega LET datos.fecha = today DISPLAY BY NAME datos.fecha # Verifica que el numero del documente de entrada no este en el archivo de # movimientos. AFTER FIELD fecha IF datos.fecha IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha END IF IF datos.fecha > TODAY THEN LET numero_msg = 160 CALL msg(numero_msg) NEXT FIELD fecha END IF LET p_fechas = datos.fecha CALL prd(p_fechas) IF bandera = 1 THEN LET bandera = 0 NEXT FIELD fecha END IF AFTER FIELD num_doc IF datos.num_doc IS NULL then LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD num_doc ELSE SELECT * FROM intb00005 where cod_mov = datos_gen.cod_mov and status_t is null IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 34 CALL msg(numero_msg) NEXT FIELD num_doc END IF ELSE CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if end if SELECT UNIQUE depto_de,depto_a,fecha INTO datos.depto_de,datos.depto_a, datos.fecha FROM intb00006 WHERE num_doc = datos.num_doc and cod_mov = datos_gen.cod_mov and status_t is null IF status >= 0 THEN IF STATUS != NOTFOUND THEN SELECT nom_dpto INTO datos.nom_dpto FROM adtb00001 WHERE departamento = datos.depto_de and status_t is null SELECT nom_dpto INTO datos.nom_dpto1 FROM adtb00001 WHERE departamento = datos.depto_a and status_t is null LET numero_msg = 12 CALL msg(numero_msg) DISPLAY BY NAME datos.depto_de,datos.depto_a,datos.fecha, datos.nom_dpto,datos.nom_dpto1 NEXT FIELD num_doc END IF ELSE CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if END IF IF OPC = "S" OR OPC = "s" or opc is null THEN INITIALIZE datos.depto_de,datos.depto_a,datos.nom_dpto, datos.nom_dpto1 TO NULL DISPLAY BY NAME datos.depto_de,datos.depto_a,datos.nom_dpto, datos.nom_dpto1 END IF END IF AFTER FIELD depto_de IF datos.depto_de IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD depto_de ELSE SELECT nom_dpto INTO datos.nom_dpto FROM adtb00001 WHERE departamento = datos.depto_de and status_t is null IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD depto_de END IF ELSE CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if END IF END IF DISPLAY BY NAME datos.nom_dpto AFTER FIELD depto_a IF datos.depto_a IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD depto_a ELSE SELECT nom_dpto INTO datos.nom_dpto1 FROM adtb00001 WHERE departamento = datos.depto_a and status_t is null IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD depto_a END IF CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if END IF END IF IF datos.depto_a = datos.depto_de THEN LET numero_msg = 32 CALL msg(numero_msg) NEXT FIELD depto_de END IF DISPLAY BY NAME datos.nom_dpto1 AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE SLEEP 3 FOR idx = 1 to arr_count() LET movi[idx].cod_n = null LET movi[idx].cod_grupo = null LET movi[idx].cod_tipo = null LET movi[idx].cod_sec = null LET movi[idx].cantidad_1 = null LET movi[idx].cantidad_2 = null LET movi[idx].unidad_med = null LET movi[idx].descrip_esp = null END FOR RETURN END IF IF datos.depto_a = datos.depto_de THEN LET numero_msg = 32 CALL msg(numero_msg) NEXT FIELD depto_de END IF IF datos.num_doc IS NULL then LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD num_doc ELSE SELECT UNIQUE num_doc FROM intb00006 WHERE num_doc = datos.num_doc and cod_mov = datos_gen.cod_mov and status_t is null IF status >= 0 THEN IF STATUS != NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD num_doc END IF CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF END IF EXIT INPUT END INPUT INITIALIZE ant_art.* TO NULL IF opc = "S" or opc = "s" OR opc IS NULL THEN FOR idx = 1 to arr_count() LET movi[idx].cod_n = null LET movi[idx].cod_grupo = null LET movi[idx].cod_tipo = null LET movi[idx].cod_sec = null LET movi[idx].cantidad_2 = null LET movi[idx].cantidad_1 = null LET movi[idx].unidad_med = null LET movi[idx].descrip_esp = null END FOR END IF INPUT ARRAY movi WITHOUT DEFAULTS FROM s_movi1.* ON KEY(CONTROL-W) CALL busca_material() LET movi[p_act].cod_n = datos_mt[idx].cod_n LET movi[p_act].cod_grupo = datos_mt[idx].cod_grupo LET movi[p_act].cod_tipo = datos_mt[idx].cod_tipo LET movi[p_act].cod_sec = datos_mt[idx].cod_sec LET movi[p_act].descrip_esp = datos_mt[idx].descrip_esp LET movi[p_act].unidad_med = datos_mt[idx].unidad_med DISPLAY movi[p_act].cod_n TO s_movi1.cod_n DISPLAY movi[p_act].cod_grupo TO s_movi1.cod_grupo DISPLAY movi[p_act].cod_tipo TO s_movi1.cod_tipo DISPLAY movi[p_act].cod_sec TO s_movi1.cod_sec DISPLAY movi[p_act].descrip_esp TO s_movi1.descrip_esp BEFORE ROW LET p_act = arr_curr() LET scr_l = scr_line() AFTER ROW IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null then LET p_act = arr_curr() LET ant_art.cod_n = movi[p_act].cod_n LET ant_art.cod_grupo = movi[p_act].cod_grupo LET ant_art.cod_tipo = movi[p_act].cod_tipo LET ant_art.cod_sec = movi[p_act].cod_sec FOR idx = 1 TO arr_count() IF idx != p_act THEN IF movi[idx].cod_n = ant_art.cod_n AND movi[idx].cod_grupo = ant_art.cod_grupo AND movi[idx].cod_tipo = ant_art.cod_tipo AND movi[idx].cod_sec = ant_art.cod_sec THEN LET numero_msg = 21 CALL msg(numero_msg) LET p_act = p_act - 1 NEXT FIELD cod_n END IF END IF END FOR IF movi[p_act].cantidad_1 IS NULL and movi[p_act].cantidad_2 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_n END IF END IF LET ant_art.cod_n = movi[p_act].cod_n LET ant_art.cod_grupo = movi[p_act].cod_grupo LET ant_art.cod_tipo = movi[p_act].cod_tipo LET ant_art.cod_sec = movi[p_act].cod_sec AFTER FIELD cod_n LET p_act = arr_curr() IF movi[p_act].cod_n is not null then LET ant_art.cod_n = movi[p_act].cod_n LET ant_art.cod_grupo = movi[p_act].cod_grupo LET ant_art.cod_tipo = movi[p_act].cod_tipo LET ant_art.cod_sec = movi[p_act].cod_sec FOR idx = 1 TO arr_count() IF idx != p_act THEN IF movi[idx].cod_n = ant_art.cod_n AND movi[idx].cod_grupo = ant_art.cod_grupo AND movi[idx].cod_tipo = ant_art.cod_tipo AND movi[idx].cod_sec = ant_art.cod_sec THEN LET p_act = p_act - 1 NEXT FIELD cod_grupo END IF END IF END FOR END IF AFTER FIELD cod_grupo IF movi[p_act].cod_grupo is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_n END IF LET p_act = arr_curr() LET ant_art.cod_n = movi[p_act].cod_n LET ant_art.cod_grupo = movi[p_act].cod_grupo LET ant_art.cod_tipo = movi[p_act].cod_tipo LET ant_art.cod_sec = movi[p_act].cod_sec FOR idx = 1 TO arr_count() IF idx != p_act THEN IF movi[idx].cod_n = ant_art.cod_n AND movi[idx].cod_grupo = ant_art.cod_grupo AND movi[idx].cod_tipo = ant_art.cod_tipo AND movi[idx].cod_sec = ant_art.cod_sec THEN LET p_act = p_act - 1 NEXT FIELD cod_tipo END IF END IF END FOR AFTER FIELD cod_tipo IF movi[p_act].cod_tipo is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_n END IF LET p_act = arr_curr() LET ant_art.cod_n = movi[p_act].cod_n LET ant_art.cod_grupo = movi[p_act].cod_grupo LET ant_art.cod_tipo = movi[p_act].cod_tipo LET ant_art.cod_sec = movi[p_act].cod_sec FOR idx = 1 TO arr_count() IF idx != p_act THEN IF movi[idx].cod_n = ant_art.cod_n AND movi[idx].cod_grupo = ant_art.cod_grupo AND movi[idx].cod_tipo = ant_art.cod_tipo AND movi[idx].cod_sec = ant_art.cod_sec THEN LET p_act = p_act - 1 NEXT FIELD cod_sec END IF END IF END FOR AFTER FIELD cod_sec LET p_act = arr_curr() IF movi[p_act].cod_sec is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_n END IF IF movi[p_act].cod_n is null AND movi[p_act].cod_sec is not null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_n END IF IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null then SELECT descrip_esp,unidad_med INTO descrip1,descrip2 FROM intb00001 WHERE cod_n = movi[p_act].cod_n and cod_grupo = movi[p_act].cod_grupo and cod_tipo = movi[p_act].cod_tipo and cod_sec = movi[p_act].cod_sec and status_t is null IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD cod_n END IF ELSE CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if END IF SELECT * FROM intb00002 WHERE cod_n = movi[p_act].cod_n and cod_grupo = movi[p_act].cod_grupo and cod_tipo = movi[p_act].cod_tipo and cod_sec = movi[p_act].cod_sec and status_t is null IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 35 CALL msg(numero_msg) NEXT FIELD cod_n END IF ELSE CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if END IF LET movi[p_act].descrip_esp = descrip1 LET movi[p_act].unidad_med = descrip2 clipped DISPLAY movi[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp DISPLAY movi[p_act].unidad_med TO s_movi1[scr_l].unidad_med LET ant_art.cod_n = movi[p_act].cod_n LET ant_art.cod_grupo = movi[p_act].cod_grupo LET ant_art.cod_tipo = movi[p_act].cod_tipo LET ant_art.cod_sec = movi[p_act].cod_sec FOR idx = 1 TO arr_count() IF idx != p_act THEN IF movi[idx].cod_n = ant_art.cod_n AND movi[idx].cod_grupo = ant_art.cod_grupo AND movi[idx].cod_tipo = ant_art.cod_tipo AND movi[idx].cod_sec = ant_art.cod_sec THEN LET numero_msg = 21 CALL msg(numero_msg) NEXT FIELD cod_n END IF END IF END FOR END IF AFTER FIELD cantidad_1 IF movi[p_act].cantidad_1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cantidad_1 END IF AFTER FIELD cantidad_2 ## Chequeo Excedente de existencia y punto de reorden IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null THEN SELECT sum(cantidad_2) INTO chequea.existe FROM intb00006 WHERE cod_n = movi[p_act].cod_n and cod_grupo = movi[p_act].cod_grupo and cod_tipo=movi[p_act].cod_tipo and cod_sec = movi[p_act].cod_sec and status_t is null CALL integridad() IF bandera = 1 THEN CLEAR SCREEN RETURN END IF LET cant = chequea.existe - movi[p_act].cantidad_2 IF cant <= chequea.pto THEN LET numero_msg = 31 CALL msg(numero_msg) LET cant = 0 END IF END IF IF movi[p_act].cantidad_2 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) END IF IF movi[p_act].cantidad_2 > movi[p_act].cantidad_1 THEN LET numero_msg = 28 CALL msg(numero_msg) END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false FOR idx = 1 to arr_count() LET movi[idx].cod_n = null LET movi[idx].cod_grupo = null LET movi[idx].cod_tipo = null LET movi[idx].cod_sec = null LET movi[idx].cantidad_1 = null LET movi[idx].cantidad_2 = null LET movi[idx].unidad_med = null LET movi[idx].descrip_esp = null END FOR SLEEP 3 RETURN END IF IF movi[p_act].cod_n is not null and movi[p_act].cod_grupo is not null and movi[p_act].cod_tipo is not null and movi[p_act].cod_sec is not null then SELECT descrip_esp,unidad_med INTO descrip1,descrip2 FROM intb00001 WHERE cod_n = movi[p_act].cod_n and cod_grupo = movi[p_act].cod_grupo and cod_tipo = movi[p_act].cod_tipo and cod_sec = movi[p_act].cod_sec and status_t is null IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD cod_n END IF ELSE CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if end if SELECT * FROM intb00002 WHERE cod_n = movi[p_act].cod_n and cod_grupo = movi[p_Act].cod_grupo and cod_tipo = movi[p_act].cod_tipo and cod_sec = movi[p_act].cod_sec and status_t is null IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 35 CALL msg(numero_msg) NEXT FIELD cod_n END IF ELSE CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if END IF LET movi[p_act].descrip_esp = descrip1 LET movi[p_act].unidad_med = descrip2 clipped DISPLAY movi[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp DISPLAY movi[p_act].unidad_med TO s_movi1[scr_l].unidad_med LET ant_art.cod_n = movi[p_act].cod_n LET ant_art.cod_grupo = movi[p_act].cod_grupo LET ant_art.cod_tipo = movi[p_act].cod_tipo LET ant_art.cod_sec = movi[p_act].cod_sec FOR idx = 1 TO arr_count() IF idx != p_act THEN IF movi[idx].cod_n = ant_art.cod_n AND movi[idx].cod_grupo = ant_art.cod_grupo AND movi[idx].cod_tipo = ant_art.cod_tipo AND movi[idx].cod_sec = ant_art.cod_sec THEN LET numero_msg = 21 CALL msg(numero_msg) NEXT FIELD cod_n END IF END IF END FOR IF movi[p_act].cantidad_1 IS NULL and movi[p_act].cantidad_2 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_n END IF END IF IF movi[p_act].cod_n is null and movi[p_act].cod_grupo is null and movi[p_act].cod_tipo is null and movi[p_act].cod_sec is null THEN SELECT sum(cantidad_2) INTO chequea.existe FROM intb00006 WHERE cod_n = movi[p_act].cod_n and cod_grupo = movi[p_act].cod_grupo and cod_tipo = movi[p_act].cod_tipo and cod_sec = movi[p_act].cod_sec and status_t is null CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if IF movi[p_act].cantidad_2 > chequea.existe THEN LET numero_msg = 30 CALL msg(numero_msg) NEXT FIELD cod_n END IF LET cant = chequea.existe - movi[p_act].cantidad_2 IF cant <= chequea.pto THEN LET numero_msg = 31 CALL msg(numero_msg) LET cant = 0 END IF END IF IF movi[p_act].cod_n is null THEN LET movi[p_act].cod_n = null LET movi[p_act].cod_grupo = null LET movi[p_act].cod_tipo = null LET movi[p_act].cod_sec = null LET movi[p_act].cantidad_1 = null LET movi[p_act].cantidad_2 = null LET movi[p_act].unidad_med = null LET movi[p_act].descrip_esp = null DISPLAY movi[p_act].cod_n to s_movi1[scr_l].cod_n DISPLAY movi[p_act].cod_grupo to s_movi1[scr_l].cod_grupo DISPLAY movi[p_act].cod_tipo to s_movi1[scr_l].cod_tipo DISPLAY movi[p_act].cod_sec to s_movi1[scr_l].cod_sec DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1 DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2 DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp END IF IF movi[p_act].cod_grupo is null THEN LET movi[p_act].cod_n = null LET movi[p_act].cod_grupo = null LET movi[p_act].cod_tipo = null LET movi[p_act].cod_sec = null LET movi[p_act].cantidad_1 = null LET movi[p_act].cantidad_2 = null LET movi[p_act].unidad_med = null LET movi[p_act].descrip_esp = null DISPLAY movi[p_act].cod_n to s_movi1[scr_l].cod_n DISPLAY movi[p_act].cod_grupo to s_movi1[scr_l].cod_grupo DISPLAY movi[p_act].cod_tipo to s_movi1[scr_l].cod_tipo DISPLAY movi[p_act].cod_sec to s_movi1[scr_l].cod_sec DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1 DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2 DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp END IF IF movi[p_act].cod_tipo is null THEN LET movi[p_act].cod_n = null LET movi[p_act].cod_grupo = null LET movi[p_act].cod_tipo = null LET movi[p_act].cod_sec = null LET movi[p_act].cantidad_1 = null LET movi[p_act].cantidad_2 = null LET movi[p_act].unidad_med = null LET movi[p_act].descrip_esp = null DISPLAY movi[p_act].cod_n to s_movi1[scr_l].cod_n DISPLAY movi[p_act].cod_grupo to s_movi1[scr_l].cod_grupo DISPLAY movi[p_act].cod_tipo to s_movi1[scr_l].cod_tipo DISPLAY movi[p_act].cod_sec to s_movi1[scr_l].cod_sec DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1 DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2 DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp END IF IF movi[p_act].cod_sec is null THEN LET movi[p_act].cod_n = null LET movi[p_act].cod_grupo = null LET movi[p_act].cod_tipo = null LET movi[p_act].cod_sec = null LET movi[p_act].cantidad_1 = null LET movi[p_act].cantidad_2 = null LET movi[p_act].unidad_med = null LET movi[p_act].descrip_esp = null DISPLAY movi[p_act].cod_n to s_movi1[p_act].cod_n DISPLAY movi[p_act].cod_grupo to s_movi1[p_act].cod_grupo DISPLAY movi[p_act].cod_tipo to s_movi1[p_act].cod_tipo DISPLAY movi[p_act].cod_sec to s_movi1[p_act].cod_sec DISPLAY movi[p_act].cantidad_1 to s_movi1[scr_l].cantidad_1 DISPLAY movi[p_act].cantidad_2 to s_movi1[scr_l].cantidad_2 DISPLAY movi[p_act].unidad_med to s_movi1[scr_l].unidad_med DISPLAY movi[p_act].descrip_esp to s_movi1[scr_l].descrip_esp END IF EXIT INPUT END INPUT PROMPT "Toda la Informacion Esta Correcta? (S/N)" FOR CHAR opc IF OPC = "S" or OPC = "s" THEN FOR idx = 1 TO arr_count() IF movi[idx].cod_n is not null and movi[idx].cod_grupo is not null and movi[idx].cod_tipo is not null and movi[idx].cod_sec is not null THEN LET datos_gen.cod_mov = 48 INSERT INTO intb00006 VALUES (datos.num_doc,datos.fecha,null,null,null, null,null,null,datos_gen.cod_mov,movi[idx].cod_n, movi[idx].cod_grupo, movi[idx].cod_tipo,movi[idx].cod_sec, movi[idx].cantidad_1,movi[idx].cantidad_2,datos.depto_de, datos.depto_a,null,ultimo.cond_recep,ultimo.uso_tiempo, datos.bodega,null,user,current,null,null) {CALL integridad() IF bandera = 1 THEN CLEAR SCREEN RETURN END IF EXECUTE actualiza USING movi[idx].cantidad_2, movi[idx].cod_n,movi[idx].cod_grupo, movi[idx].cod_tipo,movi[idx].cod_sec CALL integridad() if bandera = 1 THEN CLEAR SCREEN RETURN end if} END IF END FOR FOR idx = 1 to arr_count() LET movi[idx].cod_n = null LET movi[idx].cod_grupo = null LET movi[idx].cod_tipo = null LET movi[idx].cod_sec = null LET movi[idx].cantidad_1 = null LET movi[idx].cantidad_2 = null LET movi[idx].unidad_med = null LET movi[idx].descrip_esp = null DISPLAY movi[idx].cod_n to s_movi1[idx].cod_n DISPLAY movi[idx].cod_grupo to s_movi1[idx].cod_grupo DISPLAY movi[idx].cod_tipo to s_movi1[idx].cod_tipo DISPLAY movi[idx].cod_sec to s_movi1[idx].cod_sec DISPLAY movi[idx].descrip_esp to s_movi1[idx].descrip_esp DISPLAY movi[idx].unidad_med to s_movi1[idx].unidad_med END FOR LET numero_msg = 1 CALL msg(numero_msg) CLEAR FORM ELSE GOTO vuelve END IF GOTO vuelve END FUNCTION