This commit is contained in:
Victor Sanchez Sosa 2021-07-07 14:49:54 -05:00
parent 64b122df05
commit 9bbe3e5d2f
4 changed files with 850 additions and 358 deletions

View File

@ -1,5 +1,6 @@
const { error } = require('actions-on-google/dist/common');
const axios= require('axios');
const URLIC = 'https://sistemasic.manta.gob.ec/';
const URLPC = 'http://mantaentusmanos.test/';
// const URLPC = 'https://portalciudadano.manta.gob.ec/';
const { WebhookClient } = require("dialogflow-fulfillment");
@ -12,12 +13,21 @@ function conver_utf8(data) {
return Buffer.from(data, 'base64').toString('ascii');
}
function conver_name(data) {
function conver_name(data, recep = null) {
try {
var porciones = data.split(' ');
if(porciones.length >= 2 && porciones.length <= 4){
var cadena = new String(data);
cadena = porciones[(porciones.length -2)]+ ' ' +porciones[(porciones.length -1)];
var accion = Math.floor(Math.random() * (1 - 4)) + 4;
console.log('publico'+recep);
if(recep != null){ accion = recep; }
if(accion == 1){
cadena = porciones[(porciones.length -2)];
}else if(accion == 2){
cadena = porciones[(porciones.length -1)];
}else{
cadena = porciones[(porciones.length -2)]+ ' ' +porciones[(porciones.length -1)];
}
cadena = cadena.toLowerCase();
return cadena.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));
}else{
@ -43,16 +53,24 @@ function AxiosPOST(url, params){
resolve(response.data);
}).catch(function (error) {
resolve({'estado':false, 'data':[], 'msg':error});
}).then(function () {
resolve({'estado':false, 'data':[], 'msg':'Lo siento, no logre terminar de procesar la solicitúd'});
});
});
}
function AxiosGET(url, params){
console.log(URLPC+url);
function AxiosGET(url, params, nweurl = null){
if(nweurl == 'sistemasic'){
url = URLIC + url;
}else{
url = URLPC + url;
}
return new Promise((resolve, reject) => {
axios.get(URLPC+url, params).then(function (response) {
axios.get(url, params).then(function (response) {
resolve(response.data);
}).catch(function (error) {
resolve({'estado':false, 'data':[], 'msg':error});
}).then(function () {
resolve({'estado':false, 'data':[], 'msg':'Lo siento, no logre terminar de procesar la solicitúd'});
});
});
}
@ -130,13 +148,23 @@ async function ValidarComprobante(codigo){
}
async function ConsultaClaves(cedula){
async function ConsultaClaves(cedula, chang = null){
return new Promise((resolve, reject) => {
var array = {'ok': false, 'data':[], 'msg':null};
AxiosGET('consulta_predios_detalle/2/'+cedula+'?boot=true', {}).then(function (result) {
var _ur = 'consulta_predios_detalle/2/'+cedula+'?boot=true';
if(chang != null){
var _ur = 'consulta_predios_detalle/1/'+cedula+'?boot=true&cc=1';
}
console.log(_ur);
AxiosGET(_ur, {}).then(function (result) {
if(result['ok'] && result['data_bot']['data'].length > 0){
array['ok'] = true; array['data'] = result['data_bot']['data']; array['msg'] = 'Consulta exitosa';
}else{ array['msg'] = 'usted no posee predios catastrales registrados en el GAD MANTA'; }
}else{
array['msg'] = 'el número de cédula '+cedula+' no posee predios catastrales registrados en el GAD MANTA';
if(chang != null){
array['msg'] = 'la clave catastral '+cedula+' no existe en los registros del GAD MANTA';
}
}
resolve(array);
}).catch(function (error) {
array['msg'] = error;
@ -162,6 +190,23 @@ async function ConsultaComprobantes(cedula, index){
}
async function ConsultaNoticias(){
return new Promise((resolve, reject) => {
var array = {'ok': false, 'data':[], 'msg':null};
AxiosGET('consultarPublicaciones?boot=c', {}, 'sistemasic').then(function (result) {
console.log(result)
if(result['data'].length > 0){
array['ok'] = true; array['data'] = result['data']; array['msg'] = 'Consulta exitosa';
}else{ array['msg'] = 'No se encontró resultados'; }
resolve(array);
}).catch(function (error) {
array['msg'] = error;
resolve(array);
});
});
}
async function OptInfoBot(key_inf){
return new Promise((resolve, reject) => {
var heders = {'info_key': key_inf};
@ -178,6 +223,46 @@ async function OptInfoBot(key_inf){
});
}
//Consulta mis tramites solicitados
async function GetMisTramites(key_cedula){
return new Promise((resolve, reject) => {
var heders = {};
var array = {'ok': false, 'data':[], 'msg':null};
AxiosGET('tramites/web_api_consulta_tramite?tipo=1&code=true&valor='+key_cedula, heders).then(function (result) {
if(result['estado']){
array['ok'] = true; array['data'] = result['data']; array['msg'] = result['msg'];
}else{ array['msg'] = result['msg'] }
resolve(array);
}).catch(function (error) {
array['msg'] = error;
resolve(array);
}).finally(function (find) {
array['msg'] = 'Lo siento, no logre procesar su solicitúd';
resolve(array);
});
});
}
//Consulta historial de tramites solicitados
async function GetHistorialTramites(key_cedula, index){
return new Promise((resolve, reject) => {
var heders = {};
var array = {'ok': false, 'data':[], 'tramite':null, 'msg':null};
AxiosGET('tramites/resolver_index_tramite?tipo=1&code=true&index='+index+'&valor='+key_cedula, heders).then(function (result) {
if(result['estado']){
array['ok'] = true; array['data'] = result['data']; array['msg'] = result['msg']; array['tramite'] = result['tramite'];
}else{ array['msg'] = result['msg'] }
resolve(array);
}).catch(function (error) {
array['msg'] = error;
resolve(array);
}).finally(function (find) {
array['msg'] = 'Lo siento, no logre procesar su solicitúd';
resolve(array);
});
});
}
@ -198,5 +283,8 @@ module.exports = {
"ValidarComprobante": ValidarComprobante,
"ConsultaComprobantes": ConsultaComprobantes,
"OptInfoBot": OptInfoBot,
"ConsultaNoticias": ConsultaNoticias,
"GetMisTramites": GetMisTramites,
"GetHistorialTramites": GetHistorialTramites,
"ConsultaClaves": ConsultaClaves
}

100
index.js
View File

@ -11,12 +11,13 @@ app.get("/", function (req, res) {
app.post("/webhook", express.json(), function (req, res) {
const agent = new WebhookClient({ request: req, response: res });
// // console.log("Dialogflow Request headers: " + JSON.stringify(req));
// console.log("Dialogflow Request headers: " + JSON.stringify(req));
// console.log("Dialogflow Request headers: " + JSON.stringify(req.headers));
// console.log("Dialogflow Request body: " + JSON.stringify(req.body));
// // console.log("Dialogflow Request body: " + JSON.stringify(agent));
// console.log("Dialogflow Request body: " + JSON.stringify(agent));
//Inicio
/***** Contexto de inicio *****/
function DefauldAgent(){
return metodos.Fun_DefauldAgent(agent, req, res);
}
@ -29,10 +30,17 @@ app.post("/webhook", express.json(), function (req, res) {
function ListarMenu(){
return metodos.Fun_ListarMenu(agent, req, res);
}
//Cerrar session
function FuncGracias(){
return metodos.Fun_ListarMenu(agent, req, res, 1);
}
function QueHacesFunction(){
return metodos.Fun_QueHacesFunction(agent, req, res);
}
function ComoEstasFunction(){
return metodos.Fun_QueHacesFunction(agent, req, res,1);
}
/***** Cerrar session *****/
function SiCerrarSesionAgent(){
return metodos.Fun_CerrarSesionAgent(agent, req, res, 1);
}
@ -43,9 +51,7 @@ app.post("/webhook", express.json(), function (req, res) {
return metodos.Fun_ConfirmarCerrarSesionAgent(agent, req, res);
}
//Consultar Claves Catastrales
/***** Consultar Claves Catastrales *****/
function ConfirmarConsultarClavesCatastrales(){
return metodos.Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
@ -55,6 +61,12 @@ app.post("/webhook", express.json(), function (req, res) {
function ConsultarOtrasClavesCatastrales(){
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 1);
}
function ConsultarPorClavesCatastrales(){
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 3);
}
function ConsultarPorClavesCatastrales2(){
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 4);
}
function ConsultarOtrasClavesCatastrales2(){
return metodos.Fun_ConsultarOtrasClavesCatastrales(agent, req, res, 2);
}
@ -62,15 +74,12 @@ app.post("/webhook", express.json(), function (req, res) {
return metodos.Fun_ConsultarCCAtras(agent, req, res);
}
//Prueba
/***** Prueba *****/
function prueba(){
return metodos.Fun_pruebas(agent, req, res);
}
//Validar documentos
/***** Validar documentos *****/
function ValidarDocumentos(){
return metodos.Fun_ValidarDocumentos(agent, req, res, 1);
}
@ -78,8 +87,7 @@ app.post("/webhook", express.json(), function (req, res) {
return metodos.Fun_ValidarDocumentos(agent, req, res, 2);
}
//Mis comprobantes
/***** Mis comprobantes *****/
function MisComprobantesPago(){
return metodos.Func_MisComprobantesPago(agent, req, res, 1);
}
@ -94,62 +102,90 @@ app.post("/webhook", express.json(), function (req, res) {
}
//Info Tramites
let tramer = ['solvencia_key'];
//*******Mis tramites *******/
function MistramitesFallback(){
return metodos.Func_HistorialTramite(agent, req, res, 1);
}
function MistramitesPrevious(){
return metodos.Func_HistorialTramite(agent, req, res, 2);
}
function Mistramites(){
return metodos.Func_MisTramites(agent, req, res);
}
function HistorialTramite(){
return metodos.Func_HistorialTramite(agent, req, res);
}
/***** Info Tramites *****/
let tramer = ['Certificado_de_solvencia', 'Certificado_de_no_posees_bienes'];
function FallbackInfoTramites(){
return metodos.Func_FallbackInfoTramites(agent, req, res);
}
function AtrasInfoTramites(){
return metodos.Func_InformacionTramites(agent, req, res, 0);
}
function InformacionTramitesSolv(){
return metodos.Func_InformacionTramites(agent, req, res, tramer[0]);
}
function AtrasInfoTramites(){
return metodos.Func_InformacionTramites(agent, req, res, 0);
function InformacionTramitesNoBienes(){
return metodos.Func_InformacionTramites(agent, req, res, tramer[1]);
}
let intentMap = new Map();
//Menu 1 - principal
/***** Menu 1 - principal *****/
intentMap.set('0 - Solicitar datos', SolicitarDatosAgent);
intentMap.set('0 - Bienvenida', WelcomeAgent);
intentMap.set('Default Fallback Intent', DefauldAgent);
intentMap.set('0 - SI', ListarMenu);
intentMap.set('0 - No', FuncGracias);
intentMap.set('Contexto 1 - Que hacer', ListarMenu);
intentMap.set('Contexto 1 - Que haces', QueHacesFunction);
intentMap.set('Contexto 1 - Como estas', ComoEstasFunction);
//Menu 1 - Claves catastrales
// intentMap.set('M1-Consulta-Predios', ConsultaPredios);
/***** Menu 1 - Claves catastrales *****/
intentMap.set('0 - Bienvenida - Consultar-Predios', ConfirmarConsultarClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Mis predios', ConsultarClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Por catastral', ConsultarPorClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Por catastral - Clavecatstral', ConsultarPorClavesCatastrales2);
intentMap.set('0 - Bienvenida - Consultar-Predios - Otros Predios', ConsultarOtrasClavesCatastrales);
intentMap.set('0 - Bienvenida - Consultar-Predios - Otros Predios - Cedula', ConsultarOtrasClavesCatastrales2);
intentMap.set('0 - Bienvenida - Consultar-Predios - Atras', ConsultarCCAtras);
intentMap.set('0 - Bienvenida - Consultar-Predios - fallback', ConfirmarConsultarClavesCatastrales);
//Menu 1 - Cerrar sesion
// intentMap.set('M0 - Cerrar sesion', ConfirmarCerrarSesionAgent);
/***** Menu 1 - Cerrar sesion *****/
intentMap.set('0 - Bienvenida - Cerrar sesion', ConfirmarCerrarSesionAgent);
intentMap.set('0 - Bienvenida - Cerrar sesion - SI', SiCerrarSesionAgent);
intentMap.set('0 - Bienvenida - Cerrar sesion - NO', NoCerrarSesionAgent);
intentMap.set('0 - Bienvenida - Cerrar sesion - fallback', ConfirmarCerrarSesionAgent);
//Menu 1 - Validar Documentosany
/***** Menu 1 - Validar Documentos *****/
intentMap.set('0 - Bienvenida - Validar Documentos', ValidarDocumentos);
intentMap.set('0 - Bienvenida - Validar Documentos - codigo', ValidarCodigobarras);
// Menu 1 - Mis comprobantes
/***** Menu 1 - Mis comprobantes *****/
intentMap.set('0 - Bienvenida - Mis comprobantes de pago', MisComprobantesPago);
intentMap.set('0 - Bienvenida - Ver todos los comprobantes', TodosMisComprobantesPago);
intentMap.set('0 - Bienvenida - Mis comprobantes de pago - Menu Principal', InicioMisComprobantesPago);
intentMap.set('0 - Bienvenida - Mis comprobantes de pago - fallback', FallbackComprobantes);
//Menu 1 - Informacion de tramites
//******** Menu 1 - Mis tramites **************/
intentMap.set('0 - Bienvenida - Mis Tramites', Mistramites);
intentMap.set('0 - Bienvenida - Mis Tramites - Historial', HistorialTramite);
intentMap.set('0 - Bienvenida - Mis Tramites - fallback', MistramitesFallback);
intentMap.set('0 - Bienvenida - Mis Tramites - previous', MistramitesPrevious);
/***** Menu 1 - Informacion de tramites *****/
intentMap.set('0 - Bienvenida - Inf Tram - fallback', FallbackInfoTramites);
intentMap.set('0 - Bienvenida - Inf Tram - Menu Principal', AtrasInfoTramites);
intentMap.set('0 - Bienvenida - Inf Tram', FallbackInfoTramites);
intentMap.set('0 - Bienvenida - Inf Tram - Solvencia', InformacionTramitesSolv);
intentMap.set('0 - Bienvenida - Inf Tram - NoBienes', InformacionTramitesNoBienes);
/************ PRUEBAS ************/
intentMap.set('prueba', prueba);
agent.handleRequest(intentMap);

View File

@ -1,32 +1,45 @@
function mensaje(name, username = null) {
function mensaje(name, username = null, massager = null) {
var jsom_interaciones = ['Es un placer poder ayudarle.....'];
var menu_context = "\n1. Consultar predios"+
"\n2. Validar documentos digitales"+
"\n3. Mis comprobantes de pago"+
"\n4. Mis trámites"+
"\n5. Información sobre trámites"+
"\n0. Cerrar sesión"+
"\n\n -Ingrese el número de la opción que desee.";
switch (name) {
case 'sol_cedula':
jsom_interaciones = [
'Antes de continuar es necesario que nos ayúde con su número de cédula o RUC 🙏',
'Ayude con su número de cédula o RUC para poder continuar 🙏',
'Estoy para ayudarle pero primero necesito su número de cédula o RUC 🙏'
'Para brindarle un mejor servicio es necesario que ingrese su número de cédula o RUC 🤓',
'Antes de continuar es necesario que ingrese su número de cédula o RUC 🤓',
'Ayude con su número de cédula o RUC para poder continuar 🤓',
'Necesito su número de cédula o RUC para brindarle un mejor servicio 🤓'
];
break;
case 'sol_data_cedula':
jsom_interaciones = [
'Por favor ingrese el número de cédula del propietario(a)',
'Ayudeme con el número el número de cédula del propietario(a)'
'Ayúdeme con el número de cédula del propietario(a)'
];
break;
case 'sol_data_clave_catastral':
jsom_interaciones = [
'Por favor ingrese con el número de la clave catastral',
'Ayúdeme con la clave catastral del propietario(a).'
];
break;
case 'sol_data_codigo':
jsom_interaciones = [
'Por favor ingrese el código de barras del documento',
'Ayudeme con el número el código de barras del documento'
'Ayúdeme con el número el código de barras del documento'
];
break;
case 'retorno_inicio':
jsom_interaciones = [
'¿Hay algo mas en lo que le pueda ayudar?',
'¿Que mas puedo hacer por usted?',
'¿Puedo ayudarle en algo mas?'
'¿Hay algo mas en lo que le pueda ayudar?\n'+menu_context,
'¿Que mas puedo hacer por usted?\n'+menu_context,
'¿Puedo ayudarle en algo mas?\n'+menu_context
];
break;
case 'recuerde':
@ -40,52 +53,55 @@ function mensaje(name, username = null) {
case 'bienvenida':
if(username){
jsom_interaciones = [
'Hola, '+username+' 👋',
'Hola, '+username+' soy MantaBot su asistente virtual 👋🥰',
'Hola '+username,
'Hola '+username+', soy MantaBot su asistente virtual 👋🥰',
'Qué tal '+username+' 🙂',
'Hola '+username+' soy MantaBot 😎',
mostrarSaludo()+' '+username+' 🙂',
'Hola '+username+', soy MantaBot 😎',
mostrarSaludo()+ ' soy MantaBot 😎',
'¿Qué tal? '+username+' 😎'
];
}else{
jsom_interaciones = [
'Soy MantaBot su asistente virtual 🤖',
'Hola, soy MantaBot su asistente virtual 🤖',
'Qué tal, soy MantaBot su asistente virtual 🤖',
mostrarSaludo()+', soy MantaBot su asistente virtual 🤖',
'Hola soy MantaBot, su asistente virtual 🤖',
'¿Qué tal? soy MantaBot su asistente virtual 🤖'
];
}
break;
case 'menu_1':
// var menu = "\n1. Consultar predios \n2. Validar documentos digitales \n0. Cerrar sessión";
var menu = "\n1. Consultar predios \n2. Validar documentos digitales \n3. Mis comprobantes de pago\n"+
"4. Información sobre trámites\n0. Cerrar sessión\n";
jsom_interaciones = [
'Recuerde que puedo ayudarle en cosas como:\n' + menu,
'Puedo ayudarle ahora con:\n' + menu,
'Podemos continuar con:\n' + menu,
'Puedo ofrecerle:\n' + menu
'Hola, le invito a conocer nuestro *menú de opciones:*' + menu_context
];
break;
case 'consulta_clave':
var menu = "\n1. Consultar mis predios \n2. Consultar otros predios \n0. Atras";
case 'menu_dirigido':
jsom_interaciones = [
'¿Que acción desea realizar?:\n' + menu,
'Hola '+username+', que tal si revisamos el *menú de opciones:*' + menu_context
];
break;
case 'menu_hueso':
jsom_interaciones = [menu_context];
break;
case 'consulta_clave':
var menu = "\n1. Consultar mis predios \n2. Consultar por número de cédula \n3. Consultar por clave catastral \n0. Atras";
jsom_interaciones = [
'¿Que acción desea realizar?\n' + menu + "\n\n -Ingrese el número de la opción que desee.",
];
break;
case 'info_tramites':
var menu = "1. Certificado de solvencia \n0. Ir al menu anterior";
var menu = "1. Certificado de solvencia \n2. Certificado de no poseer bienes \n0. Ir al menú anterior";
jsom_interaciones = [
'Envíe el número de la opción que desee:\n\n' + menu,
'Envíe el número de la opción que desee:\n\n' + menu +"\n\n -Ingrese el número de la opción que desee.",
];
break;
case 'defauld':
var username = username != null ? username : '';
jsom_interaciones = [
'Disculpa '+username+' no logré entenderte 😔 Aún estoy aprendiendo. 🤓 ',
'Lo siento '+username+' 💔 no comprendí su pregunta. Aún estoy aprendiendo. 🤓',
'Mil disculpas '+username+', 😓 no logre entender su pregunta. Aún estoy aprendiendo. 🤓',
'Aprendo cada día, pero no logre entender su pregunta '+username+' 🤓'
'Disculpa '+username+' no logré entender su pregunta😔 \nAún estoy aprendiendo🎓📚🤓\n\nQue tal si revisamos el *menú de opciones:*' + menu_context,
'Lo siento '+username+' 💔 no comprendí su pregunta \nAún estoy aprendiendo🎓📚🤓\n\nQue tal si revisamos el *menú de opciones:*' + menu_context,
'Mil disculpas '+username+' 😓 no logre deducir su pregunta \nAún estoy aprendiendo 🎓📚🤓\n\nLe mostrare el *menú de opciones:*' + menu_context,
username+' aprendo cada día mas 🎓📚🤓 pero no logre entender su pregunta 😓\n\nLe mostrare el *menú de opciones:*' + menu_context,
];
break;
case 'afirmacion':
@ -96,10 +112,84 @@ function mensaje(name, username = null) {
'Perfecto...👌',
];
break;
case 'bienvenida_su':
jsom_interaciones = [
mostrarSaludo()+' '+username+
', bienvenido(a) a los servicios de asistencia virtual del GAD MANTA 🏣\n'+
'Soy *MANTABOT*🤖 y seré su asitente virtual.\n\n'+
'Antes de empezar le invito a descargar nuestra aplicación movil oficial *MANTAPP* dando clic en:\nhttps://portalciudadano.manta.gob.ec/c?mantapp'+
'\n\nA continuación, le presento nuestro *menú de opciones:*'+menu_context
];
break;
case 'despedida':
jsom_interaciones = [
'Esta bíen que tenga '+mostrarSaludo(1)+', espero vuelva pronto...👋\n'+
'Si desea volver a iniciar sesión por favor ingrese su número'+
' de cédula o RUC 🤓'
];
break;
case 'despedida_alt':
jsom_interaciones = [
'Esta bíen '+username+', fue un placer ayudarle. 😬👏\nQue tenga '+mostrarSaludo(1)+'. 😇',
'Esta bíen '+username+', es un gusto poder ayudarle, 😬👏 por favor vuelva pronto 👋😇',
'Okey '+username+', estoy para ayudarle. 😬👏\nQue tenga '+mostrarSaludo(1)+'. 😇',
];
break;
case 'haceres_1':
jsom_interaciones = [
'Estaba revisando Facebook y adivina?📱🤭😬 \n\n'+
'Me pareció muy interesante una publicación de Municipio de Manta titulada:\n'+username
];
break;
case 'haceres_2':
var cont = 'revisando Facebook y adivina?📱🤭😬 \n\n'+
'Me pareció muy interesante una publicación de Municipio de Manta titulada:\n'+massager;
jsom_interaciones = [
'Estoy super bien ' + username + ', gracias por preguntar.\nJusto ahora estaba '+cont,
username + ' estoy de maravilla, gracias por preguntar.\nPrecisamente ahora estaba '+cont,
username + ' es '+mostrarSaludo(1)+' asi que estoy super feliz, gracias por preguntar.\nHace un rato estaba '+cont,
];
case 'mis_cer92':
jsom_interaciones = [' - Ingrese el #número indicado al inicio del nombre del trámite \n- Ingrese 0 para volver al menú principal'];
break;
}
return jsom_interaciones[Math.floor(Math.random() * jsom_interaciones.length)]
}
function mostrarSaludo(vari = null){
fecha = new Date();
hora = fecha.getHours();
if(hora >= 0 && hora < 12){
texto = "Buenos días";
if(vari == 1){
texto = 'un buen día';
}
if(vari == 2){
texto = 'día';
}
}
if(hora >= 12 && hora < 18){
texto = "Buenas tardes";
if(vari == 1){
texto = 'una buena tarde';
}
if(vari == 2){
texto = 'tarde';
}
}
if(hora >= 18 && hora < 24){
texto = "Buenas noches";
if(vari == 1){
texto = 'una buena noche';
}
if(vari == 2){
texto = 'noche';
}
}
return texto;
}

View File

@ -1,158 +1,247 @@
var funcion = require("./funtions.js");
var dialog = require("./interacciones.js");
const {Card, Image} = require('dialogflow-fulfillment');
const {
Card,
Image
} = require('dialogflow-fulfillment');
async function Fun_DefauldAgent(agent, req, res){
async function Fun_DefauldAgent(agent, req, res) {
let data_context = await ValidateDataUserContext(agent);
if(data_context){
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
agent.add(dialog.mensaje('defauld', funcion.conver_name(data_context.name) ));
return agent.add(dialog.mensaje('menu_1'));
}else{
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_SolicitarDatosAgent(agent, req, res){
const sessionId = req.body.session.split("/").reverse()[0];
let data_context = await ValidateDataUserContext(agent);
if(data_context){
if(data_context != null && data_context != "" ){
let sesion = await funcion.RegistrarSession(sessionId, data_context.cedula);
if(sesion['ok'] == true && sesion['data']['name'] != null){
console.log('sesion registrada en la bd')
agent.context.set({name:'data_user_context', lifespan: 5, parameters:{ cedula: sesion['data']['cedula'], name: sesion['data']['name'] } });
}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'));
}
}
return Fun_WelcomeAgent(agent, req, res);
}else{
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);
}
}
async function Fun_WelcomeAgent(agent, req, res){
let data_context = await ValidateDataUserContext(agent);
if(data_context){
console.log('contexto existe........');
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});
return agent.add(dialog.mensaje('menu_1'));
}else{
console.log('NO existe contexto.......');
async function Fun_SolicitarDatosAgent(agent, req, res) {
try {
const sessionId = req.body.session.split("/").reverse()[0];
let legion = await funcion.ValidarSession(sessionId);
if(legion['ok'] == true && legion['data']['name'] != null){
console.log('sesion existe en la bd')
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});
agent.add(dialog.mensaje('bienvenida'));
return agent.add(dialog.mensaje('sol_cedula'));
let data_context = await ValidateDataUserContext(agent);
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) {
console.log('sesion registrada en la bd')
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 {
console.log('demoda')
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'));
}
}
return Fun_WelcomeAgent(agent, req, res, megg);
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
async function Fun_WelcomeAgent(agent, req, res, mensage = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
console.log('contexto existe........');
// 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));
if(mensage != null){
rem_mens = mensage;
}
return agent.add(rem_mens);
} else {
console.log('NO existe contexto.......');
const sessionId = req.body.session.split("/").reverse()[0];
let legion = await funcion.ValidarSession(sessionId);
if (legion['ok'] == true && legion['data']['name'] != null) {
console.log('sesion existe en la bd')
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
});
return agent.add(dialog.mensaje('bienvenida')+'\n'+dialog.mensaje('sol_cedula'));
}
}
} catch (error) {
return ResolveDefauld(agent);
}
}
function ValidateDataUserContext(agent){
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});
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
});
resolve(false);
}
}else{
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
}
} catch (error) {
console.log(error);
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
resolve(false);
}
}catch (error) {
console.log(error);
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
resolve(false);
}
});
});
} catch (error) {
return ResolveDefauld(agent);
}
}
function ExistParamtContext(agent, pamameter){
function ExistParamtContext(agent, pamameter) {
var data = null;
agent.contexts.forEach(element => {
if(element.name == pamameter){
data = element;
if (element.name == pamameter) {
data = element;
}
});
return data;
}
async function Fun_CerrarSesionAgent(agent, req, res, accion){
if(accion == 1){
console.log('cerrando sesion...');
const sessionId = req.body.session.split("/").reverse()[0];
let legion = await funcion.CerrarSession(sessionId);
if(legion['ok'] == true){
agent.add(legion['msg']);
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
agent.context.set({name:'data_user_context', lifespan: 0, parameters:{}});
agent.add(dialog.mensaje('bienvenida'));
return agent.add(dialog.mensaje('sol_cedula'));
}else{
return agent.add(legion['msg']);
async function Fun_CerrarSesionAgent(agent, req, res, accion) {
try {
if (accion == 1) {
console.log('cerrando sesion...');
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']);
}
}
}
if(accion == 0){
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
agent.add(dialog.mensaje('afirmacion'));
return agent.add(dialog.mensaje('menu_1'));
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);
}
}
async function Fun_ConfirmarCerrarSesionAgent(agent, req, res){
async function Fun_ConfirmarCerrarSesionAgent(agent, req, res) {
let data_context = await ValidateDataUserContext(agent);
if(data_context){
// agent.context.set({name:'cerrar_sesion', lifespan:1});
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');
}else{
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 {
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Func_InformacionTramites(agent, req, res, key_example){
console.log(key_example);
async function Func_InformacionTramites(agent, req, res, key_example) {
try {
let data_context = await ValidateDataUserContext(agent);
if(data_context){
if(key_example == 0){
if (data_context) {
if (key_example == 0) {
return Fun_ConsultarCCAtras(agent, req, res);
}
let legion = await funcion.OptInfoBot(key_example);
if(legion['ok'] == true){
console.log(1)
console.log(1)
console.log(1)
var msger = '*'+legion['data']['data_key']+'*\n\n';
var example = legion['data']['data'].split('|');
if(example.length == 0){
let legion = await funcion.OptInfoBot(key_example);
console.log(legion);
if (legion['ok'] == true) {
var msger = '*' + legion['data']['data_key'] + '*\n\n';
var example = legion['data']['data'];
if (example.length == 0) {
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
example.forEach(element => {
@ -161,262 +250,448 @@ async function Func_InformacionTramites(agent, req, res, key_example){
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']);
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}else{
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
console-log(error);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
return ResolveDefauld(agent);
}
}
async function Fun_pruebas(agent, req, res){
//Consultar todos mis trámites solicitados en Portal ciudadano
async function Func_MisTramites(agent, req, res, key_example = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if(data_context){
let legion = await funcion.OptInfoBot('solvencia_key');
console.log(legion);
if(legion['ok'] == true){
console.log(1)
console.log(1)
console.log(1)
var msger = '*'+legion['data']['data_key']+'*\n\n';
var example = legion['data']['data'].split('|');
if(example.length == 0){
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.');
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
example.forEach(element => {
msger = msger + element + '\n';
example.forEach((element, index) => {
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'];
}
}
msger = msger +'\n\n'
});
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']);
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']);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}else{
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
console-log(error);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
return ResolveDefauld(agent);
}
}
async function Fun_ConsultarCCAtras(agent, req, res){
let data_context = await ValidateDataUserContext(agent);
if(data_context){
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
return agent.add(dialog.mensaje('menu_1'));
}else{
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_ConfirmarConsultarClavesCatastrales(agent, req, res){
let data_context = await ValidateDataUserContext(agent);
if(data_context){
agent.context.set({name:'0-Bienvenida-Consultar-Predios-followup', lifespan:1});
return agent.add(dialog.mensaje('consulta_clave'));
}else{
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_ConsultaPredios(agent, req, res){
let data_context = await ValidateDataUserContext(agent);
if(data_context){
agent.context.set({name:'nuevo_context', lifespan:1});
return agent.add(dialog.mensaje('consulta_clave'));
}else{
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_RetornarAlinicio(agent, req, res,name){
agent.context.set({name:'inicial_context', lifespan:1});
return agent.add(name +', '+dialog.mensaje('retorno_inicio'));
}
async function Fun_ListarMenu(agent, req, res){
agent.context.set({name:'0-Bienvenida-followup', lifespan:1});
return agent.add(dialog.mensaje('menu_1'));
}
async function Fun_ConsultarOtrasClavesCatastrales(agent, req, res, tipo){
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);
}
}else{
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
//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) {
if(key_example == 2){
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}
}else{
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_ValidarDocumentos(agent, req, res, tipo){
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(key_example == 1){
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);
if (legion['ok'] == true) {
var msger = '';
if(legion['tramite'] != undefined){
msger = msger + '*HISTORIAL - '+legion['tramite']+'*';
var example = legion['data'];4
if (example.length == 0) {
agent.add(msger +'\nLo siento, no encontré ningúna información del trámite solicitado.');
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
example.forEach((element, index) => {
msger = msger+'\n\nFecha: '+element['registro']+
'\nEstado: '+ element['estado'];
if(element['observacion']){
msger = msger+'\nObservación: '+element['observacion'];
}
});
}else{
agent.add(legion['msg']);
return Func_HistorialTramite(agent, req, res, 1);
}
if(legion['data']['url2'][0] != undefined){
agent.add(new Card({
title: 'Ver documento',
// text: `This is the body text of a card. You can even use line\n breaks and emoji! 💁`,
buttonText: 'Clic aquí',
buttonUrl: legion['data']['url2'][0]
})
);
agent.add('Ver documento:\n'+legion['data']['url2'][0]);
// agent.add('Ver documento: ' + ' https://mantaentusmanos.test/c/VP-035013.com');
}
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));
}
agent.add(msger);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}else{
return Fun_ListarMenu(agent, req, res);
}
agent.context.set({ name: '0-Bienvenida-MisTramites-followup', lifespan: 1 });
return agent.add(dialog.mensaje('mis_cer92'));
} else {
return Fun_WelcomeAgent(agent, req, res);
}
}else{
} catch (error) {
return ResolveDefauld(agent);
}
}
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);
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']);
}
return agent.add(mesge);
}else{
return ResolveDefauld(agent);
}
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
async function Fun_pruebas(agent, req, res) {
return agent.add('hola como estras');
try {
return Fun_QueHacesFunction(agent, req, req, 1);
} catch (error) {
return ResolveDefauld(agent);
}
}
async function Fun_ConsultarCCAtras(agent, req, res) {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
return agent.add(dialog.mensaje('menu_1'));
} else {
return Fun_WelcomeAgent(agent, req, res);
}
}
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');
async function Fun_ConfirmarConsultarClavesCatastrales(agent, req, res) {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
agent.context.set({
name: '0-Bienvenida-Consultar-Predios-followup',
lifespan: 1
});
return agent.add(dialog.mensaje('consulta_clave'));
} else {
return Fun_WelcomeAgent(agent, req, res);
}
}
function Func_FallbackInfoTramites(agent, req, res){
agent.context.set({name:'0-Bienvenida-InfTram-followup', lifespan: 1 });
async function Fun_ConsultaPredios(agent, req, res) {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
agent.context.set({
name: 'nuevo_context',
lifespan: 1
});
return agent.add(dialog.mensaje('consulta_clave'));
} else {
return Fun_WelcomeAgent(agent, req, res);
}
}
async function Fun_RetornarAlinicio(agent, req, res, name) {
agent.context.set({
name: '0-Bienvenida-followup',
lifespan: 1
});
agent.context.set({
name: 'inicial_context',
lifespan: 1
});
return agent.add(dialog.mensaje('retorno_inicio'));
}
async function Fun_ListarMenu(agent, req, res, inva = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if (data_context) {
console.log(data_context);
if(inva == 1){
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);
}
}
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);
}else{
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
} else {
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
}else if(tipo == 3){
return agent.add(dialog.mensaje('sol_data_clave_catastral'));
}else if(tipo == 4){
console.log('todo bien');
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);
}else{
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
} else {
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
}
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
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));
}
}
} else {
return Fun_ListarMenu(agent, req, res);
}
}
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
return ResolveDefauld(agent);
}
}
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.');
}
function Func_FallbackInfoTramites(agent, req, res) {
agent.context.set({
name: '0-Bienvenida-InfTram-followup',
lifespan: 1
});
return agent.add(dialog.mensaje('info_tramites'));
}
async function Func_MisComprobantesPago(agent, req, res, lery){
async function Func_MisComprobantesPago(agent, req, res, lery) {
try {
let data_context = await ValidateDataUserContext(agent);
if(data_context){
if(lery == 3){
if (data_context) {
if (lery == 3) {
return Fun_ConsultarCCAtras(agent, req, res);
}
if(data_context != null && data_context != "" ){
let legion = await funcion.ConsultaComprobantes(data_context.cedula, lery);
if(legion['ok'] == true){
if (data_context != null && data_context != "") {
let legion = await funcion.ConsultaComprobantes(data_context.cedula, lery);
console.log(legion);
if (legion['ok'] == true) {
var msger = '';
let coun = legion['data'].length;
if(lery == 1 && coun > 1){
msger = coun == 1 ? '*ÚLTIMOS COMPROBANTES DE PAGO:*\n\n' : '*ÚLTIMOS '+coun+' COMPROBANTES DE PAGO:*\n\n';
}else{
if (lery == 1 && coun > 1) {
msger = coun == 1 ? '*ÚLTIMOS COMPROBANTES DE PAGO:*\n\n' : '*ÚLTIMOS ' + coun + ' COMPROBANTES DE PAGO:*\n\n';
} else {
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);
if(lery == 1){
if (lery == 1) {
return Func_FallbackComprobantes(agent, req, res);
}else{
} else {
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}else{
agent.add(funcion.conver_name(data_context.name) +', '+ legion['msg']);
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}
}else{
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
console-log(error);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
return ResolveDefauld(agent);
}
}
async function Fun_ConsultarClavesCatastrales(agent, req, res, _cedula = null){
async function Fun_ConsultarClavesCatastrales(agent, req, res, _cedula = null, nuevo = null) {
try {
let data_context = await ValidateDataUserContext(agent);
if(data_context){
if(data_context != null && data_context != "" ){
if(_cedula == null){
if (data_context) {
if (data_context != null && data_context != "") {
if (_cedula == null) {
_cedula = data_context.cedula;
}
const regex = /^[0-9]*$/;
if(regex.test(_cedula)){
let legion = await funcion.ConsultaClaves(_cedula);
if(legion['ok'] == true){
_cedula = _cedula.replace(/-/g, "");
if (regex.test(_cedula) ) {
console.log('legion')
let legion = await funcion.ConsultaClaves(_cedula, nuevo);
console.log(legion)
if (legion['ok'] == true) {
let coun = legion['data'].length;
legion['data'].forEach((element, index) => {
console.log(element['valor'])
var rec = element['valor']['boot']['anteriores'];
if(element['valor']['boot']['anteriores'] != 'Recaudación al día'){
rec = rec + '\n' + element['valor']['boot']['actual'] + '\n' + element['valor']['boot']['total']
if (element['valor']['boot']['anteriores'] != 'Recaudación al día') {
rec = rec + '\n' + element['valor']['boot']['actual'] + '\n' + element['valor']['boot']['total']
}
if(index == (coun-1)){
agent.add(element['text'] + '\n' +element['direccion']+ '\n' + rec);
if (index == (coun - 1)) {
agent.add(element['text'] + '\n' + element['direccion'] + '\n' + rec);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}else{
agent.add(element['text'] + '\n' +funcion.conver_capitalice(element['direccion'])+ '\n' +rec);
} else {
agent.add(element['text'] + '\n' + funcion.conver_capitalice(element['direccion']) + '\n' + rec);
}
});
}else{
agent.add(funcion.conver_name(data_context.name) +', '+ legion['msg']);
} else {
agent.add(funcion.conver_name(data_context.name) + ', ' + legion['msg']);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
}
}else{
agent.add('El número de cédula ingresado no es válido');
} else {
if(nuevo == 1){
agent.add('La clave catastral ingresada no es válida');
}else{
agent.add('El número de cédula ingresado no es válido');
}
return Fun_ConfirmarConsultarClavesCatastrales(agent, req, res);
}
}
}else{
} else {
return Fun_WelcomeAgent(agent, req, res);
}
} catch (error) {
console-log(error);
return Fun_RetornarAlinicio(agent, req, res, funcion.conver_name(data_context.name));
return ResolveDefauld(agent);
}
}
@ -438,5 +713,8 @@ module.exports = {
"Func_MisComprobantesPago": Func_MisComprobantesPago,
"Func_FallbackComprobantes": Func_FallbackComprobantes,
"Func_FallbackInfoTramites": Func_FallbackInfoTramites,
"Fun_ConsultarClavesCatastrales": Fun_ConsultarClavesCatastrales
"Fun_QueHacesFunction": Fun_QueHacesFunction,
"Fun_ConsultarClavesCatastrales": Fun_ConsultarClavesCatastrales,
"Func_HistorialTramite": Func_HistorialTramite,
"Func_MisTramites": Func_MisTramites
}