Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,854 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : IRPRMT056
|
||||
OBJETIVO : Modificar, Eliminar registros de los
|
||||
Movimientos de Repuesto.
|
||||
PROGRAMADOR : Ing. Juan Soto(Johnny)
|
||||
FECHA REALIZACION : Septiembre 4, 1992.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "irprgb000.4gl"
|
||||
DEFINE proceso_1,opc1 CHAR(1)
|
||||
|
||||
FUNCTION irprmt056()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 5,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21,
|
||||
PROMPT LINE 24
|
||||
|
||||
OPEN FORM irfmmt056 FROM "irfmmt056"
|
||||
DISPLAY FORM irfmmt056
|
||||
DISPLAY "irprmt056" AT 3,3 ATTRIBUTE (BOLD)
|
||||
DISPLAY "Actualizacion de Documentos " AT 3,25 ATTRIBUTE (BOLD)
|
||||
|
||||
MENU "OPCIONES"
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Realiza Busqueda <Ctrl-C> Cancela Operacion"
|
||||
LET INT_FLAG = FALSE
|
||||
CALL inpcmf056()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION inpcmf056()
|
||||
DEFINE usu_crea CHAR(9)
|
||||
DEFINE fecha_crea DATETIME YEAR TO MINUTE
|
||||
DEFINE estado,tipos CHAR(1)
|
||||
DEFINE cantidad,cant_e DECIMAL(10,2)
|
||||
DEFINE codigo_ant ARRAY[100] OF CHAR(7)
|
||||
DEFINE actualiza CHAR(1)
|
||||
LET tipos = null
|
||||
# WHENEVER ERROR CONTINUE
|
||||
LET int_flag = false
|
||||
LET existe = null
|
||||
## Aqui se prepara para la captura del criterio de seleccion
|
||||
CLEAR FORM
|
||||
CONSTRUCT criterio ON a.cod_mov,a.num_doc FROM cod_mov,num_doc
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET SELEC = " SELECT UNIQUE a.num_doc,a.cod_mov,a.fecha,a.tipo, ",
|
||||
" a.orden_compra,a.cod_sp,a.cod_sp_sec,a.fact_no, ",
|
||||
" a.conduce_no,a.sec_de,a.sec_a ",
|
||||
" FROM irtb00006 a,irtb00005 b ",
|
||||
" WHERE ",criterio clipped," and a.cod_mov = b.cod_mov AND ",
|
||||
" a.status_t is null AND b.status_t IS NULL AND ",
|
||||
" a.cod_mov != 99 Order by 1,2 "
|
||||
|
||||
PREPARE busca FROM selec
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
FETCH FIRST datos INTO movimientos.*
|
||||
IF status >= 0 THEN
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
ELSE
|
||||
|
||||
CALL integridad()
|
||||
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
|
||||
SELECT status_mov,descrip_mov INTO transacc.status_mov,datos_gen.descrip_mov
|
||||
FROM irtb00005 WHERE cod_mov = movimientos.cod_mov AND status_t IS NULL
|
||||
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.descrip_mov
|
||||
DISPLAY BY NAME datos_gen.nom_sp
|
||||
DISPLAY BY NAME movimientos.*
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO movimientos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT status_mov INTO transacc.status_mov FROM irtb00005
|
||||
WHERE cod_mov = movimientos.cod_mov AND status_t IS NULL
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.nom_sp
|
||||
DISPLAY BY NAME movimientos.*
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO movimientos.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT status_mov INTO transacc.status_mov FROM irtb00005
|
||||
WHERE cod_mov = movimientos.cod_mov AND status_t IS NULL
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.nom_sp
|
||||
DISPLAY BY NAME movimientos.*
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO movimientos.*
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.nom_sp
|
||||
DISPLAY BY NAME movimientos.*
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
SELECT status_mov INTO transacc.status_mov FROM irtb00005
|
||||
WHERE cod_mov = movimientos.cod_mov AND status_t IS NULL
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO movimientos.*
|
||||
CALL buscame()
|
||||
DISPLAY BY NAME datos_gen.nom_sp
|
||||
DISPLAY BY NAME movimientos.*
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
SELECT status_mov INTO transacc.status_mov FROM irtb00005
|
||||
WHERE cod_mov = movimientos.cod_mov AND status_t IS NULL
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
|
||||
|
||||
SELECT MIN(a.us_crea),MIN(a.fech_crea) INTO usu_crea,fecha_crea
|
||||
FROM irtb00006 a
|
||||
WHERE a.cod_mov = movimientos.cod_mov AND a.num_doc = movimientos.num_doc
|
||||
|
||||
LET p_fechas = movimientos.fecha USING "ddmmyy"
|
||||
CALL prd()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
INPUT BY NAME movimientos.* WITHOUT DEFAULTS
|
||||
BEFORE FIELD num_doc
|
||||
SELECT a.usuario FROM irtb00018 a
|
||||
WHERE a.cod_mov = movimientos.cod_mov AND a.usuario = user
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 139
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
NEXT FIELD fecha
|
||||
|
||||
AFTER FIELD fecha
|
||||
IF movimientos.fecha > TODAY THEN
|
||||
LET numero_msg = 189
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
LET p_fechas = movimientos.fecha USING "ddmmyy"
|
||||
CALL prd()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
IF movimientos.cod_mov > 2 THEN
|
||||
NEXT FIELD sec_de
|
||||
END IF
|
||||
|
||||
BEFORE FIELD orden_compra
|
||||
IF movimientos.orden_compra > 3 THEN
|
||||
NEXT FIELD fact_no
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sp
|
||||
IF movimientos.cod_sp is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_sp
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sp_sec
|
||||
|
||||
IF movimientos.cod_sp_sec is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_sp_sec
|
||||
ELSE
|
||||
SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001
|
||||
WHERE cod_sp = movimientos.cod_sp and
|
||||
cod_sp_sec = movimientos.cod_sp_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_sp
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME datos_gen.nom_sp ATTRIBUTE (BOLD)
|
||||
|
||||
AFTER FIELD sec_de
|
||||
IF movimientos.sec_de IS null then
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD sec_de
|
||||
ELSE
|
||||
SELECT nombre INTO datos1.nom_seccion FROM irtb00004
|
||||
WHERE codigo = movimientos.sec_de and
|
||||
status_t is null
|
||||
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD sec_de
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME datos1.nom_seccion
|
||||
IF transacc.status_mov = "3" THEN
|
||||
NEXT FIELD sec_a
|
||||
ELSE
|
||||
EXIT INPUT
|
||||
END IF
|
||||
|
||||
AFTER FIELD sec_a
|
||||
SELECT nombre INTO datos1.nombre FROM irtb00004
|
||||
WHERE codigo = movimientos.sec_a and
|
||||
status_t is null
|
||||
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD sec_a
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME datos1.nombre
|
||||
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
IF transacc.status_mov = "3" THEN
|
||||
LET estado = "2"
|
||||
ELSE
|
||||
LET estado = transacc.status_mov
|
||||
END IF
|
||||
|
||||
DECLARE buscate CURSOR FOR
|
||||
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad_1,a.cantidad_2,
|
||||
b.unidad_med,b.descrip_esp ,a.maquina
|
||||
FROM irtb00006 a,intb00001 b,irtb00002 c
|
||||
WHERE a.num_doc = movimientos.num_doc and a.cod_mov = movimientos.cod_mov and
|
||||
a.cod_n=b.cod_n and a.cod_grupo=b.cod_grupo and a.cod_tipo=b.cod_tipo and
|
||||
a.cod_sec = b.cod_sec AND a.status_t is null and b.status_t IS NULL AND
|
||||
a.cod_n=c.cod_n and a.cod_grupo=c.cod_grupo and a.cod_tipo=c.cod_tipo and
|
||||
a.cod_sec = c.cod_sec AND c.status_t is null and a.status_mov = estado
|
||||
|
||||
LET idx = 1
|
||||
FOREACH buscate INTO movi9[idx].*
|
||||
IF movi9[idx].cantidad_2 < 0 THEN
|
||||
LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * -1
|
||||
END IF
|
||||
LET movi8_ant[idx].cant_ant1 = movi9[idx].cantidad_2
|
||||
|
||||
LET movi8_ant[idx].cod_n = movi9[idx].cod_n
|
||||
LET movi8_ant[idx].cod_grupo = movi9[idx].cod_grupo
|
||||
LET movi8_ant[idx].cod_tipo = movi9[idx].cod_tipo
|
||||
LET movi8_ant[idx].cod_sec = movi9[idx].cod_sec
|
||||
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
CALL set_count(idx -1)
|
||||
|
||||
INPUT ARRAY movi9 WITHOUT DEFAULTS FROM s_movi1.*
|
||||
ON KEY(CONTROL-B)
|
||||
LET p_act = arr_curr()
|
||||
LET scr_l = scr_line()
|
||||
|
||||
SELECT SUM(a.cantidad_2) INTO chequea.existe FROM irtb00006 a
|
||||
WHERE a.cod_n = movi9[p_act].cod_n and a.cod_grupo = movi9[p_act].cod_grupo
|
||||
AND a.cod_tipo = movi9[p_act].cod_tipo and a.cod_sec=movi9[p_act].cod_sec
|
||||
AND a.status_t IS NULL
|
||||
|
||||
IF transacc.status_mov = "1" THEN
|
||||
IF movi9[p_act].cantidad_2 > chequea.existe THEN
|
||||
LET numero_msg = 6
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
|
||||
UPDATE irtb00006 set us_mod = user,fech_mod = current,status_t = "E"
|
||||
WHERE cod_n=movi9[p_act].cod_n and cod_grupo=movi9[p_act].cod_grupo and
|
||||
cod_tipo=movi9[p_act].cod_tipo and cod_sec = movi9[p_act].cod_sec and
|
||||
num_doc = movimientos.num_doc and cod_mov = movimientos.cod_mov
|
||||
|
||||
IF transacc.status_mov = "1" THEN
|
||||
LET movi9[p_act].cantidad_2 = movi9[p_act].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
{ UPDATE irtb00002 set existencia = existencia + movi9[p_act].cantidad_2
|
||||
WHERE cod_n = movi9[p_act].cod_n and cod_grupo = movi9[p_act].cod_grupo and
|
||||
cod_tipo = movi9[p_act].cod_tipo and cod_sec = movi9[p_act].cod_sec
|
||||
}
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
|
||||
NEXT FIELD cod_n
|
||||
|
||||
BEFORE ROW
|
||||
LET p_Act = arr_curr()
|
||||
|
||||
LET codigo_ant[p_act] = movi9[p_act].cod_n using "&",
|
||||
movi9[p_act].cod_grupo using "&",
|
||||
movi9[p_act].cod_tipo using "&&",
|
||||
movi9[p_act].cod_sec using "&&&"
|
||||
|
||||
AFTER FIELD cod_n
|
||||
LET scr_l = scr_line()
|
||||
LET p_Act = arr_curr()
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
NEXT FIELD cod_grupo
|
||||
LET existe = "N"
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_grupo
|
||||
IF movi9[p_act].cod_grupo is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
NEXT FIELD cod_tipo
|
||||
LET existe = "N"
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_tipo
|
||||
IF movi9[p_act].cod_tipo is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
NEXT FIELD cod_sec
|
||||
LET existe = "N"
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
|
||||
IF movi9[p_act].cod_sec is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
IF movi9[p_act].cod_n is null AND movi9[p_act].cod_grupo is null AND
|
||||
movi9[p_act].cod_tipo is null AND movi9[p_act].cod_sec is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
ELSE
|
||||
LET ya = "N"
|
||||
CALL repetir()
|
||||
IF existe = "S" THEN
|
||||
LET existe = "N"
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
SELECT a.descrip_esp,a.unidad_med
|
||||
INTO articulos.descrip_esp,articulos.unidad_med
|
||||
FROM intb00001 a,irtb00002 b
|
||||
WHERE a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND
|
||||
a.cod_tipo = b.cod_tipo and a.cod_sec = b.cod_sec and
|
||||
a.status_t is null AND a.cod_n = movi9[p_act].cod_n AND
|
||||
a.cod_grupo = movi9[p_act].cod_grupo AND
|
||||
a.cod_tipo = movi9[p_act].cod_tipo AND
|
||||
a.cod_sec = movi9[p_act].cod_sec and b.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 FORM
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
|
||||
LET movi9[p_act].descrip_esp = articulos.descrip_esp
|
||||
LET movi9[p_act].unidad_med = articulos.unidad_med
|
||||
DISPLAY movi9[p_act].descrip_esp TO s_movi1[scr_l].descrip_esp
|
||||
ATTRIBUTE (BOLD)
|
||||
DISPLAY movi9[p_act].unidad_med TO s_movi1[scr_l].unidad_med
|
||||
ATTRIBUTE (BOLD)
|
||||
END IF
|
||||
|
||||
# Si es una transferencia
|
||||
|
||||
IF transacc.status_mov = "3" THEN
|
||||
SELECT * FROM irtb00002 WHERE cod_n = movi9[p_act].cod_n and
|
||||
cod_grupo = movimientos.sec_a and
|
||||
cod_tipo = movi9[p_act].cod_tipo and
|
||||
cod_sec = movi9[p_act].cod_sec and
|
||||
status_t is null
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 54
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
AFTER FIELD maquina
|
||||
IF movi9[p_act].cod_n is not null and movi9[p_act].cod_grupo is not null and
|
||||
movi9[p_act].cod_tipo is not null and movi9[p_act].cod_sec is not null
|
||||
THEN
|
||||
IF movi9[p_act].maquina is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD maquina
|
||||
END IF
|
||||
|
||||
SELECT a.nombre INTO maquinaria.nombre FROM irtb00009 a
|
||||
WHERE a.codigo = movi9[p_act].maquina and a.status_t is null
|
||||
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 115
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME maquinaria.nombre
|
||||
|
||||
AFTER FIELD cantidad_2
|
||||
|
||||
IF movi9[p_act].cantidad_2 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
IF movi9[p_act].cantidad_2 < 0 THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
|
||||
IF transacc.status_mov = "2" THEN
|
||||
IF movi9[p_act].cantidad_2 > 0 THEN
|
||||
SELECT SUM(a.cantidad_2) INTO chequea.existe FROM irtb00006 a
|
||||
WHERE a.cod_n=movi9[p_act].cod_n AND
|
||||
a.cod_grupo=movi9[p_act].cod_grupo AND
|
||||
a.cod_tipo=movi9[p_act].cod_tipo AND
|
||||
a.cod_sec=movi9[p_act].cod_sec AND a.status_t IS NULL AND
|
||||
a.num_doc != movimientos.num_doc
|
||||
|
||||
IF movi9[p_act].cantidad_2 > chequea.existe THEN
|
||||
LET numero_msg = 30
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_2
|
||||
END IF
|
||||
END If
|
||||
END If
|
||||
|
||||
AFTER INPUT
|
||||
#### Verifica si el usuario presiono la tecla <Ctrl-C>
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
# Chequea la maquinaria
|
||||
|
||||
IF movi4[p_act].codigo = codigo_ant[p_act] THEN
|
||||
FOR idx = 1 to arr_count()
|
||||
LET movi8_ant[idx].cod_n = movi9[idx].cod_n
|
||||
LET movi8_ant[idx].cod_grupo = movi9[idx].cod_grupo
|
||||
LET movi8_ant[idx].cod_tipo = movi9[idx].cod_tipo
|
||||
LET movi8_ant[idx].cod_sec = movi9[idx].cod_sec
|
||||
END FOR
|
||||
END IF
|
||||
|
||||
LET proceso_1 = "N"
|
||||
FOR idx = 1 to arr_count()
|
||||
IF movi9[idx].cod_n IS NOT NULL THEN
|
||||
LET proceso_1 = "S"
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
IF proceso_1 = "N" THEN
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
PROMPT "Desea Imprimir este Documento (S/N)? " FOR CHAR opc1
|
||||
LET opc1 = upshift(opc1)
|
||||
IF opc1 = "S" THEN
|
||||
START REPORT rep_ent TO "%USHOME%\\archivo"
|
||||
END IF
|
||||
LABEL vuelve:
|
||||
LET actualiza = "N"
|
||||
FOR idx = 1 TO arr_count()
|
||||
LET movi4[idx].codigo = movi9[idx].cod_n using "&",
|
||||
movi9[idx].cod_grupo using "&",
|
||||
movi9[idx].cod_tipo using "&&",
|
||||
movi9[idx].cod_sec using "&&&" CLIPPED
|
||||
|
||||
IF movi9[idx].cod_n is not null and movi9[idx].cod_grupo is not null and
|
||||
movi9[idx].cod_tipo is not null and movi9[idx].cod_sec is not null THEN
|
||||
|
||||
IF transacc.status_mov = "3" THEN
|
||||
LET tipos = "S"
|
||||
LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
#Cuando el usuario cambia el codigo
|
||||
IF codigo_ant[idx] is not null and movi4[idx].codigo != codigo_ant[idx] THEN
|
||||
|
||||
UPDATE irtb00006 SET fecha = movimientos.fecha,
|
||||
fact_no = movimientos.fact_no,
|
||||
conduce_no = movimientos.conduce_no,
|
||||
orden_compra = movimientos.orden_compra,
|
||||
cod_sp = movimientos.cod_sp,
|
||||
cod_sp_sec = movimientos.cod_sp_sec,
|
||||
sec_de = movimientos.sec_de,
|
||||
sec_a = movimientos.sec_a,
|
||||
cantidad_2 = movi9[idx].cantidad_2,
|
||||
maquina = movi9[idx].maquina,
|
||||
cod_n = movi9[idx].cod_n,
|
||||
cod_grupo = movi9[idx].cod_grupo,
|
||||
cod_tipo = movi9[idx].cod_tipo,
|
||||
cod_sec = movi9[idx].cod_sec,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = movi8_ant[idx].cod_n AND
|
||||
cod_grupo = movi8_ant[idx].cod_grupo AND
|
||||
cod_tipo = movi8_ant[idx].cod_tipo AND
|
||||
cod_sec = movi8_ant[idx].cod_sec and
|
||||
num_doc = movimientos.num_doc and
|
||||
cod_mov = movimientos.cod_mov
|
||||
|
||||
IF status != 0 THEN
|
||||
IF tipos = "S" THEN
|
||||
IF movi9[idx].cantidad_2 > 0 THEN
|
||||
LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
INSERT INTO irtb00006 (num_doc,cod_mov,fecha,fact_no,conduce_no,
|
||||
orden_compra,cod_sp,cod_sp_sec,sec_de ,sec_a,
|
||||
maquina,cod_n,cod_grupo,cod_tipo,cod_sec,
|
||||
cantidad_1,cantidad_2,us_mod,fech_mod,status_mov)
|
||||
VALUES (movimientos.num_doc,movimientos.cod_mov,movimientos.fecha,
|
||||
movimientos.fact_no,
|
||||
movimientos.conduce_no,movimientos.orden_compra,
|
||||
movimientos.cod_sp,movimientos.cod_sp_sec,
|
||||
movimientos.sec_de,movimientos.sec_a,movi9[idx].maquina,
|
||||
movi9[idx].cod_n,movimientos.sec_a,
|
||||
movi9[idx].cod_tipo,movi9[idx].cod_sec,movi9[idx].cantidad_1,
|
||||
movi9[idx].cantidad_2,user,current,2)
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
IF transacc.status_mov = "2" THEN
|
||||
LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
# SI NO ENCUENTRA CODIGOS Y DOCUMENTOS EN LA TABLA DE MOVIMIENTOS
|
||||
# AQUI SE CREA EL RENGLON NUEVO
|
||||
SELECT * FROM irtb00006
|
||||
WHERE cod_n = movi9[idx].cod_n and cod_grupo = movi9[idx].cod_grupo and
|
||||
cod_tipo = movi9[idx].cod_tipo and cod_sec = movi9[idx].cod_sec and
|
||||
num_doc = movimientos.num_doc and cod_mov = movimientos.cod_mov and
|
||||
status_t is null
|
||||
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
IF tipos = "S" AND movi9[idx].cantidad_2 > 0 THEN
|
||||
LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * -1
|
||||
END IF
|
||||
INSERT INTO irtb00006 (num_doc,cod_mov,fecha,fact_no,conduce_no,
|
||||
orden_compra,cod_sp,cod_sp_sec,sec_de ,sec_a,
|
||||
maquina,cod_n,cod_grupo,cod_tipo,cod_sec,
|
||||
cantidad_1,cantidad_2,us_mod,fech_mod,status_mov)
|
||||
VALUES (movimientos.num_doc,movimientos.cod_mov,movimientos.fecha,
|
||||
movimientos.fact_no,
|
||||
movimientos.conduce_no,movimientos.orden_compra,
|
||||
movimientos.cod_sp,movimientos.cod_sp_sec,
|
||||
movimientos.sec_de,movimientos.sec_a,movi9[idx].maquina,
|
||||
movi9[idx].cod_n,movi9[idx].cod_grupo,
|
||||
movi9[idx].cod_tipo,movi9[idx].cod_sec,movi9[idx].cantidad_1,
|
||||
movi9[idx].cantidad_2,user,current,
|
||||
estado)
|
||||
|
||||
IF tipos = "S" THEN
|
||||
IF movi9[idx].cantidad_2 < 0 THEN
|
||||
LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
INSERT INTO irtb00006 (num_doc,cod_mov,fecha,fact_no,conduce_no,
|
||||
orden_compra,cod_sp,cod_sp_sec,sec_de ,sec_a,
|
||||
maquina,cod_n,cod_grupo,cod_tipo,cod_sec,
|
||||
cantidad_1,cantidad_2,us_mod,fech_mod,status_mov)
|
||||
VALUES (movimientos.num_doc,movimientos.cod_mov,movimientos.fecha,
|
||||
movimientos.fact_no,
|
||||
movimientos.conduce_no,movimientos.orden_compra,
|
||||
movimientos.cod_sp,movimientos.cod_sp_sec,
|
||||
movimientos.sec_de,movimientos.sec_a,movi9[idx].maquina,
|
||||
movi9[idx].cod_n,movimientos.sec_a,
|
||||
movi9[idx].cod_tipo,movi9[idx].cod_sec,movi9[idx].cantidad_1,
|
||||
movi9[idx].cantidad_2,user,current,1)
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF movi4[idx].codigo = codigo_ant[idx] THEN
|
||||
UPDATE irtb00006 SET fecha = movimientos.fecha,
|
||||
fact_no = movimientos.fact_no,
|
||||
conduce_no = movimientos.conduce_no,
|
||||
orden_compra = movimientos.orden_compra,
|
||||
cod_sp = movimientos.cod_sp,
|
||||
cod_sp_sec = movimientos.cod_sp_sec,
|
||||
sec_de = movimientos.sec_de,
|
||||
sec_a = movimientos.sec_a,
|
||||
maquina = movi9[idx].maquina,
|
||||
cantidad_2 = movi9[idx].cantidad_2,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = movi9[idx].cod_n AND
|
||||
cod_grupo = movi9[idx].cod_grupo AND
|
||||
cod_tipo = movi9[idx].cod_tipo AND
|
||||
cod_sec = movi9[idx].cod_sec and
|
||||
num_doc = movimientos.num_doc and
|
||||
cod_mov = movimientos.cod_mov
|
||||
|
||||
IF tipos = "S" THEN
|
||||
UPDATE irtb00006 SET fecha = movimientos.fecha,
|
||||
fact_no = movimientos.fact_no,
|
||||
conduce_no = movimientos.conduce_no,
|
||||
orden_compra = movimientos.orden_compra,
|
||||
cod_sp = movimientos.cod_sp,
|
||||
cod_sp_sec = movimientos.cod_sp_sec,
|
||||
sec_de = movimientos.sec_de,
|
||||
sec_a = movimientos.sec_a,
|
||||
maquina = movi9[idx].maquina,
|
||||
cantidad_2 = movi9[idx].cantidad_2 * -1,
|
||||
us_mod = USER,
|
||||
fech_mod = CURRENT
|
||||
WHERE cod_n = movi9[idx].cod_n AND
|
||||
cod_grupo = movimientos.sec_a AND
|
||||
cod_tipo = movi9[idx].cod_tipo AND
|
||||
cod_sec = movi9[idx].cod_sec and
|
||||
num_doc = movimientos.num_doc and
|
||||
cod_mov = movimientos.cod_mov
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF movi9[idx].cantidad_2 < 0 THEN
|
||||
LET movi9[idx].cantidad_2 = movi9[idx].cantidad_2 * -1
|
||||
END IF
|
||||
|
||||
IF movi4[idx].codigo = codigo_ant[idx] THEN
|
||||
IF transacc.status_mov = "1" THEN
|
||||
UPDATE irtb00002 SET existencia = (existencia - movi8_ant[idx].cant_ant1) +
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi9[idx].cod_n AND
|
||||
cod_grupo = movi9[idx].cod_grupo AND
|
||||
cod_tipo = movi9[idx].cod_tipo AND
|
||||
cod_sec = movi9[idx].cod_sec
|
||||
ELSE
|
||||
IF transacc.status_mov != "3" THEN
|
||||
UPDATE irtb00002 SET existencia = (existencia + movi8_ant[idx].cant_ant1) -
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi9[idx].cod_n AND
|
||||
cod_grupo = movi9[idx].cod_grupo AND
|
||||
cod_tipo = movi9[idx].cod_tipo AND
|
||||
cod_sec = movi9[idx].cod_sec
|
||||
END IF
|
||||
IF transacc.status_mov = "3" THEN
|
||||
UPDATE irtb00002 SET existencia = (existencia + movi8_ant[idx].cant_ant1) -
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi9[idx].cod_n AND
|
||||
cod_grupo = movi9[idx].cod_grupo AND
|
||||
cod_tipo = movi9[idx].cod_tipo AND
|
||||
cod_sec = movi9[idx].cod_sec
|
||||
|
||||
UPDATE irtb00002 SET existencia = (existencia - movi8_ant[idx].cant_ant1) +
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi9[idx].cod_n AND
|
||||
cod_grupo = movimientos.sec_a AND
|
||||
cod_tipo = movi9[idx].cod_tipo AND
|
||||
cod_sec = movi9[idx].cod_sec
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF movi4[idx].codigo != codigo_ant[idx] THEN
|
||||
IF tipos = "S" THEN
|
||||
UPDATE irtb00002 SET existencia = existencia + movi8_ant[idx].cant_ant1 -
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi8_ant[idx].cod_n AND
|
||||
cod_grupo = movi8_ant[idx].cod_grupo AND
|
||||
cod_tipo = movi8_ant[idx].cod_tipo AND
|
||||
cod_sec = movi8_ant[idx].cod_sec
|
||||
|
||||
UPDATE irtb00002 SET existencia = existencia - movi8_ant[idx].cant_ant1 +
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi8_ant[idx].cod_n AND
|
||||
cod_grupo = movi8_ant[idx].cod_grupo AND
|
||||
cod_tipo = movi8_ant[idx].cod_tipo AND
|
||||
cod_sec = movi8_ant[idx].cod_sec
|
||||
END IF
|
||||
|
||||
IF transacc.status_mov = "1" THEN
|
||||
UPDATE irtb00002 SET existencia = existencia - movi8_ant[idx].cant_ant1 +
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi8_ant[idx].cod_n AND
|
||||
cod_grupo = movi8_ant[idx].cod_grupo AND
|
||||
cod_tipo = movi8_ant[idx].cod_tipo AND
|
||||
cod_sec = movi8_ant[idx].cod_sec
|
||||
ELSE
|
||||
IF transacc.status_mov != "3" THEN
|
||||
UPDATE irtb00002 SET existencia = existencia + movi8_ant[idx].cant_ant1 +
|
||||
movi9[idx].cantidad_2
|
||||
WHERE cod_n = movi8_ant[idx].cod_n AND
|
||||
cod_grupo = movi8_ant[idx].cod_grupo AND
|
||||
cod_tipo = movi8_ant[idx].cod_tipo AND
|
||||
cod_sec = movi8_ant[idx].cod_sec
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
IF opc1 = "S" THEN
|
||||
LET datos_gen.num_doc = movimientos.num_doc
|
||||
LET datos_gen.fecha = movimientos.fecha
|
||||
LET datos_gen.cod_mov = movimientos.cod_mov
|
||||
LET datos_gen.orden_compra = movimientos.orden_compra
|
||||
LET datos_gen.tipo = NULL #movimientos.tipo
|
||||
LET datos_gen.cod_sp = movimientos.cod_sp
|
||||
LET datos_gen.cod_sp_sec = movimientos.cod_sp_sec
|
||||
LET datos_gen.conduce_no = movimientos.conduce_no
|
||||
LET datos_gen.fact_no = movimientos.fact_no
|
||||
OUTPUT TO REPORT rep_ent(datos_gen.*,movi9[idx].cod_n,
|
||||
movi9[idx].cod_grupo,
|
||||
movi9[idx].cod_tipo,
|
||||
movi9[idx].cod_sec,movi9[idx].cantidad_1,
|
||||
movi9[idx].cantidad_2,movi[idx].maquina)
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
|
||||
UPDATE irtb00006 SET (us_crea,fech_crea) = (usu_crea,fecha_crea)
|
||||
WHERE @num_doc = movimientos.num_doc AND @cod_mov = movimientos.cod_mov
|
||||
|
||||
IF opc1 = "S" THEN
|
||||
FINISH REPORT rep_ent
|
||||
END IF
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Retornar"
|
||||
"Retorna al menu anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION buscame()
|
||||
IF movimientos.cod_sp is not null THEN
|
||||
SELECT nom_sp INTO datos_gen.nom_sp FROM cotb00001
|
||||
WHERE status_t IS NULL AND cod_sp = movimientos.cod_sp and
|
||||
cod_sp_sec = movimientos.cod_sp_sec
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
|
||||
FUNCTION repetir()
|
||||
|
||||
LET ant_art.cod_n = movi9[p_act].cod_n
|
||||
LET ant_art.cod_grupo = movi9[p_act].cod_grupo
|
||||
LET ant_art.cod_tipo = movi9[p_act].cod_tipo
|
||||
LET ant_art.cod_sec = movi9[p_act].cod_sec
|
||||
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF idx != p_act THEN
|
||||
IF movi9[idx].cod_n = ant_art.cod_n AND
|
||||
movi9[idx].cod_grupo = ant_art.cod_grupo AND
|
||||
movi9[idx].cod_tipo = ant_art.cod_tipo AND
|
||||
movi9[idx].cod_sec = ant_art.cod_sec THEN
|
||||
LET numero_msg = 21
|
||||
CALL msg(numero_msg)
|
||||
LET existe = "S"
|
||||
LET ya = "S"
|
||||
ELSE
|
||||
IF ya = "N" THEN
|
||||
LET existe = "N"
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
END FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user