134 lines
5.8 KiB
Plaintext
134 lines
5.8 KiB
Plaintext
{
|
|
NOMBRE FUNCION: prprmt011c.4gl
|
|
OBJETIVO : Administratar el flujo comentarios
|
|
FECHA : 28/1/2016
|
|
DESARROLLADO : ING. JUAN SOTO
|
|
|
|
|
|
}
|
|
|
|
FUNCTION prprmt011c(xnum_oc,pcodn,pcodgrupo,pcodtipo,pcodsec,xusuario,xactualiza,xdepartamento)
|
|
DEFINE xnum_oc,xdepartamento INT,
|
|
idx,pcodn,pcodgrupo,pcodtipo,pcodsec SMALLINT,
|
|
opt,xactualiza VARCHAR(3),
|
|
arr_flujo DYNAMIC ARRAY OF RECORD
|
|
actualiza CHAR(2),
|
|
fecha_trx DATETIME YEAR TO MINUTE,
|
|
departamento SMALLINT,
|
|
nombre VARCHAR(60),
|
|
comentario VARCHAR(100),
|
|
fecha_compromiso DATE,
|
|
id INT
|
|
END RECORD,
|
|
xusuario VARCHAR(50)
|
|
|
|
|
|
DECLARE busca_flujo CURSOR FOR
|
|
SELECT a.actualiza,a.fecha_trx,a.departamento,b.nom_dpto,a.comentario,CONVERT(CHAR(10),a.fecha_compromiso,103),a.id
|
|
FROM prtb00033 a,adtb00001 b
|
|
WHERE a.num_oc = xnum_oc AND
|
|
a.cod_n = pcodn AND
|
|
a.cod_grupo = pcodgrupo AND
|
|
a.cod_tipo = pcodtipo AND
|
|
a.cod_sec = pcodsec AND
|
|
a.departamento = b.departamento
|
|
ORDER BY a.id
|
|
|
|
LET idx = 1
|
|
FOREACH busca_flujo INTO arr_flujo[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
OPEN WINDOW w1 WITH FORM "prfmmt011c"
|
|
|
|
INPUT ARRAY arr_flujo FROM sflujo.* ATTRIBUTE(WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
FOR idx = 1 TO arr_flujo.getLength()
|
|
IF arr_flujo[idx].actualiza = 'N' THEN
|
|
DISPLAY arr_flujo[idx].* TO sflujo[scr_line()].* ATTRIBUTE(reverse)
|
|
END IF
|
|
END FOR
|
|
AFTER FIELD departamento
|
|
IF arr_flujo[arr_curr()].departamento IS NOT NULL THEN
|
|
SELECT a.nom_dpto INTO arr_flujo[arr_curr()].nombre FROM adtb00001 a
|
|
WHERE a.departamento = arr_flujo[arr_curr()].departamento
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD departamento
|
|
END IF
|
|
IF arr_flujo[arr_curr()].fecha_compromiso IS NULL THEN
|
|
LET arr_flujo[arr_curr()].fecha_compromiso =TODAY
|
|
DISPLAY arr_flujo[arr_curr()].fecha_compromiso TO sflujo[scr_line()].fecha_compromiso
|
|
END IF
|
|
|
|
DISPLAY arr_flujo[arr_curr()].nombre TO sflujo[scr_line()].nombre
|
|
END IF
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
EXIT INPUT
|
|
END IF
|
|
IF xactualiza = "SI" THEN
|
|
|
|
LET opt = fgl_winquestion("Atencion","Desea Actualizar estos registros?","NO","NO|YES","QUESTION",0)
|
|
IF opt = "YES" THEN
|
|
BEGIN WORK
|
|
FOR idx = 1 TO arr_flujo.getLength()
|
|
IF arr_flujo[idx].departamento IS NOT NULL THEN
|
|
IF arr_flujo[idx].actualiza IS NULL THEN
|
|
INSERT INTO prtb00033 (fecha_trx,num_oc,cod_n,cod_grupo,cod_tipo,cod_sec,comentario,departamento,actualiza,
|
|
id,fecha_compromiso,usuario)
|
|
VALUES (GETDATE(),xnum_oc,pcodn,pcodgrupo,pcodtipo,pcodsec,
|
|
arr_flujo[idx].comentario,arr_flujo[idx].departamento,'N',idx,arr_flujo[idx].fecha_compromiso,
|
|
xusuario)
|
|
IF STATUS < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_winmessage("ERROR","OCURRIO UN ERROR AL ACTUALIZAR EL LOG","INFO")
|
|
EXIT FOR
|
|
END IF
|
|
IF arr_flujo[idx].fecha_compromiso IS NOT NULL THEN
|
|
UPDATE prtb00012 SET fecha_entrega = arr_flujo[idx].fecha_compromiso,
|
|
us_mod = xusuario,
|
|
fech_mod = getdate()
|
|
WHERE num_oc = xnum_oc
|
|
|
|
IF STATUS < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_winmessage("ERROR","OCURRIO UN ERROR AL ACTUALIZAR MAESTRA ORDENES","INFO")
|
|
EXIT FOR
|
|
END IF
|
|
UPDATE prtb00013 SET departamento = arr_flujo[idx].departamento,
|
|
us_mod = xusuario,
|
|
fech_mod = getdate()
|
|
WHERE num_oc = xnum_oc AND
|
|
cod_n = pcodn AND cod_grupo = pcodgrupo AND cod_tipo = pcodtipo AND
|
|
cod_sec = pcodsec
|
|
|
|
IF STATUS < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_winmessage("ERROR","OCURRIO UN ERROR AL ACTUALIZAR DETALLE ORDENES","INFO")
|
|
EXIT FOR
|
|
END IF
|
|
|
|
END IF
|
|
INSERT INTO prordenstatus(fecha_trx,num_oc,observacion,fecha_compromiso,usuario)
|
|
VALUES (GETDATE(),xnum_oc,arr_flujo[idx].comentario,arr_flujo[idx].fecha_compromiso,xusuario)
|
|
|
|
END IF
|
|
|
|
END IF
|
|
END FOR
|
|
COMMIT WORK
|
|
CALL fgl_winmessage("Atencion","Registro(s) Actualizado(s)","info")
|
|
ELSE
|
|
CALL fgl_winmessage("Atencion","Registro(s) NO Actualizado(s)","info")
|
|
|
|
END IF
|
|
END IF
|
|
END INPUT
|
|
IF INT_FLAG THEN
|
|
LET INT_FLAG = FALSE
|
|
CLOSE WINDOW w1
|
|
RETURN
|
|
END IF
|
|
CLOSE WINDOW w1
|
|
END FUNCTION |