Files
MBS/WEBSERVICES/respuestas.4gl
T

118 lines
5.1 KiB
Plaintext

IMPORT util
IMPORT os
IMPORT security
DEFINE j INT,
url_folder STRING,
tmpfile STRING
FUNCTION respuestas(pdata)
DEFINE pdata STRING,
foto_empleado BYTE,
cuenta_alegre,cuenta_malo int
DEFINE p RECORD
credenciales RECORD
usuario,clave VARCHAR(50)
END RECORD,
repuesta RECORD
num_emp INT,
cedula,
nombre,
id_pregunta,pregunta,repuesta,departamento,fechaVence,motivo STRING,
conteo int
END RECORD
END RECORD,
mensajes RECORD
cod_msg INT,
descripcion STRING
END RECORD,
instString,selecString string
CALL util.JSON.parse(pdata,p)
IF STATUS < 0 THEN
LET mensajes.cod_msg=STATUS
LET mensajes.descripcion = 'ERROR EN CONEXION ',SQLCA.sqlerrm
RETURN util.JSON.stringify(p)
END IF
DISPLAY "<RESPUESTA:>USUARIO: ",p.credenciales.usuario," pass ",p.credenciales.clave
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
IF STATUS < 0 THEN
LET mensajes.cod_msg=STATUS
LET mensajes.descripcion = 'ERROR EN CONEXION ',SQLCA.sqlerrm
DISCONNECT CURRENT
RETURN util.JSON.stringify(p)
END IF
IF p.repuesta.repuesta = "1" THEN
LET selecString ="SELECT ISNULL(COUNT(*),0) FROM encuestas.dbo.respuestas a WHERE a.cedula = ? AND fechaVence = ? and a.respuesta = ?"
PREPARE C_CUENTA FROM selecString
EXECUTE c_cuenta INTO cuenta_malo USING p.repuesta.cedula,p.repuesta.fechaVence,P.repuesta.repuesta
IF cuenta_malo =2 THEN
LET mensajes.cod_msg=400
LET mensajes.descripcion = 'SOLO ES POSIBLE EVALUAR DOS COLABORADORES CON MAL SERVICIO'
DISCONNECT CURRENT
RETURN util.JSON.stringify(mensajes)
END IF
END IF
IF p.repuesta.repuesta = "10" THEN
LET selecString ="SELECT ISNULL(COUNT(*),0) FROM encuestas.dbo.respuestas a WHERE a.cedula = ? AND fechaVence = ? and a.respuesta = ?"
PREPARE C_CUENTA1 FROM selecString
EXECUTE c_cuenta1 INTO cuenta_alegre USING p.repuesta.cedula,p.repuesta.fechaVence,P.repuesta.repuesta
IF cuenta_alegre =2 THEN
LET mensajes.cod_msg=400
LET mensajes.descripcion = 'SOLO ES POSIBLE EVALUAR DOS COLABORADORES CON BUEN SERVICIO'
DISCONNECT CURRENT
RETURN util.JSON.stringify(mensajes)
END IF
END IF
LET selecString =
"SELECT DISTINCT a.fechaVence FROM encuestas.dbo.respuestas a WHERE a.cedula = ? AND fechaVence = ? AND a.num_emp = ? "
DISPLAY "datos: ",p.repuesta.cedula," ",p.repuesta.fechaVence," ",p.repuesta.num_emp
PREPARE existe FROM selecString
EXECUTE existe USING p.repuesta.cedula,p.repuesta.fechaVence,p.repuesta.num_emp
IF status = NOTFOUND THEN
LET instString =
"INSERT INTO encuestas.dbo.respuestas( cedula,created_at,nombre,num_emp,departamento,respuesta,pregunta,
id_pregunta,fechaVence,motivo )
VALUES ( ?,GETDATE(),?,?,?,?,?,?,?,? ) "
PREPARE comando FROM instString
EXECUTE comando USING p.repuesta.cedula,p.repuesta.nombre,p.repuesta.num_emp,p.repuesta.departamento,
p.repuesta.repuesta,p.repuesta.pregunta,p.repuesta.id_pregunta,
p.repuesta.fechaVence,p.repuesta.motivo
LET mensajes.descripcion = 'RESPUESTA ADICIONADA EXITOSAMENTE'
ELSE
LET instString =
"UPDATE encuestas.dbo.respuestas SET updated_at =GETDATE(),
departamento =?,
respuesta =?,
pregunta =?,
id_pregunta =?,
motivo =?
WHERE cedula = ? AND fechaVence = ? AND num_emp = ?
"
PREPARE upcomando FROM instString
EXECUTE upcomando USING p.repuesta.departamento,
p.repuesta.repuesta,p.repuesta.pregunta,p.repuesta.id_pregunta,
P.repuesta.motivo,
P.repuesta.cedula,P.repuesta.fechaVence, P.repuesta.num_emp
LET mensajes.descripcion = 'RESPUESTA ACTUALIZADA EXITOSAMENTE'
END IF
DISCONNECT CURRENT
LET mensajes.cod_msg=200
RETURN util.JSON.stringify(mensajes)
END FUNCTION