Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
FUNCTION mover_fecha_conteo(v_cod_n,v_cod_grupo,v_cod_tipo,v_cod_sec,v_fecha_conteo,v_bodega)
|
||||
DEFINE v_categoria CHAR(2)
|
||||
DEFINE v_dias,v_diasCiclo INTEGER
|
||||
DEFINE v_fecha_nueva,
|
||||
v_fecha_base,v_fecha_conteo,v_semana_al DATE
|
||||
DEFINE v_codid INTEGER
|
||||
DEFINE v_cod_n,
|
||||
v_cod_grupo,
|
||||
v_cod_tipo,
|
||||
v_cod_sec,
|
||||
v_bodega INTEGER
|
||||
|
||||
-- Cursor para obtener productos cuyo conteo ya fue realizado
|
||||
DECLARE c_conteos CURSOR FOR
|
||||
SELECT b.codid,a.cod_n, a.cod_grupo, a.cod_tipo, a.cod_sec, a.bodega, a.categoria, a.semana_del
|
||||
FROM intb00015 a, iptb00002 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.cod_n = v_cod_n AND a.cod_grupo = v_cod_grupo AND a.cod_tipo = v_cod_tipo AND a.cod_sec = v_cod_sec AND
|
||||
a.estado = 'Pendiente' AND a.semana_del <=v_fecha_conteo
|
||||
|
||||
OPEN c_conteos
|
||||
FOREACH c_conteos INTO v_codid, v_cod_n, v_cod_grupo, v_cod_tipo, v_cod_sec, v_bodega, v_categoria, v_fecha_base
|
||||
-- Obtener los días de ciclo de acuerdo a la categoría
|
||||
SELECT a.diasProximoConteo,a.dias INTO v_dias,v_diasCiclo
|
||||
FROM intb00016 a
|
||||
WHERE a.categoria = v_categoria
|
||||
|
||||
IF SQLCA.SQLCODE = 0 THEN
|
||||
-- Calcular nueva fecha base sumando los días de la categoría
|
||||
LET v_fecha_nueva = v_fecha_base + v_dias
|
||||
|
||||
-- Asegurar que la nueva fecha sea un lunes
|
||||
WHILE WEEKDAY(v_fecha_nueva) != 1 -- 1 representa Lunes en Genero 4GL
|
||||
LET v_fecha_nueva = v_fecha_nueva + 1
|
||||
END WHILE
|
||||
LET v_semana_al = v_fecha_nueva + v_diascICLO
|
||||
-- Actualizar el estado del conteo actual a 'Finalizado'
|
||||
UPDATE intb00015
|
||||
SET estado = 'Realizado',us_mod = SUSER_SNAME(),fech_mod = getdate()
|
||||
WHERE a.cod_n = v_cod_n AND a.cod_grupo = v_cod_grupo AND a.cod_tipo = v_cod_tipo
|
||||
AND a.cod_sec = v_cod_sec
|
||||
AND bodega = v_bodega
|
||||
AND estado_conteo = 'Pendiente'
|
||||
|
||||
-- Insertar un nuevo registro con la nueva fecha programada
|
||||
INSERT INTO intb00015 ( cod_n, cod_grupo, cod_tipo, cod_sec, bodega, semana_Del, semana_Al, categoria, estado_conteo)
|
||||
VALUES (v_cod_n, v_cod_grupo, v_cod_tipo, v_cod_sec, v_bodega, v_fecha_nueva, v_semana_al, v_categoria, 'Pendiente', TODAY)
|
||||
END IF
|
||||
END FOREACH
|
||||
CLOSE c_conteos
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user