Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
{
|
||||
A- conseguir los numeros de ITEMS por categoria. Con los numeros de semanas. lOS QUE NO SE CONTARON DEBE IR A LA PROXIMOA
|
||||
B- Conseguir los numeros de los B pero mensual
|
||||
|
||||
}
|
||||
MAIN
|
||||
DEFINE pcategoria CHAR(2),
|
||||
pfecha DATE
|
||||
CONNECT TO "smarmotech" USER 'jsoto' USING 'lmmjvsd2014'
|
||||
DECLARE ciclo CURSOR FOR SELECT a.categoria INTO pcategoria FROM intb00016 a
|
||||
WHERE a.categoria = 'A'
|
||||
ORDER BY a.categoria
|
||||
|
||||
FOREACH ciclo
|
||||
IF pcategoria = 'A' THEN
|
||||
LET pfecha = '02/17/2025'
|
||||
END IF
|
||||
IF pcategoria = 'B' THEN
|
||||
LET pfecha = '03/17/2025'
|
||||
END IF
|
||||
IF pcategoria = 'C' THEN
|
||||
LET pfecha = '04/21/2025'
|
||||
END IF
|
||||
|
||||
CALL generar_ciclo_conteo(pcategoria,pfecha)
|
||||
END FOREACH
|
||||
END MAIN
|
||||
|
||||
FUNCTION generar_ciclo_conteo(kcategoria,fecha_proceso)
|
||||
DEFINE categoria RECORD
|
||||
categoria CHAR(1),
|
||||
dias_contar INTEGER,
|
||||
ciclo INTEGER
|
||||
END RECORD,
|
||||
kcategoria CHAR(2),
|
||||
fecha_proceso DATE,
|
||||
almacen int
|
||||
|
||||
# DEFINE categoria_a categoria
|
||||
# DEFINE categoria_b categoria
|
||||
# DEFINE categoria_c categoria
|
||||
|
||||
DEFINE producto RECORD
|
||||
cod_n CHAR(10),
|
||||
cod_grupo CHAR(10),
|
||||
cod_tipo CHAR(10),
|
||||
cod_sec CHAR(10),
|
||||
categoria CHAR(1)
|
||||
END RECORD
|
||||
|
||||
DEFINE semana_actual DATE
|
||||
DEFINE semana_inicio DATE
|
||||
DEFINE semana_fin DATE
|
||||
DEFINE dias_contar INTEGER
|
||||
DEFINE ciclo,cuenta,cantidad,cuenta_ciclo,cuentaReg,dia_libre INTEGER
|
||||
|
||||
LET almacen = 4
|
||||
DELETE FROM intb00015 WHERE intb00015.CATEGORIA = kcategoria AND estado = 'Pendiente' AND
|
||||
bodega = almacen
|
||||
LET cuenta = 1
|
||||
LET dia_libre = 1
|
||||
-- Obtener parámetros de la tabla intb00016
|
||||
SELECT a.categoria, a.dias, a.ciclo,COUNT(*)
|
||||
INTO categoria.categoria, categoria.dias_contar, categoria.ciclo,cuenta
|
||||
FROM intb00016 a INNER JOIN iptb00002 b ON b.categoria = a.categoria AND a.categoria = kcategoria
|
||||
GROUP BY a.categoria, a.dias, a.ciclo
|
||||
|
||||
|
||||
LET cantidad = (cuenta / categoria.ciclo) USING "<<<<"
|
||||
LET cuentaReg = 0
|
||||
-- Obtener la fecha actual para calcular semanas
|
||||
LET semana_actual = TODAY
|
||||
LET semana_inicio = fecha_proceso
|
||||
-- Procesar productos según categoría
|
||||
DECLARE buscar CURSOR FOR
|
||||
SELECT a.cod_n, a.cod_grupo, a.cod_tipo, a.cod_sec, a.categoria INTO producto.*
|
||||
FROM iptb00002 a
|
||||
WHERE a.categoria = kcategoria
|
||||
ORDER BY categoria,cod_n, cod_grupo, cod_tipo, cod_sec
|
||||
FOREACH buscar
|
||||
|
||||
|
||||
LET dias_contar = categoria.dias_contar
|
||||
LET ciclo = categoria.ciclo
|
||||
LET cuenta_ciclo = cantidad
|
||||
|
||||
-- Generar ciclos de conteo
|
||||
|
||||
# WHILE semana_inicio + dias_contar <= semana_inicio + ciclo
|
||||
LET semana_fin = semana_inicio + (dias_contar)
|
||||
INSERT INTO intb00015 (cod_n, cod_grupo, cod_tipo, cod_sec, semana_del, semana_al,categoria,estado,bodega)
|
||||
VALUES (producto.cod_n, producto.cod_grupo, producto.cod_tipo, producto.cod_sec,
|
||||
semana_inicio, semana_fin,producto.categoria,'Pendiente',almacen)
|
||||
|
||||
DISPLAY "data: ",cuenta, " cuenta ciclo: ",cuenta_ciclo," semana_inicia: ",semana_inicio, " fecha ",fecha_proceso
|
||||
IF cuentaReg <= cuenta_ciclo THEN
|
||||
|
||||
|
||||
LET cuentaReg = cuentaReg + 1
|
||||
ELSE
|
||||
-- Reiniciar el contador y avanzar a la próxima semana
|
||||
LET semana_inicio = semana_fin + 1+dia_libre
|
||||
LET cuentaReg = 1
|
||||
END IF
|
||||
|
||||
# END WHILE
|
||||
|
||||
|
||||
END FOREACH
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user