Bloqueados: lqprrp009, prprmt006 e ipprmt044 (pendiente enlazar y probar)
lqprrp009 (Liquidacion Repuestos):
- Dependencia FUNCIONESREPORT (msgrp000, seleccionarsalida).
- defecto() copiada al programa (vive en indir/defecto.4gl junto con
msgrp000 duplicado, importarla chocaba -6203); configureOutput ya la
aporta msgrp000.
- Quita Convert(...,103) que llenaba variables DATE (fecha_inicial/final).
- Titulo de ventana "Liquidacion Repuestos".
prprmt006 (Orden Produccion):
- El programa usa prtb08[idx].cod_n_c... como arreglo, pero el global
prtb08 es RECORD LIKE prtb00012.* y el arreglo arrprtb08 se quito de
prprgb000.4gl el 24/08 (68b73cf): 52 errores "Subscripting cannot be
applied". Se define arrprtb08 dentro del propio programa (mismos 7
campos que el form prfmmt006 s_orden) y se renombran 54 referencias.
Nadie mas usa arrprtb08, no hay choque con globales.
ipprmt044 (Transacciones Inventario):
- Faltaba la funcion fotos() de 12 parametros: existe en el respaldo
PROYECTOS/otrodir/fotos.4gl (version de 2017) y la llamada del programa
coincide exactamente. Se agrega a la aplicacion junto con el form
ipfmwd015.4fd. Las llamadas de ipprcs004/_1 a fotos() estan comentadas,
no se afectan. cc_avisadespacho es un procedimiento almacenado, no una
funcion 4GL.
Los tres compilan con fglcomp (esquema smarmotech); falta enlazar y
probar cuando se active la licencia de Genero (FLM-51 vencida).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,16 @@
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "prprgb000.4gl"
|
||||
|
||||
DEFINE arrprtb08 DYNAMIC ARRAY OF RECORD
|
||||
cod_n_c LIKE prtb00008.cod_n,
|
||||
cod_grupo_c LIKE prtb00008.cod_grupo,
|
||||
cod_tipo_c LIKE prtb00008.cod_tipo,
|
||||
cod_sec_c LIKE prtb00008.cod_sec,
|
||||
cantidad_c LIKE prtb00008.cantidad,
|
||||
descrip_esp_c LIKE intb00001.descrip_esp,
|
||||
unidad_c LIKE intb00001.unidad_med
|
||||
END RECORD
|
||||
DEFINE nombre LIKE vetb00004.nombre,
|
||||
descrip_esp_c,descrip_esp LIKE iptb00002.descrip_esp,
|
||||
unidad LIKE iptb00002.unidad_med,
|
||||
@@ -280,13 +290,13 @@ FUNCTION prpcad006()
|
||||
b.cod_sec = prtb07.cod_sec AND
|
||||
a.num_oc = b.num_oc
|
||||
LET idx = 1
|
||||
FOREACH buscame INTO prtb08[idx].*
|
||||
FOREACH buscame INTO arrprtb08[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
CALL set_count(idx-1)
|
||||
}
|
||||
INPUT ARRAY prtb08 FROM s_orden.*
|
||||
INPUT ARRAY arrprtb08 FROM s_orden.*
|
||||
|
||||
ON KEY(CONTROL-W)
|
||||
CALL busca_material()
|
||||
@@ -295,13 +305,13 @@ FUNCTION prpcad006()
|
||||
LET scr_l = scr_line()
|
||||
AFTER FIELD cod_sec_c
|
||||
LET descrip_esp_c = NULL
|
||||
IF prtb08[curr].cod_sec_c IS NOT NULL THEN
|
||||
IF arrprtb08[curr].cod_sec_c IS NOT NULL THEN
|
||||
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp_c,unidad_c
|
||||
FROM intb00001 a
|
||||
WHERE a.cod_n = prtb08[curr].cod_n_c AND
|
||||
a.cod_grupo = prtb08[curr].cod_grupo_c AND
|
||||
a.cod_tipo = prtb08[curr].cod_tipo_c AND
|
||||
a.cod_sec = prtb08[curr].cod_sec_c AND
|
||||
WHERE a.cod_n = arrprtb08[curr].cod_n_c AND
|
||||
a.cod_grupo = arrprtb08[curr].cod_grupo_c AND
|
||||
a.cod_tipo = arrprtb08[curr].cod_tipo_c AND
|
||||
a.cod_sec = arrprtb08[curr].cod_sec_c AND
|
||||
a.status_t IS NULL
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
@@ -309,15 +319,15 @@ FUNCTION prpcad006()
|
||||
NEXT FIELD cod_n_c
|
||||
END IF
|
||||
END IF
|
||||
LET prtb08[curr].descrip_esp_c = descrip_esp_c
|
||||
LET prtb08[curr].unidad_c = unidad_c
|
||||
DISPLAY prtb08[curr].descrip_esp_c TO s_orden[scr_l].descrip_esp_c
|
||||
LET arrprtb08[curr].descrip_esp_c = descrip_esp_c
|
||||
LET arrprtb08[curr].unidad_c = unidad_c
|
||||
DISPLAY arrprtb08[curr].descrip_esp_c TO s_orden[scr_l].descrip_esp_c
|
||||
ATTRIBUTE(BLUE)
|
||||
DISPLAY prtb08[curr].unidad_c TO s_orden[scr_l].unidad_c
|
||||
DISPLAY arrprtb08[curr].unidad_c TO s_orden[scr_l].unidad_c
|
||||
ATTRIBUTE(BLUE)
|
||||
AFTER FIELD cantidad_c
|
||||
IF prtb08[curr].cod_n_c IS NOT NULL THEN
|
||||
IF prtb08[curr].cantidad_c IS NULL THEN
|
||||
IF arrprtb08[curr].cod_n_c IS NOT NULL THEN
|
||||
IF arrprtb08[curr].cantidad_c IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad_c
|
||||
@@ -347,23 +357,23 @@ FUNCTION prpcad006()
|
||||
# SE ESTA VALIDANDO EL PRODUCTO TERMINADO EN EL CODIGO DE LA MATERIA PRIMA
|
||||
# PARA CUANDO LA ORDEN SEA PARA PRODUCTOS IMPORTADOS QUE NO TIENEN COMPOSICION
|
||||
|
||||
IF prtb08[1].cod_n_c IS NULL THEN
|
||||
LET prtb08[1].cod_n_c = prtb07.cod_n
|
||||
LET prtb08[1].cod_grupo_c = prtb07.cod_grupo
|
||||
LET prtb08[1].cod_tipo_c = prtb07.cod_tipo
|
||||
LET prtb08[1].cod_sec_c = prtb07.cod_Sec
|
||||
OUTPUT TO REPORT ordenes(prtb07.num_oc,prtb08[idx].*)
|
||||
IF arrprtb08[1].cod_n_c IS NULL THEN
|
||||
LET arrprtb08[1].cod_n_c = prtb07.cod_n
|
||||
LET arrprtb08[1].cod_grupo_c = prtb07.cod_grupo
|
||||
LET arrprtb08[1].cod_tipo_c = prtb07.cod_tipo
|
||||
LET arrprtb08[1].cod_sec_c = prtb07.cod_Sec
|
||||
OUTPUT TO REPORT ordenes(prtb07.num_oc,arrprtb08[idx].*)
|
||||
END IF
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF prtb08[idx].cod_n_c IS NOT NULL THEN
|
||||
IF arrprtb08[idx].cod_n_c IS NOT NULL THEN
|
||||
INSERT INTO prtb00008 VALUES (prtb07.num_oc,
|
||||
prtb08[idx].cod_n_c,
|
||||
prtb08[idx].cod_grupo_c,
|
||||
prtb08[idx].cod_tipo_c,
|
||||
prtb08[idx].cod_sec_c,
|
||||
prtb08[idx].cantidad_c,
|
||||
arrprtb08[idx].cod_n_c,
|
||||
arrprtb08[idx].cod_grupo_c,
|
||||
arrprtb08[idx].cod_tipo_c,
|
||||
arrprtb08[idx].cod_sec_c,
|
||||
arrprtb08[idx].cantidad_c,
|
||||
SUSER_SNAME(),current,null,null)
|
||||
OUTPUT TO REPORT ordenes(prtb07.num_oc,prtb08[idx].*)
|
||||
OUTPUT TO REPORT ordenes(prtb07.num_oc,arrprtb08[idx].*)
|
||||
END IF
|
||||
END FOR
|
||||
FINISH REPORT ordenes
|
||||
@@ -534,24 +544,24 @@ LABEL sale9:
|
||||
END FUNCTION
|
||||
FUNCTION limpia()
|
||||
FOR idx = 1 TO 10
|
||||
LET prtb08[idx].cod_n_c = null
|
||||
LET prtb08[idx].cod_grupo_c = null
|
||||
LET prtb08[idx].cod_tipo_c = null
|
||||
LET prtb08[idx].cod_sec_c = null
|
||||
LET prtb08[idx].unidad_c = null
|
||||
LET prtb08[idx].cantidad_c = null
|
||||
LET prtb08[idx].descrip_esp_c = null
|
||||
LET arrprtb08[idx].cod_n_c = null
|
||||
LET arrprtb08[idx].cod_grupo_c = null
|
||||
LET arrprtb08[idx].cod_tipo_c = null
|
||||
LET arrprtb08[idx].cod_sec_c = null
|
||||
LET arrprtb08[idx].unidad_c = null
|
||||
LET arrprtb08[idx].cantidad_c = null
|
||||
LET arrprtb08[idx].descrip_esp_c = null
|
||||
END FOR
|
||||
FOR idx = 1 TO 5
|
||||
DISPLAY prtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
|
||||
DISPLAY prtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
|
||||
DISPLAY prtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
|
||||
DISPLAY prtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
|
||||
DISPLAY prtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
|
||||
DISPLAY arrprtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
|
||||
DISPLAY arrprtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
|
||||
DISPLAY arrprtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
|
||||
DISPLAY arrprtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
|
||||
DISPLAY arrprtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
|
||||
|
||||
DISPLAY prtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
|
||||
DISPLAY arrprtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
|
||||
ATTRIBUTE(BLUE)
|
||||
DISPLAY prtb08[idx].unidad_c TO s_orden[idx].unidad_c
|
||||
DISPLAY arrprtb08[idx].unidad_c TO s_orden[idx].unidad_c
|
||||
ATTRIBUTE(BLUE)
|
||||
|
||||
END FOR
|
||||
@@ -565,28 +575,28 @@ FUNCTION busca_detalle()
|
||||
WHERE a.num_oc = numero_oc
|
||||
|
||||
LET idx = 1
|
||||
FOREACH busca_d INTO prtb08[idx].*
|
||||
FOREACH busca_d INTO arrprtb08[idx].*
|
||||
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp_c,unidad_c
|
||||
FROM intb00001 a
|
||||
WHERE a.cod_n = prtb08[idx].cod_n_c AND
|
||||
a.cod_grupo = prtb08[idx].cod_grupo_c AND
|
||||
a.cod_tipo = prtb08[idx].cod_tipo_c AND
|
||||
a.cod_sec = prtb08[idx].cod_sec_c AND
|
||||
WHERE a.cod_n = arrprtb08[idx].cod_n_c AND
|
||||
a.cod_grupo = arrprtb08[idx].cod_grupo_c AND
|
||||
a.cod_tipo = arrprtb08[idx].cod_tipo_c AND
|
||||
a.cod_sec = arrprtb08[idx].cod_sec_c AND
|
||||
a.status_t IS NULL
|
||||
IF idx > 5 THEN
|
||||
EXIT FOREACH
|
||||
END IF
|
||||
LET prtb08[idx].descrip_esp_c = descrip_esp_c
|
||||
LET prtb08[idx].unidad_c = unidad_c
|
||||
DISPLAY prtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
|
||||
DISPLAY prtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
|
||||
DISPLAY prtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
|
||||
DISPLAY prtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
|
||||
DISPLAY prtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
|
||||
LET arrprtb08[idx].descrip_esp_c = descrip_esp_c
|
||||
LET arrprtb08[idx].unidad_c = unidad_c
|
||||
DISPLAY arrprtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
|
||||
DISPLAY arrprtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
|
||||
DISPLAY arrprtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
|
||||
DISPLAY arrprtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
|
||||
DISPLAY arrprtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
|
||||
|
||||
DISPLAY prtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
|
||||
DISPLAY arrprtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
|
||||
ATTRIBUTE(BLUE)
|
||||
DISPLAY prtb08[idx].unidad_c TO s_orden[idx].unidad_c
|
||||
DISPLAY arrprtb08[idx].unidad_c TO s_orden[idx].unidad_c
|
||||
ATTRIBUTE(BLUE)
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
Reference in New Issue
Block a user