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 ) ;
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 ) ;
}
}
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
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-09 10:35: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 ) ;
if ( legion [ 'ok' ] == true ) {
2026-01-09 10:49:55 -05:00
// let count = legion['data'].length;
2026-01-09 10:53:23 -05:00
var msger = '*Tasa de recolección de basura CC: ' + legion [ 'data' ] . cc + '* (' + legion [ 'data' ] . direccion + ') \n\n' ;
2026-01-09 10:49:55 -05:00
if ( legion [ 'data' ] . documento != undefined ) {
2026-01-09 10:35:08 -05:00
let suma = 0 ;
let meses _arr = [ 'Enero 2026' , 'Feberero 2026' , 'Marzo 2026' ] ;
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]*$/ ;
2024-02-09 15:31:51 -05:00
// _cedula = _cedula.replace(/-/g, "");
2024-02-08 09:26:47 -05:00
if ( regex . test ( _cedula ) ) {
2021-07-07 14:49:54 -05:00
let legion = await funcion . ConsultaClaves ( _cedula , nuevo ) ;
if ( legion [ 'ok' ] == true ) {
2024-02-09 09:21:25 -05:00
let printzeus = '' ;
2024-02-29 11:58:31 -05:00
2024-02-09 09:24:15 -05:00
legion [ 'data' ] [ 'data' ] . forEach ( ( elem _ares , index ) => {
2024-02-09 09:55:57 -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 ;
if ( legion [ 'data' ] [ 'data_add' ] . length > 0 ) {
2024-02-29 12:23:46 -05:00
printzeus += '\n\nUd cuenta con rubros que aplican a la remisión intereses:' ;
2024-02-29 11:58:31 -05:00
legion [ 'data' ] [ 'data_add' ] . forEach ( ( elem _ares , index ) => {
$d _tt += elem _ares . deuda _total ;
$t _int += elem _ares . ahorro ;
$t _pag += elem _ares . total _remision ;
2024-02-29 12:18:20 -05:00
// printzeus +='\n*'+elem_ares.rubro + ' - Desde: '+elem_ares.anio_min + ' Hasta: '+elem_ares.anio_max;
// printzeus +='\nDeuda a la fecha: '+elem_ares.deuda_total;
// printzeus +='\nCapital: '+elem_ares.deuda_total;
// printzeus +='\nInterés exonerado por remisión: '+elem_ares.ahorro;
// printzeus +='\nValor a pagar: '+elem_ares.total_remision + '\n\n';
2024-02-29 11:58:31 -05:00
} ) ;
2026-01-09 10:35:08 -05:00
printzeus += '\nDeuda total con intereses: $' + $d _tt ;
printzeus += '\nTotal de interés exonerado por remisión: $' + $t _int ;
printzeus += '\nValor a pagar exonerado por remisión: $' + $t _pag ;
2024-02-29 11:58:31 -05:00
}
2024-02-09 09:21:25 -05:00
agent . add ( printzeus ) ;
2024-02-29 11:58:31 -05:00
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 ) {
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 ,
"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
}