Files
MBS/PROYECTO/PRDIR/prprmt024.4gl
T

207 lines
4.1 KiB
Plaintext

{
PROGRAMA : prprmt024
OBJETIVO : Flujo de Produccion
PROGRAMADOR : ING. ELVIS GARCÍA
FECHA : N/A
}
IMPORT util
IMPORT FGL fgldialog
SCHEMA smarmotech
DEFINE usuarios, clave STRING
DEFINE pcompanias RECORD LIKE companias.*
DEFINE info RECORD
numero_fp INT,
num_op INT,
fecha_compromiso DATE,
depto STRING
END RECORD
DEFINE detalle_produccion DYNAMIC ARRAY OF RECORD
cod_n INT,
cod_grupo INT,
cod_tipo INT,
cod_sec INT,
cantidad DECIMAL(12,2),
depto2 STRING
END RECORD
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "smarmotech" USER usuarios USING clave
SELECT * INTO pcompanias.* FROM companias
CALL prprmt023()
END MAIN
FUNCTION prprmt023()
OPEN WINDOW w1 WITH FORM "prfmmt024"
CALL fgl_settitle("Flujo orden de produccion")
MENU "OPCIONES"
COMMAND "Adicionar"
CLEAR FORM
CALL add_flow()
COMMAND "Consultar"
CLEAR FORM
CALL consult_flow()
COMMAND "Salir"
EXIT MENU
END MENU
CLOSE WINDOW w1
END FUNCTION
---------Agregar flujo a la orden de produccion-----------
FUNCTION add_flow()
INPUT BY NAME info.num_op, info.depto, info.fecha_compromiso
ATTRIBUTES(UNBUFFERED, WITHOUT DEFAULTS)
BEFORE INPUT
CALL departamentos(1)
AFTER FIELD num_op
SELECT * FROM prtb00038 WHERE orden_produccion = info.num_op
IF STATUS = NOTFOUND THEN
NEXT FIELD num_op
END IF
AFTER INPUT
IF info.depto IS NULL THEN
NEXT FIELD info_depto
END IF
IF info.fecha_compromiso IS NULL THEN
NEXT FIELD fecha_compromiso
END IF
CALL flow_detalle()
END INPUT
END FUNCTION
FUNCTION flow_detalle()
DEFINE detalle_mirror DYNAMIC ARRAY OF RECORD
cod_n INT,
cod_grupo INT,
cod_tipo INT,
cod_sec INT,
cantidad DECIMAL(12,2),
depto2 STRING
END RECORD
DEFINE idx INT
INPUT ARRAY detalle_produccion FROM record2.*
BEFORE INPUT
CALL search_data()
CALL departamentos(2)
AFTER INPUT
{EN ESTA PARTE HACER UN CONTROL SOBRE LA CANTIDAD DE LOS ITEMS}
CALL save_data()
END INPUT
END FUNCTION
FUNCTION search_data()
DEFINE idx INT
DECLARE buscar CURSOR FOR
SELECT cod_n, cod_grupo, cod_tipo, cod_sec, cantidad,0
FROM prtb00039
WHERE orden_produccion = info.num_op
LET idx = 1
FOREACH buscar INTO detalle_produccion[idx].*
LET idx = idx + 1
END FOREACH
END FUNCTION
FUNCTION save_data()
DEFINE idx INT
DEFINE flags RECORD
op INT,
fp INT
END RECORD
FOR idx = 1 TO detalle_produccion.getLength()
IF detalle_produccion[idx].cod_n IS NOT NULL THEN
SELECT num_op, secuencia_fp INTO flags.op, flags.fp
FROM prtb00042 WHERE num_op = info.num_op
END IF
END FOR
END FUNCTION
---------Consultar flujo de la orden de produccion-------------
FUNCTION consult_flow()
END FUNCTION
FUNCTION departamentos(caso INT )
DEFINE pdepartamento SMALLINT,pdescripcion CHAR(30),
kdepto ui.ComboBox
IF caso = 1 THEN
LET kdepto = ui.ComboBox.forName("formonly.depto")
ELSE
LET kdepto = ui.ComboBox.forName("formonly.depto2")
END IF
CALL kdepto.clear()
DECLARE busca_dpto CURSOR FOR
SELECT a.departamento,a.nom_dpto FROM adtb00001 a
WHERE a.status_t IS NULL
ORDER BY a.nom_dpto
FOREACH busca_dpto INTO pdepartamento,pdescripcion
CALL kdepto.additem(pdepartamento,pdescripcion)
END FOREACH
END FUNCTION