manta_bot/metodos.js

970 lines
41 KiB
JavaScript
Raw Normal View History

2021-05-14 17:58:59 -05:00
var funcion = require("./funtions.js");
var dialog = require("./interacciones.js");
2021-07-07 14:49:54 -05:00
const {
Card,
Image
} = require('dialogflow-fulfillment');
2021-05-14 17:58:59 -05:00
2021-07-07 14:49:54 -05:00
async function Fun_DefauldAgent(agent, req, res) {
2021-05-14 17:58:59 -05:00
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
return agent.add(dialog.mensaje('defauld', funcion.conver_name(data_context.name)));
} else {
return Fun_WelcomeAgent(agent, req, res);
2021-05-14 17:58:59 -05:00
}
}
2021-07-07 14:49:54 -05:00
async function Fun_SolicitarDatosAgent(agent, req, res) {
try {
const sessionId = req.body.session.split("/").reverse()[0];
let data_context = await ValidateDataUserContext(agent);
2026-02-03 16:26:04 -05:00
console.log(data_context);
2021-07-07 14:49:54 -05:00
if (data_context) {
var megg = null;
if (data_context != null && data_context != "") {
let sesion = await funcion.RegistrarSession(sessionId, data_context.cedula);
if (sesion['ok'] == true && sesion['data']['name'] != null) {
agent.context.set({
name: 'data_user_context',
lifespan: 5,
parameters: {
cedula: sesion['data']['cedula'],
name: sesion['data']['name']
}
});
megg = dialog.mensaje('bienvenida_su', funcion.conver_name(sesion['data']['name'], 3));
} else {
agent.context.set({
name: 'data_user_context',
lifespan: 0
});
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
sesion['msg'] != null ? agent.add(sesion['msg']) : null;
return agent.add(dialog.mensaje('sol_cedula'));
}
2021-05-14 17:58:59 -05:00
}
2021-07-07 14:49:54 -05:00
return Fun_WelcomeAgent(agent, req, res, megg);
} else {
return Fun_WelcomeAgent(agent, req, res);
2021-05-14 17:58:59 -05:00
}
2021-07-07 14:49:54 -05:00
} catch (error) {
return ResolveDefauld(agent);
2021-05-14 17:58:59 -05:00
}
}
2021-07-07 14:49:54 -05:00
async function Fun_WelcomeAgent(agent, req, res, mensage = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
// agent.add(dialog.mensaje('bienvenida', data_context.name != null ? funcion.conver_name(data_context.name) : data_context.cedula));
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
var rem_mens = dialog.mensaje('menu_dirigido', funcion.conver_name(data_context.name));
2024-02-08 09:26:47 -05:00
if (mensage != null) {
2021-07-07 14:49:54 -05:00
rem_mens = mensage;
}
return agent.add(rem_mens);
} else {
const sessionId = req.body.session.split("/").reverse()[0];
let legion = await funcion.ValidarSession(sessionId);
if (legion['ok'] == true && legion['data']['name'] != null) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
agent.context.set({
name: 'data_user_context',
lifespan: 5,
parameters: {
cedula: legion['data']['cedula'],
name: legion['data']['name']
}
});
agent.add(dialog.mensaje('bienvenida', legion['data']['name'] != null ? funcion.conver_name(legion['data']['name']) : d_text.cedula));
return agent.add(dialog.mensaje('menu_1'));
} else {
agent.context.set({
name: 'sol_datos_usuario',
lifespan: 1
});
2024-02-08 09:26:47 -05:00
return agent.add(dialog.mensaje('bienvenida') + '\n' + dialog.mensaje('sol_cedula'));
2021-07-07 14:49:54 -05:00
}
2021-05-14 17:58:59 -05:00
}
2021-07-07 14:49:54 -05:00
} catch (error) {
return ResolveDefauld(agent);
2021-05-14 17:58:59 -05:00
}
}
2021-07-07 14:49:54 -05:00
function ValidateDataUserContext(agent) {
try {
return new Promise((resolve, reject) => {
try {
var Contx = null;
Contx = agent.context.get('data_user_context');
if (Contx == null || Contx == NaN || Contx == undefined) {
Contx = ExistParamtContext(agent, 'data_user_context');
}
if (Contx != null && Contx != NaN && Contx != undefined) {
if (Contx.parameters.cedula != null && Contx.parameters.cedula != "") {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 0
});
let _cedu = Contx.parameters.cedula;
let _nam = Contx.parameters.name;
agent.context.set({
name: 'data_user_context',
lifespan: 5,
parameters: {
cedula: _cedu,
name: _nam
}
});
resolve({
cedula: _cedu,
name: _nam
});
} else {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
resolve(false);
}
} else {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
2021-05-14 17:58:59 -05:00
resolve(false);
2021-07-07 14:49:54 -05:00
}
} catch (error) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
2021-05-14 17:58:59 -05:00
resolve(false);
}
2021-07-07 14:49:54 -05:00
});
} catch (error) {
return ResolveDefauld(agent);
}
2021-05-14 17:58:59 -05:00
}
2021-07-07 14:49:54 -05:00
function ExistParamtContext(agent, pamameter) {
2021-06-02 17:55:46 -05:00
var data = null;
agent.contexts.forEach(element => {
2021-07-07 14:49:54 -05:00
if (element.name == pamameter) {
data = element;
2021-06-02 17:55:46 -05:00
}
});
return data;
}
2021-07-07 14:49:54 -05:00
async function Fun_CerrarSesionAgent(agent, req, res, accion) {
try {
if (accion == 1) {
const sessionId = req.body.session.split("/").reverse()[0];
let legion = await funcion.CerrarSession(sessionId);
if (legion['ok'] == true) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
agent.context.set({
name: 'sol_datos_usuario',
lifespan: 1
});
agent.context.set({
name: 'data_user_context',
lifespan: 0,
parameters: {}
});
return agent.add(dialog.mensaje('despedida'));
} else {
return agent.add(legion['msg']);
}
2021-05-14 17:58:59 -05:00
}
2021-07-07 14:49:54 -05:00
if (accion == 0) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
agent.add(dialog.mensaje('afirmacion'));
return agent.add(dialog.mensaje('menu_1'));
}
} catch (error) {
return ResolveDefauld(agent);
2021-05-14 17:58:59 -05:00
}
}
2021-07-07 14:49:54 -05:00
async function Fun_ConfirmarCerrarSesionAgent(agent, req, res) {
2021-05-14 17:58:59 -05:00
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
agent.context.set({
name: '0-Bienvenida-Cerrarsesion-followup',
lifespan: 1
});
return agent.add('¿Esta de acuerdo en cerrar la sesión? \n1. SI \n2. NO\n\n -Ingrese el número de la opción que desee.');
} else {
2021-06-02 17:55:46 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
}
2021-07-07 14:49:54 -05:00
async function Func_InformacionTramites(agent, req, res, key_example) {
2021-06-11 18:12:45 -05:00
try {
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
if (key_example == 0) {
2021-06-11 18:12:45 -05:00
return Fun_ConsultarCCAtras(agent, req, res);
}
2021-07-07 14:49:54 -05:00
let legion = await funcion.OptInfoBot(key_example);
if (legion['ok'] == true) {
var msger = '*' + legion['data']['data_key'] + '*\n\n';
var example = legion['data']['data'];
if (example.length == 0) {
2021-06-11 18:12:45 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
example.forEach(element => {
msger = msger + element + '\n';
});
agent.add(msger);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
2021-07-07 14:49:54 -05:00
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
2021-06-11 18:12:45 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
2021-07-07 14:49:54 -05:00
} else {
2021-06-11 18:12:45 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
2021-07-07 14:49:54 -05:00
return ResolveDefauld(agent);
2021-06-11 18:12:45 -05:00
}
}
2021-07-07 14:49:54 -05:00
//Consultar todos mis trámites solicitados en Portal ciudadano
async function Func_MisTramites(agent, req, res, key_example = null) {
2021-06-11 18:12:45 -05:00
try {
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
if (key_example == 0) {
return Fun_ConsultarCCAtras(agent, req, res);
}
let legion = await funcion.GetMisTramites(data_context.cedula);
if (legion['ok'] == true) {
var msger = '*Listado de trámites solicitados*\n\n';
var example = legion['data'];
if (example.length == 0) {
agent.add('Lo siento, no encontré ningún trámite solicitado a su nombre.');
2021-06-11 18:12:45 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
2021-07-07 14:49:54 -05:00
example.forEach((element, index) => {
2024-02-08 09:26:47 -05:00
msger = msger + '*#' + (index + 1) + '* - ' + element['nombresolicitud'] +
'\nFecha de solicitúd: ' + element['fecha_solicitud'];
if (element['state_documento'] != null) {
msger = msger + '\nFecha de vencimiento: ' + element['fecha_vencimiento']
+ '\nEstado: ' + element['state_documento'];
} else {
msger = msger + '\nEstado: ' + element['estado'];
if (element['url2'] != null) {
msger = msger + '\nFecha de vencimiento: ' + element['fecha_vencimiento'] +
'\nVer documento: ' + element['url2'];
2021-07-07 14:49:54 -05:00
}
}
2024-02-08 09:26:47 -05:00
msger = msger + '\n\n'
2021-07-07 14:49:54 -05:00
});
2021-06-11 18:12:45 -05:00
agent.add(msger);
2021-07-07 14:49:54 -05:00
agent.context.set({
name: '0-Bienvenida-MisTramites-followup',
lifespan: 1
});
return agent.add(dialog.mensaje('mis_cer92'));
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
2021-06-11 18:12:45 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
2021-07-07 14:49:54 -05:00
}
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
2021-06-11 18:12:45 -05:00
2021-07-07 14:49:54 -05:00
//Mis tramites - Defauld
//Historial de mis traites
async function Func_HistorialTramite(agent, req, res, key_example = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
2024-02-08 09:26:47 -05:00
if (key_example == 2) {
2021-06-11 18:12:45 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
2024-02-08 09:26:47 -05:00
if (key_example == 1) {
2021-07-07 14:49:54 -05:00
agent.context.set({ name: '0-Bienvenida-MisTramites-followup', lifespan: 1 });
return agent.add(dialog.mensaje('mis_cer92'));
}
var Contx = agent.context.get('tramite_cer_historial');
if (Contx == null || Contx == NaN || Contx == undefined) {
Contx = ExistParamtContext(agent, 'tramite_cer_historial');
}
if (Contx != null && Contx != NaN && Contx != undefined) {
if (Contx.parameters.numero_tramite != null && Contx.parameters.numero_tramite != "") {
let legion = await funcion.GetHistorialTramites(data_context.cedula, Contx.parameters.numero_tramite);
2024-02-09 10:29:32 -05:00
console.log(legion);
2021-07-07 14:49:54 -05:00
if (legion['ok'] == true) {
var msger = '';
2024-02-08 09:26:47 -05:00
if (legion['tramite'] != undefined) {
msger = msger + '*HISTORIAL - ' + legion['tramite'] + '*';
var example = legion['data']; 4
2021-07-07 14:49:54 -05:00
if (example.length == 0) {
2024-02-08 09:26:47 -05:00
agent.add(msger + '\nLo siento, no encontré ningúna información del trámite solicitado.');
2021-07-07 14:49:54 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
example.forEach((element, index) => {
2024-02-08 09:26:47 -05:00
msger = msger + '\n\nFecha: ' + element['registro'] +
'\nEstado: ' + element['estado'];
if (element['observacion']) {
msger = msger + '\nObservación: ' + element['observacion'];
2021-07-07 14:49:54 -05:00
}
});
2024-02-08 09:26:47 -05:00
} else {
2021-07-07 14:49:54 -05:00
agent.add(legion['msg']);
return Func_HistorialTramite(agent, req, res, 1);
}
}
agent.add(msger);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}
agent.context.set({ name: '0-Bienvenida-MisTramites-followup', lifespan: 1 });
return agent.add(dialog.mensaje('mis_cer92'));
} else {
2021-06-11 18:12:45 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
2021-07-07 14:49:54 -05:00
return ResolveDefauld(agent);
2021-06-11 18:12:45 -05:00
}
}
2021-07-07 14:49:54 -05:00
async function Fun_QueHacesFunction(agent, req, res, vari = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
let legion = await funcion.ConsultaNoticias();
if (legion['ok'] == true) {
var szar = Math.floor(Math.random() * legion['data'].length);
2024-02-08 09:26:47 -05:00
var mesge = dialog.mensaje('haceres_1', '*' + legion['data'][szar]['titulo'] + '*\nQue tal si revisas un poco: 🧐🙃\n' + legion['data'][szar]['link_facebook']);
if (vari == 1) {
mesge = dialog.mensaje('haceres_2', funcion.conver_name(data_context.name), '*' + legion['data'][szar]['titulo'] + '*\nQue tal si revisas un poco:🧐🙃\n' + legion['data'][szar]['link_facebook']);
2021-07-07 14:49:54 -05:00
}
return agent.add(mesge);
2024-02-08 09:26:47 -05:00
} else {
2021-07-07 14:49:54 -05:00
return ResolveDefauld(agent);
}
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
async function Fun_pruebas(agent, req, res) {
2026-01-09 10:35:08 -05:00
return agent.add('Estamos en proceso de desarrollo');
2021-07-07 14:49:54 -05:00
try {
return Fun_QueHacesFunction(agent, req, req, 1);
} catch (error) {
return ResolveDefauld(agent);
}
}
async function Fun_ConsultarCCAtras(agent, req, res) {
2021-06-02 17:55:46 -05:00
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
2021-06-04 17:09:16 -05:00
return agent.add(dialog.mensaje('menu_1'));
2021-07-07 14:49:54 -05:00
} else {
2021-06-04 17:09:16 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
}
2021-07-07 14:49:54 -05:00
async function Fun_ConfirmarConsultarClavesCatastrales(agent, req, res) {
2021-06-04 17:09:16 -05:00
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
agent.context.set({
name: '0-Bienvenida-Consultar-Predios-followup',
lifespan: 1
});
2021-06-04 17:09:16 -05:00
return agent.add(dialog.mensaje('consulta_clave'));
2021-07-07 14:49:54 -05:00
} else {
2021-06-04 17:09:16 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
}
2026-01-19 15:52:08 -05:00
async function Fun_ConfirmarTasaRecoleccionBasura(agent, req, res) {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
agent.context.set({
name: '0-Bienvenida-TRB-seguimiento',
lifespan: 1
});
return agent.add(dialog.mensaje('trb_menu'));
} else {
return Fun_WelcomeAgent(agent, req, res);
}
}
2021-06-04 17:09:16 -05:00
2021-07-07 14:49:54 -05:00
async function Fun_ConsultaPredios(agent, req, res) {
2021-06-04 17:09:16 -05:00
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
agent.context.set({
name: 'nuevo_context',
lifespan: 1
});
2021-06-04 17:09:16 -05:00
return agent.add(dialog.mensaje('consulta_clave'));
2021-07-07 14:49:54 -05:00
} else {
2021-06-04 17:09:16 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
}
2024-02-08 09:26:47 -05:00
async function Fun_RetornarAlinicio(agent, req, res, name, text = "") {
2021-07-07 14:49:54 -05:00
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
agent.context.set({
name: 'inicial_context',
lifespan: 1
});
return agent.add(dialog.mensaje('retorno_inicio'));
2021-06-04 17:09:16 -05:00
}
2021-07-07 14:49:54 -05:00
async function Fun_ListarMenu(agent, req, res, inva = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
2024-02-08 09:26:47 -05:00
if (inva == 1) {
2021-07-07 14:49:54 -05:00
return agent.add(dialog.mensaje('despedida_alt', funcion.conver_name(data_context.name)));
}
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
return agent.add(dialog.mensaje('menu_1'));
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
2021-06-04 17:09:16 -05:00
}
2021-07-07 14:49:54 -05:00
async function Fun_ConsultarOtrasClavesCatastrales(agent, req, res, tipo) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
if (tipo == 1) {
return agent.add(dialog.mensaje('sol_data_cedula'));
} else if (tipo == 2) {
var Contx = agent.context.get('data_predios');
if (Contx == null || Contx == NaN || Contx == undefined) {
Contx = ExistParamtContext(agent, 'data_predios');
}
if (Contx != null && Contx != NaN && Contx != undefined) {
if (Contx.parameters.cedula_otro != null && Contx.parameters.cedula_otro != "") {
return Fun_ConsultarClavesCatastrales(agent, req, res, Contx.parameters.cedula_otro);
2024-02-08 09:26:47 -05:00
} else {
2021-07-07 14:49:54 -05:00
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
} else {
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
2024-02-08 09:26:47 -05:00
} else if (tipo == 3) {
2021-07-07 14:49:54 -05:00
return agent.add(dialog.mensaje('sol_data_clave_catastral'));
2024-02-08 09:26:47 -05:00
} else if (tipo == 4) {
2021-07-07 14:49:54 -05:00
var Contx = agent.context.get('data_clave');
if (Contx == null || Contx == NaN || Contx == undefined) {
Contx = ExistParamtContext(agent, 'data_clave');
}
if (Contx != null && Contx != NaN && Contx != undefined) {
if (Contx.parameters.clave_catast != null && Contx.parameters.clave_catast != "") {
return Fun_ConsultarClavesCatastrales(agent, req, res, Contx.parameters.clave_catast, 1);
2024-02-08 09:26:47 -05:00
} else {
2021-07-07 14:49:54 -05:00
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
} else {
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
2021-06-04 17:09:16 -05:00
}
2021-06-02 17:55:46 -05:00
}
2021-07-07 14:49:54 -05:00
} else {
return Fun_WelcomeAgent(agent, req, res);
2021-06-02 17:55:46 -05:00
}
2021-07-07 14:49:54 -05:00
} catch (error) {
return ResolveDefauld(agent);
2021-05-14 17:58:59 -05:00
}
2021-06-04 17:09:16 -05:00
}
2021-06-08 17:04:52 -05:00
2026-01-19 15:52:08 -05:00
async function Fun_ConsultarTRB(agent, req, res, tipo) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
if (tipo == 1) {
agent.context.set({
name: 'data_predios',
lifespan: 1
});
2026-02-01 13:47:28 -05:00
return agent.add(dialog.mensaje('sol_data_cedula_trb'));
2026-01-19 15:52:08 -05:00
} else if (tipo == 2) {
var Contx = agent.context.get('data_predios');
if (Contx == null || Contx == NaN || Contx == undefined) {
Contx = ExistParamtContext(agent, 'data_predios');
}
if (Contx != null && Contx != NaN && Contx != undefined) {
if (Contx.parameters.cedula_otro != null && Contx.parameters.cedula_otro != "") {
return Func_MiTasaRecoleccionBasura(agent, req, res, 2, Contx.parameters.cedula_otro);
} else {
return TasaRecoleccionBasura(agent, req, res);
}
} else {
return TasaRecoleccionBasura(agent, req, res);
}
} else if (tipo == 3) {
agent.context.set({
name: 'data_predios',
lifespan: 1
});
return agent.add(dialog.mensaje('sol_codido_trb'));
} else if (tipo == 4) {
var Contx = agent.context.get('data_predios');
if (Contx == null || Contx == NaN || Contx == undefined) {
Contx = ExistParamtContext(agent, 'data_predios');
}
if (Contx != null && Contx != NaN && Contx != undefined) {
if (Contx.parameters.codigo != null && Contx.parameters.codigo != "") {
2026-01-19 16:24:11 -05:00
return Func_MiTasaRecoleccionBasura(agent, req, res, 3, Contx.parameters.codigo);
2026-01-19 15:52:08 -05:00
} else {
return TasaRecoleccionBasura(agent, req, res);
}
} else {
return TasaRecoleccionBasura(agent, req, res);
}
}
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
2021-07-07 14:49:54 -05:00
async function Fun_ValidarDocumentos(agent, req, res, tipo) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
if (tipo == 1) {
return agent.add(dialog.mensaje('sol_data_codigo'));
} else if (tipo == 2) {
var Contx = agent.context.get('context_codigo_barras');
if (Contx == null || Contx == NaN || Contx == undefined) {
Contx = ExistParamtContext(agent, 'context_codigo_barras');
}
if (Contx != null && Contx != NaN && Contx != undefined) {
if (Contx.parameters.codigo_barras != null && Contx.parameters.codigo_barras != "") {
let legion = await funcion.ValidarComprobante(Contx.parameters.codigo_barras.toUpperCase());
if (legion['ok'] == true) {
var send = '';
legion['data']['msg'].forEach((element, index) => {
send = send + element + '\n';
});
if (send != '') {
agent.add(send);
}
if (legion['data']['url2'][0] != undefined) {
agent.add('Ver documento:\n' + legion['data']['url2'][0]);
}
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
} else {
agent.add(legion['msg']);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
2021-06-11 18:12:45 -05:00
}
2021-07-07 14:49:54 -05:00
}
} else {
return Fun_ListarMenu(agent, req, res);
2021-06-08 17:04:52 -05:00
}
}
2021-07-07 14:49:54 -05:00
} else {
return Fun_WelcomeAgent(agent, req, res);
2021-06-08 17:04:52 -05:00
}
2021-07-07 14:49:54 -05:00
} catch (error) {
return ResolveDefauld(agent);
2021-06-08 17:04:52 -05:00
}
}
2021-07-07 14:49:54 -05:00
function ResolveDefauld(agent) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
return agent.add('No logre resolver su petición 😢 \n' +
'¿Que tal si lo volvemos a intentar? \n' +
dialog.mensaje('menu_hueso'));
}
function Func_FallbackComprobantes(agent, req, res) {
agent.context.set({
name: '0-Bienvenida-Miscomprobantesdepago-followup',
lifespan: 1
});
return agent.add('Envíe el número de la opción que desee: \n\n1. Ver todos los comprobantes \n0. Volver al menu principal \n\n -Ingrese el número de la opción que desee.');
2021-06-11 18:12:45 -05:00
}
2021-07-07 14:49:54 -05:00
function Func_FallbackInfoTramites(agent, req, res) {
agent.context.set({
name: '0-Bienvenida-InfTram-followup',
lifespan: 1
});
2021-06-11 18:12:45 -05:00
return agent.add(dialog.mensaje('info_tramites'));
}
2026-01-19 15:52:08 -05:00
async function Func_MiTasaRecoleccionBasura(agent, req, res, lery = 1, data = null) {
2026-01-09 10:35:08 -05:00
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
2026-01-19 16:24:11 -05:00
if (lery == 4) {
2026-01-09 10:35:08 -05:00
return Fun_ConsultarCCAtras(agent, req, res);
}
if (data_context != null && data_context != "") {
2026-01-19 15:52:08 -05:00
let legion = [];
if (lery == 1) {
legion = await funcion.ConsultaTasaRecoleccion(data_context.cedula);
} else if (lery == 2) {
2026-01-19 16:24:11 -05:00
legion = await funcion.ConsultaTasaRecoleccion(data);
} else if (lery == 3) {
2026-01-19 15:52:08 -05:00
legion = await funcion.ConsultaTasaRecoleccion(data, 1);
}
2026-01-09 10:35:08 -05:00
if (legion['ok'] == true) {
2026-01-09 16:18:10 -05:00
let count = legion['data'].length;
2026-02-01 13:47:28 -05:00
var msger = '';
2026-01-09 16:18:10 -05:00
if (count > 0) {
legion['data'].forEach(elem_legio => {
let suma = 0;
2026-02-01 13:47:28 -05:00
msger = msger + '\n🏠 Contrato *' + elem_legio.numero_contrato + '* (' + funcion.conver_capitalice(elem_legio.direccion) + ') \n\n';
2026-01-29 16:40:07 -05:00
msger = msger + 'Valores emitidos - 2025 \n';
2026-01-29 16:30:28 -05:00
elem_legio.facturas_usadas_para_promedio.forEach(elem_omega => {
if (elem_omega.estado_proceso == 'GENERADA POR CNEL') {
msger = msger + '🚛 ' + elem_omega.mes + ' : *$' + elem_omega.monto_total + '*\n';
}
});
2026-01-29 16:37:50 -05:00
msger = msger + '\nPromedio a cancelar - 2026 \n';
2026-02-01 13:47:28 -05:00
2026-01-19 15:52:08 -05:00
elem_legio.facturas_usadas_para_promedio.forEach(elem_omega => {
if (elem_omega.estado_proceso != 'GENERADA POR CNEL') {
suma += Number(elem_omega.monto_total);
msger = msger + '🚛 ' + elem_omega.mes + ' : *$' + elem_omega.monto_total + '*\n';
}
2026-01-09 16:18:10 -05:00
});
2026-01-19 15:52:08 -05:00
msger = msger + '💵 Total a pagar: *$' + suma.toFixed(2) + '*\n';
2026-01-09 10:35:08 -05:00
});
2026-02-01 13:47:28 -05:00
// msger = msger + '\nPara ver mas detalles revise: https://portalciudadano.manta.gob.ec/consulta_trb';
msger = msger + '\nPuedes hacer tu pago en:\n - Ventanillas municipales\n - Portal Ciudadano https://portalciudadano.manta.gob.ec/c?mantapp\n - Mantapp\n - Punto de pago aliados';
2026-01-09 15:26:06 -05:00
} else {
2026-01-19 15:52:08 -05:00
msger = msger + "No se encontrarón valores pendientes de pago";
2026-01-09 10:35:08 -05:00
}
agent.add(msger);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
2026-01-19 15:52:08 -05:00
2026-02-01 13:47:28 -05:00
// async function Func_MiTasaRecoleccionBasura(agent, req, res, lery = 1, data = null) {
// try {
// let data_context = await ValidateDataUserContext(agent);
// if (data_context) {
// if (lery == 4) {
// return Fun_ConsultarCCAtras(agent, req, res);
// }
// if (data_context != null && data_context != "") {
// let legion = [];
// if (lery == 1) {
// legion = await funcion.ConsultaTasaRecoleccion(data_context.cedula);
// } else if (lery == 2) {
// legion = await funcion.ConsultaTasaRecoleccion(data);
// } else if (lery == 3) {
// legion = await funcion.ConsultaTasaRecoleccion(data, 1);
// }
// if (legion['ok'] == true) {
// let count = legion['data'].length;
// var msger = '';
// if (count > 0) {
// legion['data'].forEach(elem_legio => {
// let suma = 0;
// msger = msger + '\n' + elem_legio.nombre;
// msger = msger + '\nC.I. ' + elem_legio.cedula;
// let len = elem_legio.facturas_usadas_para_promedio.length;
// let item_select = elem_legio.facturas_usadas_para_promedio[len - 1];
// console.log(item_select.monto_total);
// msger = msger + '\n💵 Valor mensual a pagar: *$' + item_select.monto_total + '*\n';
// // elem_legio.facturas_usadas_para_promedio.forEach(elem_omega => {
// // if (elem_omega.estado_proceso == 'GENERADA POR CNEL') {
// // msger = msger + '🚛 ' + elem_omega.mes + ' : *$' + elem_omega.monto_total + '*\n';
// // }
// // });
// // msger = msger + '\nPromedio a cancelar - 2026 \n';
// // elem_legio.facturas_usadas_para_promedio.forEach(elem_omega => {
// // if (elem_omega.estado_proceso != 'GENERADA POR CNEL') {
// // suma += Number(elem_omega.monto_total);
// // msger = msger + '🚛 ' + elem_omega.mes + ' : *$' + elem_omega.monto_total + '*\n';
// // }
// // });
// // msger = msger + '💵 Total a pagar: *$' + suma.toFixed(2) + '*\n';
// });
// msger = msger + '\nPuedes hacer tu pago en:\n -Ventanillas municipales\n -Portal Ciudadano https://portalciudadano.manta.gob.ec/c?mantapp\n -Mantapp\n -Punto de pago aliados';
// } else {
// msger = msger + "No se encontrarón valores pendientes de pago";
// }
// agent.add(msger);
// return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
// } else {
// agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
// return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
// }
// }
// } else {
// return Fun_WelcomeAgent(agent, req, res);
// }
// } catch (error) {
// return ResolveDefauld(agent);
// }
// }
2026-01-19 15:52:08 -05:00
// async function Func_MiTasaRecoleccionBasura(agent, req, res, lery) {
// try {
// let data_context = await ValidateDataUserContext(agent);
// if (data_context) {
// if (lery == 3) {
// return Fun_ConsultarCCAtras(agent, req, res);
// }
// if (data_context != null && data_context != "") {
// let legion = await funcion.ConsultaTasaRecoleccion(data_context.cedula, lery);
// console.log(legion);
// if (legion['ok'] == true) {
// let count = legion['data'].length;
// var msger = '';
// if (count > 0) {
// legion['data'].forEach(elem_legio => {
// let suma = 0;
// console.log(elem_legio);
// msger = msger + '\n*Tasa de recolección de basura CC: ' + elem_legio.cc + '* (' + elem_legio.direccion + ') \n';
// let meses_arr = ['Enero 2026', 'Feberero 2026', 'Marzo 2026'];
// meses_arr.forEach(element => {
// suma += Number(elem_legio.promedio);
// msger = msger + '🚛 ' + element + ' : *$' + elem_legio.promedio + '*\n';
// });
// msger = msger + '💵 *Total a pagar: $' + suma.toFixed(2) + '*\n';
// });
// } else {
// }
// // console.log(count);
// // if (legion['data'].documento != undefined) {
// // meses_arr.forEach(element => {
// // suma += Number(legion['data'].promedio);
// // msger = msger + '🚛 ' + element + ' : *$' + legion['data'].promedio + '*\n';
// // });
// // msger = msger + '\n💵 *Total a pagar: $' + suma.toFixed(2) + '*';
// // } else {
// // msger = msger + "No se encontrarón valores pendientes de pago";
// // }
// agent.add(msger);
// return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
// } else {
// agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
// return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
// }
// }
// } else {
// return Fun_WelcomeAgent(agent, req, res);
// }
// } catch (error) {
// return ResolveDefauld(agent);
// }
// }
2021-07-07 14:49:54 -05:00
async function Func_MisComprobantesPago(agent, req, res, lery) {
2021-06-11 18:12:45 -05:00
try {
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
if (lery == 3) {
2021-06-11 18:12:45 -05:00
return Fun_ConsultarCCAtras(agent, req, res);
}
2021-07-07 14:49:54 -05:00
if (data_context != null && data_context != "") {
let legion = await funcion.ConsultaComprobantes(data_context.cedula, lery);
if (legion['ok'] == true) {
2021-06-11 18:12:45 -05:00
var msger = '';
let coun = legion['data'].length;
2021-07-07 14:49:54 -05:00
if (lery == 1 && coun > 1) {
msger = coun == 1 ? '*ÚLTIMOS COMPROBANTES DE PAGO:*\n\n' : '*ÚLTIMOS ' + coun + ' COMPROBANTES DE PAGO:*\n\n';
} else {
2021-06-11 18:12:45 -05:00
msger = '*TODOS LOS COMPROBANTES DE PAGO:*\n\n';
}
legion['data'].forEach((element, index) => {
msger = msger + '' + element['rubro'] + '\nFecha: ' + element['fecha'] + '\nValor págado: *' + element['valor_pagado'] + '*\nVer documento: ' + element['url'] + '\n\n';
});
agent.add(msger);
2021-07-07 14:49:54 -05:00
if (lery == 1) {
2021-06-11 18:12:45 -05:00
return Func_FallbackComprobantes(agent, req, res);
2021-07-07 14:49:54 -05:00
} else {
2021-06-11 18:12:45 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
2021-07-07 14:49:54 -05:00
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
2021-06-11 18:12:45 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}
2021-07-07 14:49:54 -05:00
} else {
2021-06-11 18:12:45 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
2021-07-07 14:49:54 -05:00
return ResolveDefauld(agent);
2021-06-11 18:12:45 -05:00
}
}
2021-06-08 17:04:52 -05:00
2021-07-07 14:49:54 -05:00
async function Fun_ConsultarClavesCatastrales(agent, req, res, _cedula = null, nuevo = null) {
2021-06-04 17:09:16 -05:00
try {
let data_context = await ValidateDataUserContext(agent);
2021-07-07 14:49:54 -05:00
if (data_context) {
if (data_context != null && data_context != "") {
if (_cedula == null) {
2021-06-04 17:09:16 -05:00
_cedula = data_context.cedula;
}
const regex = /^[0-9]*$/;
2026-01-09 15:26:06 -05:00
let printzeus = '';
2024-02-09 15:31:51 -05:00
// _cedula = _cedula.replace(/-/g, "");
2024-02-08 09:26:47 -05:00
if (regex.test(_cedula)) {
2026-01-09 15:26:06 -05:00
// let basure = await funcion.ConsultaTasaRecoleccion(_cedula, 1);
// if (basure['ok'] == true) {
// if (basure['data'].documento != undefined) {
// let suma = 0;
// let meses_arr = ['Enero 2026', 'Feberero 2026', 'Marzo 2026'];
// meses_arr.forEach(element => {
// suma += Number(basure['data'].promedio);
// });
// printzeus = printzeus + '\n💵 *Tasa de recoleccion de basura: $' + suma.toFixed(2) + '*';
// agent.add(printzeus);
// }
// }
2021-07-07 14:49:54 -05:00
let legion = await funcion.ConsultaClaves(_cedula, nuevo);
2026-02-01 13:47:28 -05:00
console.log(legion)
2021-07-07 14:49:54 -05:00
if (legion['ok'] == true) {
2024-02-09 09:24:15 -05:00
legion['data']['data'].forEach((elem_ares, index) => {
2026-01-19 16:00:11 -05:00
printzeus += '\n' + elem_ares.name + (elem_ares.value != null ? ': $' + elem_ares.value : '');
2024-02-29 11:58:31 -05:00
});
$t_int = 0;
$t_pag = 0;
$d_tt = 0;
2024-02-09 09:21:25 -05:00
agent.add(printzeus);
2024-02-08 09:26:47 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
2021-07-07 14:49:54 -05:00
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
2021-06-04 17:09:16 -05:00
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
2021-07-07 14:49:54 -05:00
} else {
2024-02-08 09:26:47 -05:00
if (nuevo == 1) {
2021-07-07 14:49:54 -05:00
agent.add('La clave catastral ingresada no es válida');
2024-02-08 09:26:47 -05:00
} else {
2021-07-07 14:49:54 -05:00
agent.add('El número de cédula ingresado no es válido');
}
2021-06-04 17:09:16 -05:00
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
}
2021-07-07 14:49:54 -05:00
} else {
2021-06-04 17:09:16 -05:00
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
2026-02-01 13:47:28 -05:00
console.log(error)
2021-07-07 14:49:54 -05:00
return ResolveDefauld(agent);
2021-06-04 17:09:16 -05:00
}
2021-05-14 17:58:59 -05:00
}
module.exports = {
"Fun_DefauldAgent": Fun_DefauldAgent,
"Fun_SolicitarDatosAgent": Fun_SolicitarDatosAgent,
"Fun_WelcomeAgent": Fun_WelcomeAgent,
"Fun_CerrarSesionAgent": Fun_CerrarSesionAgent,
2021-06-02 17:55:46 -05:00
"Fun_ConfirmarCerrarSesionAgent": Fun_ConfirmarCerrarSesionAgent,
2021-06-04 17:09:16 -05:00
"Fun_ConfirmarConsultarClavesCatastrales": Fun_ConfirmarConsultarClavesCatastrales,
2026-01-19 15:52:08 -05:00
"Fun_ConfirmarTasaRecoleccionBasura": Fun_ConfirmarTasaRecoleccionBasura,
"Fun_ConsultarTRB": Fun_ConsultarTRB,
2021-06-04 17:09:16 -05:00
"Fun_ConsultarOtrasClavesCatastrales": Fun_ConsultarOtrasClavesCatastrales,
"Fun_ConsultaPredios": Fun_ConsultaPredios,
"Fun_ConsultarCCAtras": Fun_ConsultarCCAtras,
"Fun_ListarMenu": Fun_ListarMenu,
2021-06-11 18:12:45 -05:00
"Fun_pruebas": Fun_pruebas,
"Func_InformacionTramites": Func_InformacionTramites,
2021-06-08 17:04:52 -05:00
"Fun_ValidarDocumentos": Fun_ValidarDocumentos,
2021-06-11 18:12:45 -05:00
"Func_MisComprobantesPago": Func_MisComprobantesPago,
2026-01-09 10:35:08 -05:00
"Func_MiTasaRecoleccionBasura": Func_MiTasaRecoleccionBasura,
2021-06-11 18:12:45 -05:00
"Func_FallbackComprobantes": Func_FallbackComprobantes,
"Func_FallbackInfoTramites": Func_FallbackInfoTramites,
2021-07-07 14:49:54 -05:00
"Fun_QueHacesFunction": Fun_QueHacesFunction,
"Fun_ConsultarClavesCatastrales": Fun_ConsultarClavesCatastrales,
"Func_HistorialTramite": Func_HistorialTramite,
"Func_MisTramites": Func_MisTramites
2021-05-14 17:58:59 -05:00
}