Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
{
|
||||
FUNCTION: programar_proximo_conteo
|
||||
OBJETIVO: GENERAR LOS CICLOS DE LOS CONTEOS A PARTIR DE UNA FECHA
|
||||
FECHA 3, FEBRERO 2025
|
||||
DESARROLLADO POR: ING. JUAN SOTO
|
||||
|
||||
}
|
||||
|
||||
MAIN
|
||||
|
||||
DEFINE bodega INT,
|
||||
fecha DATE
|
||||
LET bodega = 4
|
||||
LET fecha = '02/10/2025'
|
||||
CONNECT TO "smarmotech" USER 'jusoto' USING 'lmmjvsd2014'
|
||||
CALL programar_proximo_conteo(bodega,fecha)
|
||||
END MAIN
|
||||
|
||||
FUNCTION programar_proximo_conteo(v_fecha_nueva,v_bodega)
|
||||
DEFINE v_categoria CHAR(2)
|
||||
DEFINE v_dias INTEGER
|
||||
DEFINE v_fecha_nueva DATE
|
||||
DEFINE v_codid INTEGER
|
||||
DEFINE v_cod_n INTEGER
|
||||
DEFINE v_cod_grupo INTEGER
|
||||
DEFINE v_cod_tipo INTEGER
|
||||
DEFINE v_cod_sec INTEGER
|
||||
DEFINE v_bodega INTEGER
|
||||
|
||||
-- Cursor para obtener productos con transacciones en almacén
|
||||
DECLARE c_productos CURSOR FOR
|
||||
SELECT p.codid, t.cod_n, t.cod_grupo, t.cod_tipo, t.cod_sec, t.bodega, p.categoria
|
||||
FROM iptb00006 t
|
||||
INNER JOIN iptb00002 p ON t.cod_n = p.cod_n
|
||||
AND t.cod_grupo = p.cod_grupo
|
||||
AND t.cod_tipo = p.cod_tipo
|
||||
AND t.cod_sec = p.cod_sec
|
||||
WHERE t.bodega IS NOT NULL
|
||||
GROUP BY p.codid, t.cod_n, t.cod_grupo, t.cod_tipo, t.cod_sec, t.bodega, p.categoria
|
||||
|
||||
OPEN c_productos
|
||||
FOREACH c_productos INTO v_codid, v_cod_n, v_cod_grupo, v_cod_tipo, v_cod_sec, v_bodega, v_categoria
|
||||
-- Obtener los días correspondientes según la categoría
|
||||
SELECT dias INTO v_dias
|
||||
FROM intb00016
|
||||
WHERE categoria = v_categoria
|
||||
|
||||
IF SQLCA.SQLCODE = 0 THEN
|
||||
-- Calcular la nueva fecha de conteo
|
||||
LET v_fecha_nueva = v_fecha_nueva + v_dias
|
||||
|
||||
-- Marcar el conteo actual como realizado (para esta bodega y producto)
|
||||
UPDATE iptb00075
|
||||
SET estado_conteo = 'Realizado', fecha_ultimo_conteo = TODAY
|
||||
WHERE codid = v_codid
|
||||
AND bodega = v_bodega
|
||||
AND estado_conteo = 'Pendiente'
|
||||
|
||||
-- Eliminar registros pendientes con la misma fecha para evitar duplicados
|
||||
DELETE FROM iptb00075
|
||||
WHERE codid = v_codid
|
||||
AND bodega = v_bodega
|
||||
AND fecha_proximo_conteo = v_fecha_nueva
|
||||
AND estado_conteo = 'Pendiente'
|
||||
|
||||
-- Insertar un nuevo registro de conteo por bodega
|
||||
INSERT INTO iptb00075 (codid, cod_n, cod_grupo, cod_tipo, cod_sec, bodega, fecha_proximo_conteo, categoria, estado_conteo, fecha_ultimo_conteo)
|
||||
VALUES (v_codid, v_cod_n, v_cod_grupo, v_cod_tipo, v_cod_sec, v_bodega, v_fecha_nueva, v_categoria, 'Pendiente', TODAY)
|
||||
END IF
|
||||
END FOREACH
|
||||
CLOSE c_productos
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user