{ -------------------------------------------------------------------------- PROGRAMA : IRPRCS001 OBJETIVO : Programa Consulta Movimientos Repuestos: Reporte de Entrada. PROGRAMADOR : Juan Fco. Soto (Johnny) FECHA REALIZACION : Marzo 2, 1992. -------------------------------------------------------------------------- } GLOBALS "irprgb000.4gl" MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL irprcs001() END MAIN FUNCTION irprcs001() DEFINE idx1 SMALLINT DEFINE voy CHAR(1) DEFINE fecha1 char(8) DEFINE hora1 char(5) LET fecha1 = today using "dd/mm/yy" LET hora1 = time LET int_flag = false LET bandera = 0 #WHENEVER ERROR CONTINUE CLEAR SCREEN OPTIONS ERROR LINE 24, FORM LINE 6, COMMENT LINE 22, PROMPT LINE 23 DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 3,19 ATTRIBUTE (REVERSE,blue) DISPLAY fecha1 AT 3,70 ATTRIBUTE (blue) DISPLAY hora1 AT 4,73 ATTRIBUTE (blue) DISPLAY " Reporte de Entrada" at 4,35 DISPLAY " Realiza Busqueda" AT 5,2 ATTRIBUTE (blue,REVERSE) DISPLAY " Cancela Operacion" AT 5,50 ATTRIBUTE (blue,REVERSE) DISPLAY "irprcs001" AT 3,2 ATTRIBUTE (blue) OPEN FORM irfmcs001 FROM "irfmcs001" DISPLAY FORM irfmcs001 INITIALIZE datos_gen.* TO NULL LABEL volver: DISPLAY " " AT 1,1 CONSTRUCT criterio ON a.cod_mov,a.num_doc,a.cod_sp, a.cod_sp_sec,a.orden_compra, a.conduce_no,a.fact_no,a.fecha FROM cod_mov,num_doc,cod_sp, cod_sp_sec,orden_compra, conduce_no,fact_no,fecha LET SELEC = "SELECT UNIQUE a.cod_mov,b.descrip_mov,a.num_doc,", "a.cod_sp,a.cod_sp_sec,a.orden_compra,a.fact_no, ", "a.conduce_no, a.fecha FROM irtb00006 a,", "irtb00005 b ", " WHERE ", criterio clipped, " and a.cod_mov = b.cod_mov ", " and a.cod_mov between 1 and 4 ", " ORDER BY 1,3" IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF PREPARE busca FROM selec DECLARE johnn SCROLL CURSOR FOR busca OPEN johnn FETCH FIRST johnn INTO datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra, datos_gen.fact_no, datos_gen.conduce_no, datos_gen.fecha IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) GOTO volver END IF IF status < 0 THEN CALL integridad() IF bandera = 1 THEN LET bandera = 0 END IF END IF SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE cod_sp = datos_gen.cod_sp AND cod_sp_sec = datos_gen.cod_sp_sec DISPLAY BY NAME datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha LABEL vuelve1: MENU "OPCION" COMMAND "Siguiente" "Presenta en pantalla SIGUIENTE registro encontrado." FETCH NEXT johnn INTO datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE cod_sp = datos_gen.cod_sp AND cod_sp_sec = datos_gen.cod_sp_sec DISPLAY BY NAME datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha COMMAND "Anterior" "Presenta en pantalla el registro ANTERIOR encontrado." FETCH PREVIOUS johnn INTO datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE cod_sp = datos_gen.cod_sp AND cod_sp_sec = datos_gen.cod_sp_sec DISPLAY BY NAME datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha COMMAND "Primero" "Presenta en pantalla PRIMER registro encontrado." FETCH FIRST johnn INTO datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE cod_sp = datos_gen.cod_sp AND cod_sp_sec = datos_gen.cod_sp_sec DISPLAY BY NAME datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha COMMAND "Ultimo" "Presenta en pantalla ULTIMO registro encontrado." FETCH LAST johnn INTO datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001 WHERE cod_sp = datos_gen.cod_sp AND cod_sp_sec = datos_gen.cod_sp_sec DISPLAY BY NAME datos_gen.cod_mov,datos_gen.descrip_mov, datos_gen.num_doc,datos_gen.cod_sp,datos_gen.cod_sp_sec, datos_gen.orden_compra,datos_gen.nom_sp, datos_gen.fact_no,datos_gen.conduce_no,datos_gen.fecha COMMAND "Ver" CALL desplega() DISPLAY ARRAY movi5 TO s_movi1.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false GOTO vuelve1 END IF CLEAR FORM GOTO volver COMMAND "Retornar" EXIT MENU END MENU END FUNCTION FUNCTION desplega() DECLARE jhonn CURSOR FOR SELECT p.cod_n,p.cod_grupo,p.cod_tipo,p.cod_sec,p.cantidad_1,p.cantidad_2, k.unidad_med,k.descrip_esp,p.maquina FROM intb00001 k,irtb00006 p WHERE p.num_doc = datos_gen.num_doc and p.cod_mov = datos_gen.cod_mov and p.cod_n = k.cod_n and p.cod_grupo = k.cod_grupo and p.cod_tipo = k.cod_tipo and p.cod_sec = k.cod_sec and p.status_t is null and k.status_t is null OPEN jhonn CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET idx = 1 FOREACH jhonn INTO movi9[idx].* IF STATUS = NOTFOUND THEN EXIT FOREACH RETURN END IF IF status < 0 THEN CALL integridad() IF bandera = 1 THEN LET bandera = 0 END IF END IF IF movi[idx].cantidad_2 < 0 THEN LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * - 1 END IF LET movi5[idx].codigo = movi9[idx].cod_n using "&", "-", movi9[idx].cod_grupo using "&", "-", movi9[idx].cod_tipo using "&&","-", movi9[idx].cod_sec using "&&&" LET movi5[idx].cantidad_1 = movi9[idx].cantidad_1 using "##,###,###.##" LET movi5[idx].cantidad_2 = movi9[idx].cantidad_2 using "##,###,###.##" LET movi5[idx].unidad_med = movi9[idx].unidad_med LET movi5[idx].descrip_esp = movi9[idx].descrip_esp LET movi5[idx].diferencia = movi9[idx].cantidad_1 - movi9[idx].cantidad_2 using "##,###,###.##" LET idx = idx + 1 END FOREACH CALL set_count(idx - 1) END FUNCTION