- mercancia_transito.4gl y funciones_ip.4gl: quitar CONVERT(...,103) al traer fechas de SQL Server, causaba "Invalid month in date" (-1205) en ambiente de pruebas por ambiguedad de formato dd/mm/yyyy vs mm/dd/yyyy. - ipprcs004_1: agregar dependencia faltante FUNCIONES_PR (no linkeaba, llamaba mercancia_transito/fechas_llegadas sin tener el modulo). - Registrar en el proyecto tres formularios que existian en el repo pero nunca se agregaron a mbsERP.4pw (ipfmwd017.4fd, almacenes.4fd, cofmfu009.4fd), causaban "Form file not found" en los botones Ordenes/Almacenes/Fecha Llegada. Verificado botón por botón contra produccion (Genero 3.20, .40.8) con el mismo codigo de producto: Foto, Ordenes, Reservados, Ubicacion, Almacenes y Reporte (PDF/pantalla/Excel) dan resultados consistentes. Pendiente aparte: el patron CONVERT(...,103) aparece en ~132 archivos del proyecto, riesgo sistemico a evaluar por separado. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
62 lines
2.7 KiB
Plaintext
62 lines
2.7 KiB
Plaintext
FUNCTION mercancia_transito(pcodn,pcodgrupo,pcodtipo,pcodsec,fecha_transito,cod_inventario)
|
|
DEFINE pcodn,pcodgrupo,pcodtipo,pcodsec,cod_inventario SMALLINT,
|
|
cantidad_ordenada, cantidad_recibida,transito DEC(12,5),
|
|
fecha_transito,fecha_ordenada,fecha_recibida DATE
|
|
|
|
# CANTIDAD ORDENADA
|
|
LET transito = 0
|
|
LET fecha_ordenada=NULL
|
|
LET fecha_recibida=NULL
|
|
IF cod_inventario ='02' THEN
|
|
SELECT SUM(a.cantidad) INTO cantidad_ordenada
|
|
FROM cotb00015 a,cotb00014 b
|
|
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
|
|
(a.num_oc = b.num_oc) AND (b.fech_oc <= fecha_transito) AND
|
|
a.status_t IS NULL
|
|
|
|
SELECT SUM(a.cantidad_2) INTO cantidad_recibida
|
|
FROM iptb00006 a
|
|
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
|
|
(a.fecha <= fecha_transito) AND a.cod_mov IN (10) and
|
|
a.status_t IS NULL
|
|
LET transito = cantidad_ordenada - cantidad_recibida
|
|
SELECT MAX(b.fech_oc) INTO fecha_ordenada FROM cotb00014 b,cotb00015 a
|
|
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
|
|
(a.num_oc = b.num_oc) AND (b.fech_oc <= fecha_transito) AND
|
|
a.status_t IS NULL
|
|
|
|
SELECT MAX(a.fecha) INTO fecha_recibida
|
|
FROM iptb00006 a
|
|
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
|
|
(a.fecha <= fecha_transito) AND a.cod_mov IN (10) and
|
|
a.status_t IS NULL
|
|
|
|
END IF
|
|
RETURN transito,fecha_ordenada,fecha_recibida
|
|
END FUNCTION
|
|
FUNCTION fechas_llegadas(pcodn,pcodgrupo,pcodtipo,pcodsec,fecha_transito)
|
|
DEFINE idx,pcodn,pcodgrupo,pcodtipo,pcodsec SMALLINT,
|
|
fecha_transito DATE
|
|
DEFINE busca_parcial DYNAMIC ARRAY OF RECORD
|
|
secuencia INT,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad DEC(12,5),
|
|
fech_emb DATE,
|
|
fech_ent DATE
|
|
END RECORD
|
|
OPEN WINDOW w1 WITH FORM "cofmfu009"
|
|
DECLARE b_fecha_parcial CURSOR FOR
|
|
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.cantidad,a.fech_emb,a.fech_ent
|
|
FROM cotb00025 a WHERE a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND
|
|
a.cod_Sec = pcodsec AND a.fech_ent <= fecha_transito AND a.status_t IS NULL
|
|
|
|
LET idx = 1
|
|
FOREACH b_fecha_parcial INTO busca_parcial[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
DISPLAY ARRAY busca_parcial TO s_parcial.*
|
|
CLOSE WINDOW w1
|
|
END FUNCTION |