{"version":3,"sources":["app/store/types.js","app/store/validations.js","app/store/reducers.js","app/store/index.js","components/comun/Cabecera.jsx","components/comun/PiePagina.jsx","app/store/environment.js","app/store/actions.js","components/comun/FechaCancelacion.jsx","components/comun/BotonImprimirCancelacion.jsx","components/comun/DatoCancelacion.jsx","components/comun/DatosCancelacionAntExtrahorro.jsx","components/comun/MensajeError.jsx","components/comun/DatosCancelacionAntAhorroMas.jsx","components/comun/DatosCancelacionAnt.jsx","components/comun/NavPlazoFijo.jsx","components/comun/Tab.jsx","components/comun/BotonImprimirResultados.jsx","components/comun/CalendarioPlanAhorro.jsx","components/comun/DatoTotal.jsx","components/comun/TotalPlanAhorro.jsx","components/comun/ResultadoAhorromas.jsx","components/comun/ResultadoPlanAhorro.jsx","components/comun/ResultadoExtrahorro.jsx","components/comun/CalendarioAhorroMas.jsx","components/comun/DepositosAhorroMas.jsx","components/comun/ModalPlazoFijo.jsx","documents/PDFCalendario.jsx","documents/PDFResultado.jsx","documents/ResultadoSimulacion.jsx","documents/PDFCancelacion.jsx","documents/ResultadoCancelacion.jsx","documents/PDFResultadoPlanAhorro.jsx","documents/ResultadoSimulacionPlanAhorro.jsx","documents/PDFResultadoAhorroMas.jsx","documents/ResultadoSimulacionAhorroMas.jsx","components/comun/ModalImprimir.jsx","components/productos/Ahorromas.jsx","components/productos/ExtraAhorro.jsx","components/productos/FondoJubilacion.jsx","components/productos/PlanAhorro.jsx","components/PlazoFijo.jsx","components/comun/DescripcionProducto.jsx","index.js","images/caja-red.svg"],"names":["ActionTypes","FETCH_LOADING","FETCH_PRODUCTOS_SUCCESS","FETCH_AGENCIAS_SUCCESS","FETCH_PERSONERIA_SUCCESS","FETCH_MONEDA_SUCCESS","FETCH_TIPO_RETIRO_INT_SUCCESS","FETCH_COMISION_SUCCESS","FETCH_TEA_SUCCESS","FETCH_TEA_CANCELACION_SUCCESS","FETCH_CAMPANIA_SUCCESS","FETCH_FAILURE","FETCH_CAMBIAR_ITF","FETCH_IMPRIMIR_RESULTADO","MOSTRAR_MODAL","FETCH_SELECT_PRODUCTO","FETCH_SELECT_AGENCIA","FETCH_SELECT_MONEDA","FETCH_SELECT_PERSONERIA","FETCH_SELECT_RETIRO_INT","FETCH_SELECT_CAMPANIA","FETCH_SELECTED_TAB","FETCH_SELECCIONAR_ITF_EFECTIVO","FETCH_SELECCIONAR_ITF_DEPOSITO_EFECTIVO","FETCH_SELECCIONAR_DEPOSITOS","FETCH_SELECCIONAR_CAMPANIAS","FETCH_SELECCIONAR_PROX_MES","FETCH_SELECCIONAR_ITF_SIMULACION","FETCH_CARGAR_FECHA_APERTURA","FETCH_CARGAR_FECHA_CANCELACION_ANT","FETCH_CARGAR_FECHA_DEPOSITO_SIMULACION","FETCH_CARGAR_DATOS","REINICIAR_SIMULACION","LIMPIAR_DATOS","LIMPIAR_RESULTADO","OBTENER_TASA_INTERES","OBTENER_ANIO_BASE","OBTENER_ITF_SUCCESS","OBTENER_PARAMETROS_SUCCESS","OBTENER_LIMITES_SUCCESS","OBTENER_ITF_DEPOSITO_SUCCESS","OBTENER_INTERESES_PF_SUCCESS","OBTENER_INTERESES_PF_CANCELACION_SUCCESS","OBTENER_TASA_PLAN_AHORRO","OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_SOLES","OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_DOLARES","SET_VALORES_CANCELACION_AHORROMAS","SET_VALORES_SIMULACION_AHORROMAS","GENERAR_CALENDARIO_SUCCESS","GENERAR_LISTA_DEPOSITOS","AGREGAR_ITEM_DEPOSITO","CAMBIAR_ITF_DEPOSITO","HANDLE_CHANGE","MOSTRAR_ERRORES","MOSTRAR_ALERTA_CANCELACION","VALIDAR_MONTO_APERTURA","VALIDAR_MONTO_DEPOSITO","formatNumber","number","Number","parseFloat","toFixed","toString","replace","soloNumero","e","montoAnterior","monto","montoMostrar","montoIngresado","undefined","target","value","montoAnteriorString","String","test","numero","lenghtMontoAnterior","length","lenghtMontoIngresado","key","formatoFecha","fecha","fechaCorrecta","fechaIngresada","añoF","substring","mesF","formatoCorrectoFecha","sumarDiasFecha","dias","fechaActual","Date","diaFechaActual","getDate","setDate","restaFechas","fecha1","fecha2","validarIntegridadCalendario","numeroDepositos","diaDeposito","montoMensual","montoApertura","INITIAL_STATE","data","loading","error","showing","ready","simulacion","productos","agencias","personerias","tiposRetiroInt","tipoMoneda","tipoCampania","taps","ListaInteresesAnticipados","selectedProducto","selectedAgencia","selectedMoneda","selectedPersoneria","selectedRetiroInt","selectedCampania","selectedTab","etiquetaTotalAhorro","plazo","plazoInicio","plazoInicioFJCampania","tasaInteres","tasaEspecial","tasaCancelacion","tasaInteresMostrar","interesGanadoAnt","montoApertura2","interesGanado","montoDepositoITF","importeDepositoITF","montoDeposito","montoDeposito2","interesGanadoCancelacion","montoInicio","montoMinimoDeposito","nombreProducto","capitalDepositado","importeITF","importeITFMostrar","ITFAplicado","ITFCancelacion","maximoDepositos","minimoDepositos","montoAperturaITF","montoCancelacion","totalAhorro","totalMontoGanadoMostrar","fechaApertura","fechaAperturaMin","fechaAperturaMostrar","fechaCancelacionAnt","fechaCancelacionAntMostrar","fechaCancelacion","fechaFinCampaniaAhorroMSoles","fechaFinCampaniaAhorroMDolares","fechaFinCampaniaFondoJubilacionSoles","showAhorromas","showExtraAhorro","showFondoJubilacion","showPlanAhorro","isITFEfectivo","isITFDepositoEfectivo","isCheckDepositos","isCheckProxMes","isProxMes","isDeshabilitarDepositos","isDeshabilitarCampanias","isCheckCampania","isDeshabilitarCheckCampania","anioBase","estadoModal","estadoImprimir","showAlertCancelacion","diasTranscurridos","fechaVencimiento","fechaDepositoSimulacion","montoFinalPlazo","montoDepositoSimulacion","isITFEfectivoSimulacion","importeITFDepositoSim","ListaDepositos","ListaCalendarioCaptaciones","ListaInteresesInicial","totalInteresesApertura","TEACancelacion","nTasaProd","nSubTipo","nTasaMon","bNatural","nMonto","nPlazo","bCompromiso","cCodAge","datosTEA","nTEA","nTEAIncentivo","limites","nId","nProducto","nSubProducto","nMoneda","nPersoneria","nPlazoInicial","nPlazoFinal","nMontoInicial","nMontoFinal","valores","rangoFin","rangoInicio","montoInicial","montoFinal","formErrors","producto","agencia","moneda","planAhorro","ahorroMasResultado","cancelAntAhorroMas","seleccionarCampania","retiroInt","personeria","informacion","plazoInicial","plazoFinal","comision","nNumTrxLibreDia","nNumTrxLibreMes","nTipoCobroComision","cConsDescripcion","nMontoComision","nPorcComision","nMonedaComision","nMontoMinApertura","nMontoMinCuenta","nMontoMinDep","nMontoMinRet","nMontoMinComp","nMontoMinRent","nSaldPromed","nMontoComMant","parametros","cOrdPag","nMontoMinApert","nSaldoMin","cMovNro","nMontoMinRetOP","nSubtipo","nPlazoMin","nPlazoMax","nMontoMaxAper","datosResultado","listaIntereses","descripcionRetiroInteres","datosPlanAhorro","listaCalendarioPlanAhorro","fechaRenovacion","totalIncentivo","totalIntereses","reducer","state","action","type","toISOString","slice","isDeshabilitarTasaEspecial","tituloProducto","descripcionProducto","descripcionesProducto","payload","filter","j","estado","label","CARGAR_DESCRIPCIONES_SUCCESS","listaTiposRetiroInt","errorC","isCheckCamp","isDesCam","formError","com","mInicio","val","para","lim","tasaInt","TEAIncentivo","TEA","tasaIntCan","tasaIntCancelacion","ImpITFDep","montoDepITF","ImpITF","montoAper","montoAperITF","imp","errorTasaEsp","errorCamp","today","fechaAper","fechaA","diadtFA","setHours","dFechaAper","errorFechaCan","fechaCan","errorProd","prod","parseInt","isDeshabilitarMoneda","errorAgen","errores","errorPersoneria","errorRet","erroresForm","datosMontoApertura","simboloMoneda","datosMontoDeposito","name","nplazo","nITFEfectivoApertura","nMontoApertura","nTasaEspecial","nDepositos","nMontoDeposito","nDiaDeposito","dResultados","dFechaCalculo","nInteresAcumulado","nombCampaniaFJ","aplicaCampaniaFJ","forEach","item","indice","array","diastranscurridos","días","toUpperCase","montoFinalPlazoAcum","aplicaCampania","ITFDeposito","listaDepositosAM","push","Fila","FechaDeposito","MontoDeposito","MontoDepositoITF","PlazoDeposito","TasaDeposito","IntereseAcumulado","TipoOperacion","reduce","sum","totalDepositos","total","totalAhorroInteresesApertura","dataLista","dResult","listaInteresesAnticipados","montoCanc","nombCampania","nConsSisValor","lista","errorPA","fechaLiminte","datosPA","interesIncentivo","interes","dResultado","console","store","createStore","reducers","applyMiddleware","ReduxThunk","connect","dispatch","className","alt","src","LogoCajaIca","environment","urlService","urlSubDominio","PUBLIC_URL","RECAPTCHA_KEY","fetchLoading","fetchFailure","LimpiarDatos","LimpiarResultado","OnObtenerInteresesPlazoFijoSuccess","OnObtenerTasaEfetivaAnualSuccess","OnObtenerTasaEfetivaAnualCancelacionSuccess","OnObtenerTasaIncentivoPlanAhorroSuccess","OnHandleChangeMontoDeposito","OnValidarMontoDeposito","OnMostrarErrores","fetchSeleccionarCampanias","fetchSelectProducto","fetchSelectAgencia","fetchSelectMoneda","fetchSelectPersoneria","fetchSelectRetiroInt","OnimprimirResultados","OnMostrarAlertaCancelacion","mostrarModal","validarSimulacion","datos","fechaApert","isTasaEspecial","validarErrorSimulacion","a","reiniciarSimulacion","iniciarSimulacion","obtenerInteresesPlazoFijo","validarSimulacionAhorroMas","ahorroMas","validarErrorAhorroMas","montoTasa","TasaInteresMostrar","Tea","idCampania","axios","get","concat","response","dataSimulacionAhorroMas","response2","validarSimulacionPlanAhorro","erroresPA","diaApert","mesApert","getMonth","newDate","setMonth","dtFin","getFullYear","diadtFin","validarErrorPlanAhorro","plazo1","obtenerTasaIncentivoPlanAhorro","onValidarDatosCalendario","generarCalendario","datosPlanA","ultimaFecha","fechaPago","diferenciaDias","cantidadDiasBase","numeroDeposito","diferenciaDiasFinal","numeroDiasMinimo","resDiasMin","nParValor","fechaRenovacionFinal","arr","obtenerInteresesPlazoFijoCancelacion","obtenerInteresesPlazoFijoCancelacionAhorroMas","listaInt","datosCancelacion","cancelacionAnticipada","erroresCA","validarCancelacionAnt","diasTranscurrido","montotasa","TEACanc","calcularCancelacionAnticipada","cancelacionAnticipadaAhorroMas","validarCancelacionAntAhorroMas","calcularCancelacionAnticipadaAhorroMas","seleccionarProxMes","OnSeleccionarProxMes","seleccionarITFEfectivo","fetchSeleccionarITFEfectivo","obtenerImporte","obtenerTasaEfetivaAnual","seleccionarITFDepositoEfectivo","fetchSeleccionarITFDepositoEfectivo","obtenerImporteDeposito","seleccionarDepositos","fetchSeleccionarDepositos","seleccionarCampanias","isValidReCAPTCHA","datosCampania","validarSeleccionarCampania","getState","cargarFechaApertura","cargarFechaDepositoSimulacion","cargarFechaCancelacionAnt","fetchCargarFechaCancelacionAnt","setSelectedTab","Inicializar","loadProductos","loadAgencias","loadPersonerias","loadTipoMoneda","loadTipoRetiroIntereses","obtenerAnioBase","cargarDatos","selectProducto","selectAgencia","obtenerLimitesSimulacion","obtenerMontoPlazo","loadTipoCampania","selectMoneda","selectPersoneria","selectRetiroInt","retiro","SelectCampania","campania","imprimirResultados","imprimirCancelacion","handleChange","event","persist","handleChangePlazo","handleChangeNumeroDepositos","handleChangeNumeroDepositosAhorroMas","handlePrueba","handleChangeMontoApertura","monto2","datosMontos","datosMA","validarMontoApertura","datosApertura","handleChangeMontoDeposito","montoD","montoD2","datosMontosD","datosMD","handleChangeMontoDepositoAM","tempArray","element","nConsValor","nConstEstado","log","cAgeDescripcion","cAgeCod","fetch","then","ok","json","Error","catch","cNombreCampania","nIdCampania","obtenerFechaFinCampaniaAhorromasSoles","obtenerFechaFinCampaniaAhorromasDolares","obtenerComisionOperacion","obtenerParametros","dato","agregarDeposito","fechaDepString","fechaDeposito","validarDeposito","fechaV","plazoDep","plazoDeposito","FechaCancelacion","placeholderText","selected","this","props","onChange","locale","dateFormat","onClick","Component","fechaInicio","datosResultadoCancelacionAnt","actions","BotonImprimirCancelacion","DatoCancelacion","cabecera","resultado","DatosCancelacionAntExtraAhorro","MensajeError","mensaje","DatosCancelacionAntAhorroMas","DatosCancelacionAnt","TabNav","tabs","map","tab","active","children","React","bindActionCreators","Tab","isSelected","ImprimirResultados","CalendarioPlanAhorro","id","scope","fila","DatoTotal","TotalPlanAhorro","ResultadoAhorroMas","CalendarioAhorroMas","DepositosAhorroMas","aria-label","placeholder","ModalPlazoFijo","Modal","isOpen","ModalBody","setSelected","ModalFooter","PDFCalendario","nInteres","PDFResultado","x","ResultadoSimulacion","ref","el","componentRef","trigger","href","content","documentTitle","pageStyle","removeAfterPrint","PDFCancelacion","ResultadoCancelacion","PDFResultadoPlanAhorro","ResultadoSimulacionPlanAhorro","PDFResultadoAhorroMas","ResultadoSimulacionAhorroMas","ModalImprimir","registerLocale","es","Ahorromas","useState","recaptchaValid","setRecaptchaValid","reCAPTCHA_TOKEN","captchaRef","useRef","useDispatch","useSelector","disabled","hidden","step","min","checked","htmlFor","sitekey","onExpired","current","getValue","ExtraAhorro","FondoJubilacion","PlanAhorro","PlazoFijo","context","isReady","document","title","fbb","estadoImprmir","DescripcionProducto","ReactDOM","createRoot","getElementById","render","module","exports"],"mappings":"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","file":"static/js/main.da5e3e6e.chunk.js","sourcesContent":["export const ActionTypes = {\r\n //Cargar listas \r\n FETCH_LOADING: 'FETCH_LOADING',\r\n FETCH_PRODUCTOS_SUCCESS: 'FETCH_PRODUCTOS_SUCCESS',\r\n FETCH_AGENCIAS_SUCCESS: 'FETCH_AGENCIAS_SUCCESS',\r\n FETCH_PERSONERIA_SUCCESS: 'FETCH_PERSONERIA_SUCCESS',\r\n FETCH_MONEDA_SUCCESS: 'FETCH_MONEDA_SUCCESS',\r\n FETCH_TIPO_RETIRO_INT_SUCCESS: 'FETCH_TIPO_RETIRO_INT_SUCCESS',\r\n FETCH_COMISION_SUCCESS: 'FETCH_COMISION_SUCCESS',\r\n FETCH_TEA_SUCCESS: 'FETCH_TEA_SUCCESS',\r\n FETCH_TEA_CANCELACION_SUCCESS: 'FETCH_TEA_CANCELACION_SUCCESS',\r\n FETCH_CAMPANIA_SUCCESS: 'FETCH_CAMPANIA_SUCCESS',\r\n FETCH_FAILURE: 'FETCH_FAILURE',\r\n FETCH_CAMBIAR_ITF: 'FETCH_CAMBIAR_ITF',\r\n FETCH_IMPRIMIR_RESULTADO: 'FETCH_IMPRIMIR_RESULTADO',\r\n\r\n //MODAL\r\n MOSTRAR_MODAL: 'MOSTRAR_MODAL',\r\n\r\n //Seleccionar\r\n FETCH_SELECT_PRODUCTO: 'FETCH_SELECT_PRODUCTO',\r\n FETCH_SELECT_AGENCIA: 'FETCH_SELECT_AGENCIA',\r\n FETCH_SELECT_MONEDA: 'FETCH_SELECT_MONEDA',\r\n FETCH_SELECT_PERSONERIA: 'FETCH_SELECT_PERSONERIA',\r\n FETCH_SELECT_RETIRO_INT: 'FETCH_SELECT_RETIRO_INT',\r\n FETCH_SELECT_CAMPANIA: 'FETCH_SELECT_CAMPANIA',\r\n FETCH_SELECTED_TAB: 'FETCH_SELECTED_TAB',\r\n FETCH_SELECCIONAR_ITF_EFECTIVO : 'FETCH_SELECCIONAR_ITF_EFECTIVO',\r\n FETCH_SELECCIONAR_ITF_DEPOSITO_EFECTIVO: 'FETCH_SELECCIONAR_ITF_DEPOSITO_EFECTIVO',\r\n FETCH_SELECCIONAR_DEPOSITOS : 'FETCH_SELECCIONAR_DEPOSITOS',\r\n FETCH_SELECCIONAR_CAMPANIAS: 'FETCH_SELECCIONAR_CAMPANIAS',\r\n FETCH_SELECCIONAR_PROX_MES: 'FETCH_SELECCIONAR_PROX_MES',\r\n FETCH_SELECCIONAR_ITF_SIMULACION: 'FETCH_SELECCIONAR_ITF_SIMULACION',\r\n\r\n //Cargar datos \r\n FETCH_CARGAR_FECHA_APERTURA: 'FETCH_CARGAR_FECHA_APERTURA',\r\n FETCH_CARGAR_FECHA_CANCELACION_ANT: 'FETCH_CARGAR_FECHA_CANCELACION_ANT',\r\n FETCH_CARGAR_FECHA_DEPOSITO_SIMULACION: 'FETCH_CARGAR_FECHA_DEPOSITO_SIMULACION',\r\n FETCH_CARGAR_DATOS: 'FETCH_CARGAR_DATOS',\r\n REINICIAR_SIMULACION: 'REINICIAR_SIMULACION',\r\n\r\n LIMPIAR_DATOS: 'LIMPIAR_DATOS',\r\n LIMPIAR_RESULTADO: 'LIMPIAR_RESULTADO',\r\n\r\n OBTENER_TASA_INTERES: 'OBTENER_TASA_INTERES',\r\n OBTENER_ANIO_BASE: 'OBTENER_ANIO_BASE',\r\n OBTENER_ITF_SUCCESS: 'OBTENER_ITF_SUCCESS',\r\n OBTENER_PARAMETROS_SUCCESS: 'OBTENER_PARAMETROS_SUCCESS',\r\n OBTENER_LIMITES_SUCCESS: 'OBTENER_LIMITES_SUCCESS',\r\n OBTENER_ITF_DEPOSITO_SUCCESS: 'OBTENER_ITF_DEPOSITO_SUCCESS',\r\n OBTENER_INTERESES_PF_SUCCESS: 'OBTENER_INTERESES_PF_SUCCESS',\r\n OBTENER_INTERESES_PF_CANCELACION_SUCCESS: 'OBTENER_INTERESES_PF_CANCELACION_SUCCESS',\r\n OBTENER_TASA_PLAN_AHORRO : 'OBTENER_TASA_PLAN_AHORRO',\r\n OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_SOLES: 'OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_SOLES',\r\n OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_DOLARES: 'OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_DOLARES',\r\n \r\n SET_VALORES_CANCELACION_AHORROMAS : 'SET_VALORES_CANCELACION_AHORROMAS',\r\n SET_VALORES_SIMULACION_AHORROMAS: 'SET_VALORES_SIMULACION_AHORROMAS',\r\n\r\n GENERAR_CALENDARIO_SUCCESS: 'GENERAR_CALENDARIO_SUCCESS',\r\n GENERAR_LISTA_DEPOSITOS: 'GENERAR_LISTA_DEPOSITOS',\r\n\r\n AGREGAR_ITEM_DEPOSITO: 'AGREGAR_ITEM_DEPOSITO',\r\n\r\n CAMBIAR_ITF_DEPOSITO: 'CAMBIAR_ITF_DEPOSITO', \r\n\r\n HANDLE_CHANGE: 'HANDLE_CHANGE',\r\n \r\n MOSTRAR_ERRORES: 'MOSTRAR_ERRORES',\r\n MOSTRAR_ALERTA_CANCELACION: 'MOSTRAR_ALERTA_CANCELACION',\r\n\r\n VALIDAR_MONTO_APERTURA: 'VALIDAR_MONTO_APERTURA',\r\n VALIDAR_MONTO_DEPOSITO: 'VALIDAR_MONTO_DEPOSITO',\r\n};","export function formatNumber(number){\r\n number = Number.parseFloat(number).toFixed(2);\r\n const exp = /(\\d)(?=(\\d{3})+(?!\\d))/g;\r\n const rep = '$1,';\r\n\r\n return number.toString().replace(exp,rep);\r\n}\r\n\r\nexport function soloNumero(e, montoAnterior){\r\n var monto = Number.parseFloat(montoAnterior).toFixed(2);\r\n var montoMostrar = \"\";\r\n var montoIngresado = e.target.value == undefined || e.target.value == \"\" ? \"0.00\" : e.target.value;\r\n var montoAnteriorString = String(monto).replace(',', '').replace('.','');\r\n var datosMonto = {monto: 0.00, montoMostrar: \"0.00\"};\r\n\r\n const re = /^[0-9]*\\,?[0-9]*\\.?[0-9]*$/; \r\n montoIngresado = String(montoIngresado);\r\n\r\n if(re.test(e.target.value.replace(',', '').replace('.',''))){ //Es número\r\n var numero = montoIngresado.replace(',', ''); //elimina las comas \r\n var lenghtMontoAnterior = montoAnteriorString.length;\r\n var lenghtMontoIngresado = numero.replace('.','').length;\r\n \r\n if(lenghtMontoIngresado === 1)\r\n {\r\n monto = '0.0'+ numero.replace('.','');\r\n }\r\n else\r\n {\r\n numero = Number.parseFloat(numero);\r\n monto = lenghtMontoAnterior < lenghtMontoIngresado ? numero * 10 : numero /10 ;\r\n }\r\n \r\n monto = Number.parseFloat(Number.parseFloat(monto).toFixed(2));\r\n if(monto>999999999.99)\r\n {\r\n monto = montoAnterior;\r\n }\r\n\r\n montoMostrar = Number.parseFloat(monto).toFixed(2);\r\n //montoMostrar= formatNumber(monto); // Le da formato con comas y punto\r\n\r\n }\r\n else{ //No es número\r\n var numero = montoIngresado.replace(e.key, '');\r\n montoMostrar = numero;\r\n }\r\n\r\n datosMonto = {monto: monto, montoMostrar: montoMostrar}\r\n\r\n return datosMonto;\r\n}\r\n\r\nexport function formatoFecha(fecha)\r\n{\r\n var fechaCorrecta = \"\";\r\n var fechaIngresada = String(fecha);\r\n\r\n if(fechaIngresada !== \"\" && fechaIngresada !== undefined)\r\n {\r\n var añoF = fechaIngresada.substring(0,4);\r\n var mesF = fechaIngresada.substring(5,7);\r\n var diaF = fechaIngresada.substring(8,10);\r\n fechaCorrecta = diaF + \"/\" + mesF + \"/\" + añoF;\r\n }\r\n return fechaCorrecta;\r\n}\r\n\r\nexport function formatoCorrectoFecha(fecha)\r\n{\r\n var fechaCorrecta = \"\";\r\n var fechaIngresada = String(fecha);\r\n\r\n if(fechaIngresada !== \"\" && fechaIngresada !== undefined)\r\n {\r\n var añoF = fechaIngresada.substring(0,4);\r\n var mesF = fechaIngresada.substring(5,7);\r\n var diaF = fechaIngresada.substring(8,10);\r\n fechaCorrecta = mesF + \"-\" + diaF + \"-\" + añoF;\r\n }\r\n return fechaCorrecta;\r\n}\r\n\r\nexport function sumarDiasFecha(fecha, dias)\r\n{\r\n var fechaActual = new Date(fecha);\r\n var fechaNueva = new Date(); \r\n\r\n var diaFechaActual = fechaActual.getDate();\r\n fechaNueva = new Date(fechaActual.setDate(diaFechaActual+dias));\r\n\r\n return fechaNueva;\r\n}\r\n\r\n\r\nexport function restaFechas(fecha1,fecha2)\r\n{ \r\nvar day_as_milliseconds = 86400000;\r\nvar diff_in_millisenconds = fecha1 - fecha2 ;\r\nvar diff_in_days = diff_in_millisenconds / day_as_milliseconds;\r\n\r\nreturn diff_in_days;\r\n}\r\n\r\nexport function validarIntegridadCalendario(numeroDepositos, diaDeposito, montoMensual, montoApertura) {\r\n if (numeroDepositos === 0)\r\n {\r\n return false;\r\n }\r\n\r\n if (diaDeposito === 0)\r\n {\r\n return false;\r\n }\r\n\r\n if (montoMensual === 0)\r\n {\r\n return false;\r\n }\r\n \r\n if (montoApertura === 0)\r\n {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nexport function validarErrorPlanAhorro(datos) {\r\n\r\n var error = false;\r\n var montoAperturaITF = 0;\r\n var montoDeposito = 0;\r\n var montoInicio = 0 ;\r\n var plazo = 0 ;\r\n var tasaEspecial = 0;\r\n var plazoInicio = 0;\r\n var fechaApert = new Date();\r\n var simboloMoneda = \"\";\r\n\r\n if( Number.parseInt( datos.selectedProducto) === 7)\r\n {\r\n simboloMoneda = \"S/\";\r\n }\r\n else{\r\n simboloMoneda = Number.parseInt(datos.selectedMoneda) === 1 ? \"S/\": \"$ \";\r\n }\r\n \r\n if(datos.montoApertura === \"\" || datos.montoApertura === undefined)\r\n {\r\n montoAperturaITF = 0;\r\n }\r\n else\r\n {\r\n montoAperturaITF = datos.montoApertura;\r\n }\r\n\r\n \r\n if(datos.montoDeposito === undefined || montoDeposito === \"\")\r\n {\r\n montoDeposito = 0;\r\n }\r\n else\r\n {\r\n montoDeposito = datos.montoDeposito;\r\n }\r\n\r\n if(datos.montoInicio === undefined || datos.montoInicio === \"\" )\r\n {\r\n montoInicio = 0;\r\n }\r\n else\r\n {\r\n montoInicio = datos.montoInicio;\r\n }\r\n\r\n if(datos.plazo === undefined || datos.plazo === \"\")\r\n {\r\n plazo = 0;\r\n }\r\n else{ plazo = datos.plazo; }\r\n\r\n if(datos.tasaEspecial === undefined || datos.tasaEspecial === \"\")\r\n {\r\n tasaEspecial = 0;\r\n }\r\n else{ tasaEspecial = datos.tasaEspecial; }\r\n\r\n if(datos.plazoInicio === undefined || datos.plazoInicio === \"\")\r\n {\r\n plazoInicio = 0;\r\n }\r\n else{ plazoInicio = datos.plazoInicio; }\r\n \r\n let erroresPA = datos.formErrors;\r\n erroresPA.montoApertura = \"\";\r\n erroresPA.montoDeposito = \"\";\r\n erroresPA.plazo = \"\";\r\n erroresPA.montoAperturaITF= \"\";\r\n erroresPA.fechaApertura = \"\";\r\n erroresPA.fechaCancelacionAnt= \"\";\r\n erroresPA.tasaEspecial = \"\";\r\n erroresPA.diaDeposito = \"\";\r\n erroresPA.numeroDepositos = \"\";\r\n erroresPA.planAhorro = \"\";\r\n erroresPA.ahorroMas = \"\";\r\n erroresPA.agencia = \"\";\r\n erroresPA.moneda = \"\";\r\n erroresPA.seleccionarCampania = \"\";\r\n erroresPA.retiroInt = \"\";\r\n\r\n if(datos.selectedAgencia === 0 || datos.selectedAgencia === undefined || datos.selectedAgencia === \"\")\r\n {\r\n erroresPA.agencia = \"Debe seleccionar una agencia\";\r\n error = true;\r\n }\r\n\r\n if(Number.parseInt(datos.selectedProducto) === 5)\r\n {\r\n if(datos.selectedMoneda === 0 || datos.selectedMoneda === undefined || datos.selectedMoneda === \"\")\r\n {\r\n erroresPA.moneda = \"Debe seleccionar una moneda\";\r\n error = true;\r\n }\r\n }\r\n\r\n if(montoAperturaITF < datos.valores.montoInicial )\r\n {\r\n erroresPA.montoApertura = \"El monto de apertura debe ser mayor o igual a \" + simboloMoneda + formatNumber(montoInicio);\r\n error = true;\r\n }\r\n\r\n if(datos.isTasaEspecial)\r\n {\r\n if(tasaEspecial <= 0)\r\n {\r\n erroresPA.tasaEspecial = \"La tasa debe ser mayor a 0\";\r\n error = true;\r\n }\r\n }\r\n\r\n if(datos.fechaApertura === undefined || datos.fechaApertura === \"\" )\r\n {\r\n erroresPA.fechaApertura = \"Por favor ingrese la fecha de apertura.\"; \r\n error = true; \r\n }\r\n else\r\n { \r\n fechaApert = new Date(datos.fechaApertura);\r\n var today = new Date(); \r\n\r\n var diadtFA = fechaApert.getDate();\r\n fechaApert = new Date(fechaApert.setDate(diadtFA+1));\r\n\r\n if(fechaApert.setHours(0,0,0,0) < today.setHours(0,0,0,0))\r\n {\r\n erroresPA.fechaApertura = \"La fecha no puede ser menor al día de hoy.\"; \r\n error = true; \r\n }\r\n }\r\n\r\n if( datos.diaDeposito === undefined || datos.diaDeposito ===\"\" || Number.parseInt(datos.diaDeposito) > 31 )\r\n {\r\n erroresPA.diaDeposito = \"Fecha incorrecta.\"\r\n error = true; \r\n }\r\n \r\n if(datos.numeroDepositos === undefined || datos.numeroDepositos === \"\")\r\n {\r\n erroresPA.numeroDepositos = \"Por favor ingrese un número de depósitos\"; \r\n error = true;\r\n }\r\n else\r\n {\r\n if(datos.numeroDepositos < datos.minimoDepositos)\r\n { erroresPA.numeroDepositos = \"El número de depósitos no puede ser menor que el número de depósitos mínimo que es: \" + datos.minimoDepositos + \".\";\r\n error = true;\r\n } \r\n if(datos.numeroDepositos > datos.maximoDepositos)\r\n { erroresPA.numeroDepositos = \"El número de depósitos no puede ser mayor que el número de depósitos máximo que es: \" + datos.maximoDepositos + \".\";\r\n error = true;\r\n }\r\n }\r\n\r\n if( montoDeposito < datos.montoMinimoDeposito)\r\n {\r\n erroresPA.montoDeposito = \"El monto de depósito debe ser mayor o igual a S/ \" + formatNumber(datos.montoMinimoDeposito) +\".\" ;\r\n error = true;\r\n }\r\n\r\n if (Number.parseFloat(datos.montoAperturaITF) < Number.parseFloat(datos.montoDepositoITF))\r\n { \r\n erroresPA.planAhorro = \"El monto de apertura no puede ser menor que el monto de depósito mensual.\";\r\n error = true;\r\n }\r\n\r\n //var fechaAp = new Date(datos.fechaApertura);\r\n var diaApert = fechaApert.getDate();\r\n var mesApert = fechaApert.getMonth(); // Since getMonth() returns month from 0-11 not 1-12\r\n\r\n if (!datos.isProxMes && Number.parseInt(datos.diaDeposito) < diaApert)\r\n {\r\n erroresPA.planAhorro = \"El día de depósito debe ser mayor a la fecha apertura.\";\r\n error = true;\r\n }\r\n\r\n if (datos.isProxMes)\r\n {\r\n //var dtFin = datos.fechaApertura.AddMonths(1);\r\n var newDate = new Date(fechaApert.setMonth(mesApert+2));\r\n var dtFin = new Date(newDate.getFullYear(), newDate.getMonth() , 1);\r\n var diadtFin = dtFin.getDate();\r\n dtFin = new Date(dtFin.setDate(diadtFin-1));\r\n if (datos.diaDeposito > dtFin.getDate())\r\n {\r\n erroresPA.planAhorro = \"El día de depósito debe ser menor a \"+ dtFin.getDate() +\".\";\r\n error = true;\r\n }\r\n }\r\n\r\n var result = error ? erroresPA : \"\";\r\n return result;\r\n};\r\n\r\nexport function validarErrorAhorroMas(datos) {\r\n \r\n var error = false;\r\n var montoAperturaITF = 0;\r\n var montoInicio = 0 ;\r\n var plazo = 0 ;\r\n var tasaEspecial = 0;\r\n var plazoInicio = 0;\r\n var fechaApert = new Date();\r\n var simboloMoneda = \"\";\r\n\r\n if( Number.parseInt( datos.selectedProducto) === 7)\r\n {\r\n simboloMoneda = \"S/\";\r\n }\r\n else{\r\n simboloMoneda = Number.parseInt(datos.selectedMoneda) === 1 ? \"S/\": \"$ \";\r\n }\r\n \r\n if(datos.montoApertura === \"\" || datos.montoApertura === undefined)\r\n {\r\n montoAperturaITF = 0;\r\n }\r\n else\r\n {\r\n montoAperturaITF = datos.montoApertura;\r\n }\r\n\r\n if(datos.montoInicio === undefined || datos.montoInicio === \"\" )\r\n {\r\n montoInicio = 0;\r\n }\r\n else\r\n {\r\n montoInicio = datos.montoInicio;\r\n }\r\n\r\n if(datos.plazo === undefined || datos.plazo === \"\")\r\n {\r\n plazo = 0;\r\n }\r\n else{ plazo = datos.plazo; }\r\n\r\n if(datos.tasaEspecial === undefined || datos.tasaEspecial === \"\")\r\n {\r\n tasaEspecial = 0;\r\n }\r\n else{ tasaEspecial = datos.tasaEspecial; }\r\n\r\n if(datos.plazoInicio === undefined || datos.plazoInicio === \"\")\r\n {\r\n plazoInicio = 0;\r\n }\r\n else{ plazoInicio = datos.plazoInicio; }\r\n\r\n let errores = datos.formErrors;\r\n errores.montoApertura = \"\";\r\n errores.montoDeposito = \"\";\r\n errores.plazo = \"\";\r\n errores.montoAperturaITF= \"\";\r\n errores.fechaApertura = \"\";\r\n errores.fechaCancelacionAnt= \"\";\r\n errores.tasaEspecial = \"\";\r\n errores.diaDeposito = \"\";\r\n errores.numeroDepositos = \"\";\r\n errores.planAhorro = \"\";\r\n errores.ahorroMas = \"\";\r\n errores.agencia = \"\";\r\n errores.moneda = \"\";\r\n errores.seleccionarCampania = \"\";\r\n errores.retiroInt = \"\";\r\n errores.personeria = \"\";\r\n\r\n if(datos.selectedAgencia === 0 || datos.selectedAgencia === undefined || datos.selectedAgencia === \"\")\r\n {\r\n errores.agencia = \"Debe seleccionar una agencia\";\r\n error = true;\r\n }\r\n\r\n if(Number.parseInt(datos.selectedProducto) === 4)\r\n {\r\n if(datos.selectedMoneda === 0 || datos.selectedMoneda === undefined || datos.selectedMoneda === \"\")\r\n {\r\n errores.moneda = \"Debe seleccionar una moneda\";\r\n error = true;\r\n }\r\n }\r\n\r\n if(datos.selectedRetiroInt === 0 || datos.selectedRetiroInt === undefined || datos.selectedRetiroInt === \"\")\r\n {\r\n errores.retiroInt = \"Debe seleccionar una forma de retiro\";\r\n error = true;\r\n }\r\n\r\n if(datos.selectedPersoneria === 0 || datos.selectedPersoneria === undefined || datos.selectedPersoneria === \"\")\r\n {\r\n errores.personeria = \"Debe seleccionar una personería\";\r\n error = true;\r\n }\r\n\r\n if(montoAperturaITF < datos.valores.montoInicial )\r\n {\r\n errores.montoApertura = \"El monto de apertura debe ser mayor o igual a \" + simboloMoneda + formatNumber(montoInicio);\r\n error = true;\r\n }\r\n \r\n if (plazo < plazoInicio && datos.selectedProducto !== 2)\r\n {\r\n errores.plazo = \"El plazo debe ser mayor o igual a \" + plazoInicio + \" días.\" ;\r\n error = true;\r\n }\r\n\r\n if(plazo > datos.valores.rangoFin && datos.selectedProducto !== 2 && datos.valores.rangoFin > 0)\r\n { \r\n errores.plazo = \"El plazo debe ser menor o igual a \" + datos.valores.rangoFin + \" días.\" ;\r\n error = true;\r\n }\r\n\r\n if(datos.isTasaEspecial)\r\n {\r\n if(tasaEspecial <= 0)\r\n {\r\n errores.tasaEspecial = \"La tasa debe ser mayor a 0\";\r\n error = true;\r\n }\r\n }\r\n\r\n if(datos.fechaApertura === undefined || datos.fechaApertura === \"\" )\r\n {\r\n errores.fechaApertura = \"Por favor ingrese la fecha de apertura.\"; \r\n error = true; \r\n }\r\n else\r\n {\r\n fechaApert = new Date(datos.fechaApertura);\r\n var today = new Date(); \r\n\r\n var diadtFA = fechaApert.getDate();\r\n fechaApert = new Date(fechaApert.setDate(diadtFA+1));\r\n\r\n if(fechaApert.setHours(0,0,0,0) < today.setHours(0,0,0,0))\r\n {\r\n errores.fechaApertura = \"La fecha no puede ser menor al día de hoy.\"; \r\n error = true; \r\n }\r\n }\r\n \r\n if(datos.isCheckDepositos)\r\n {\r\n if(datos.numeroDepositos === undefined || datos.numeroDepositos === \"\")\r\n {\r\n errores.numeroDepositos = \"Por favor ingrese un número de depósitos\"; \r\n error = true; \r\n }\r\n else\r\n {\r\n if(datos.numeroDepositos < 0)\r\n { \r\n errores.numeroDepositos = \"El número de depositos debe ser mayor o igual a 0\";\r\n error = true; \r\n } \r\n }\r\n }\r\n \r\n var result = error ? errores : \"\";\r\n return result;\r\n};\r\n\r\nexport function validarDeposito(datos) {\r\n var error = false;\r\n var simboloMoneda = \"\";\r\n\r\n if( Number.parseInt( datos.selectedProducto) === 7)\r\n {\r\n simboloMoneda = \"S/\";\r\n }\r\n else{\r\n simboloMoneda = Number.parseInt(datos.selectedMoneda) === 1 ? \"S/\": \"$ \";\r\n }\r\n\r\n let errores = datos.formErrors;\r\n errores.montoApertura = \"\";\r\n errores.montoDeposito = \"\";\r\n errores.plazo = \"\";\r\n errores.montoAperturaITF= \"\";\r\n errores.fechaApertura = \"\";\r\n errores.fechaCancelacionAnt= \"\";\r\n errores.tasaEspecial = \"\";\r\n errores.diaDeposito = \"\";\r\n errores.numeroDepositos = \"\";\r\n errores.planAhorro = \"\";\r\n errores.ahorroMasResultado = \"\";\r\n errores.seleccionarCampania = \"\";\r\n errores.retiroInt = \"\";\r\n\r\n var fechaDepString= datos.ListaDepositos[datos.ListaDepositos.length - 1].FechaDeposito;\r\n var fechaDeposito = new Date(fechaDepString.replace(/-/g, '\\/'));\r\n\r\n if (datos.fechaDepositoSimulacion.setHours(0,0,0,0) <= fechaDeposito.setHours(0,0,0,0) )\r\n {\r\n errores.ahorroMasResultado = \"La fecha de depósito debe ser mayor a la fecha anterior.\";\r\n error = true;\r\n }\r\n\r\n var fechaVencimiento = new Date(datos.fechaVencimiento);\r\n\r\n if (datos.fechaDepositoSimulacion.setHours(0,0,0,0) >= fechaVencimiento.setHours(0,0,0,0))\r\n {\r\n errores.ahorroMasResultado = \"La fecha de depósito debe ser menor a la fecha de vencimiento.\";\r\n error = true;\r\n }\r\n\r\n if ( datos.montoDepositoITF < datos.montoMinimoDeposito)\r\n {\r\n errores.ahorroMasResultado = \"El monto de depósito debe ser mayor o igual a \" + simboloMoneda + String(datos.montoMinimoDeposito,\"0.00\");\r\n error = true;\r\n }\r\n\r\n if (datos.ListaDepositos.length === Number.parseInt(datos.numeroDepositos) + 1)\r\n {\r\n errores.ahorroMasResultado = \"Ya se completó el número de depósitos definido.\";\r\n error = true;\r\n }\r\n\r\n var result = error ? errores : \"\";\r\n return result;\r\n};\r\n\r\nexport function validarCancelacionAntAhorroMas(datos) {\r\n var error = false;\r\n let errores = datos.formErrors;\r\n errores.montoApertura = \"\";\r\n errores.montoDeposito = \"\";\r\n errores.plazo = \"\";\r\n errores.montoAperturaITF= \"\";\r\n errores.fechaApertura = \"\";\r\n errores.fechaCancelacionAnt= \"\";\r\n errores.tasaEspecial = \"\";\r\n errores.diaDeposito = \"\";\r\n errores.numeroDepositos = \"\";\r\n errores.planAhorro = \"\";\r\n errores.ahorroMasResultado = \"\";\r\n errores.cancelAntAhorroMas = \"\";\r\n errores.seleccionarCampania = \"\";\r\n\r\n if (datos.ListaDepositos.length <= Number.parseInt(datos.numeroDepositos))\r\n {\r\n errores.cancelAntAhorroMas = \"Por favor ingrese todos los depositos.\";\r\n error = true;\r\n }\r\n\r\n var fechaDeposito = new Date(datos.ListaDepositos[datos.ListaDepositos.length - 1].FechaDeposito);\r\n\r\n if (fechaDeposito.setHours(0,0,0,0) >= datos.fechaCancelacionAnt.setHours(0,0,0,0))\r\n {\r\n errores.cancelAntAhorroMas = \"La fecha de cancelación debe ser mayor a la fecha del último depósito.\";\r\n error = true;\r\n }\r\n\r\n var result = error ? errores : \"\";\r\n return result;\r\n}\r\n\r\nexport function validarCancelacionAnt(datos)\r\n{\r\n var error = false;\r\n let erroresCA = datos.formErrors;\r\n erroresCA.montoApertura = \"\";\r\n erroresCA.plazo = \"\";\r\n erroresCA.plazoInicio = \"\";\r\n erroresCA.montoAperturaITF= \"\";\r\n erroresCA.fechaApertura = \"\";\r\n erroresCA.fechaCancelacionAnt= \"\";\r\n erroresCA.tasaEspecial = \"\";\r\n\r\n if(datos.fechaCancelacionAnt.setHours(0,0,0,0) <= datos.fechaApertura.setHours(0,0,0,0))\r\n {\r\n erroresCA.fechaCancelacionAnt = \"La fecha debe ser mayor a la fecha de apertura.\"; \r\n error = true; \r\n }\r\n else\r\n {\r\n erroresCA.fechaCancelacionAnt = \"\"; \r\n }\r\n\r\n var result = error ? erroresCA : \"\";\r\n return result;\r\n}\r\n\r\nexport function validarErrorSimulacion(datos) {\r\n var error = false;\r\n var montoAperturaITF = 0;\r\n var montoInicio = 0 ;\r\n var montoFinal = 0;\r\n var plazo = 0 ;\r\n var tasaEspecial = 0;\r\n var plazoInicio = 0;\r\n var fechaApert = new Date();\r\n var simboloMoneda = \"\";\r\n\r\n if( Number.parseInt( datos.selectedProducto) === 7 || Number.parseInt( datos.selectedProducto) === 2)\r\n {\r\n simboloMoneda = \"S/\";\r\n }\r\n else{\r\n simboloMoneda = Number.parseInt(datos.selectedMoneda) === 1 ? \"S/\": \"$ \";\r\n }\r\n\r\n if(datos.montoApertura === \"\" || datos.montoApertura === undefined)\r\n {\r\n montoAperturaITF = 0;\r\n }\r\n else\r\n {\r\n montoAperturaITF = datos.montoApertura;\r\n }\r\n\r\n if(datos.montoInicio === undefined || datos.montoInicio === \"\" )\r\n {\r\n montoInicio = 0;\r\n }\r\n else\r\n {\r\n montoInicio = datos.montoInicio;\r\n }\r\n\r\n if(datos.valores.montoFinal === undefined || datos.valores.montoFinal === \"\" )\r\n {\r\n montoFinal = 0;\r\n }\r\n else\r\n {\r\n montoInicio = datos.montoInicio;\r\n }\r\n\r\n if(datos.plazo === undefined || datos.plazo === \"\")\r\n {\r\n plazo = 0;\r\n }\r\n else{ plazo = datos.plazo; }\r\n\r\n if(datos.tasaEspecial === undefined || datos.tasaEspecial === \"\")\r\n {\r\n tasaEspecial = 0;\r\n }\r\n else{ tasaEspecial = datos.tasaEspecial; }\r\n\r\n if(datos.plazoInicio === undefined || datos.plazoInicio === \"\")\r\n {\r\n plazoInicio = 0;\r\n }\r\n else{ plazoInicio = datos.plazoInicio; }\r\n\r\n let errores = datos.formErrors;\r\n errores.montoApertura = \"\";\r\n errores.plazo = \"\";\r\n errores.montoAperturaITF= \"\";\r\n errores.fechaApertura = \"\";\r\n errores.fechaCancelacionAnt= \"\";\r\n errores.tasaEspecial = \"\";\r\n errores.producto = \"\";\r\n errores.agencia = \"\";\r\n errores.moneda = \"\";\r\n errores.seleccionarCampania = \"\";\r\n errores.retiroInt = \"\";\r\n errores.personeria = \"\";\r\n\r\n if(datos.selectedProducto === 0 || datos.selectedProducto === undefined || datos.selectedProducto === \"\")\r\n {\r\n errores.producto = \"Debe seleccionar un producto\";\r\n error = true;\r\n }\r\n\r\n if(datos.selectedAgencia === 0 || datos.selectedAgencia === undefined || datos.selectedAgencia === \"\")\r\n {\r\n errores.agencia = \"Debe seleccionar una agencia\";\r\n error = true;\r\n }\r\n\r\n if(Number.parseInt(datos.selectedProducto) === 5)\r\n {\r\n if(datos.selectedMoneda === 0 || datos.selectedMoneda === undefined || datos.selectedMoneda === \"\")\r\n {\r\n errores.moneda = \"Debe seleccionar una moneda\";\r\n error = true;\r\n }\r\n }\r\n\r\n if(datos.selectedRetiroInt === 0 || datos.selectedRetiroInt === undefined || datos.selectedRetiroInt === \"\")\r\n {\r\n errores.retiroInt = \"Debe seleccionar una forma de retiro\";\r\n error = true;\r\n }\r\n\r\n if(Number.parseInt(datos.selectedProducto) === 4)\r\n {\r\n if(datos.selectedPersoneria === 0 || datos.selectedPersoneria === undefined || datos.selectedPersoneria === \"\")\r\n {\r\n errores.personeria = \"Debe seleccionar una personería\";\r\n error = true;\r\n }\r\n }\r\n if(montoAperturaITF < datos.valores.montoInicial)\r\n {\r\n errores.montoApertura = \"El monto de apertura debe ser mayor o igual a \" + simboloMoneda + formatNumber(montoInicio);\r\n \r\n error = true;\r\n }\r\n\r\n if((montoAperturaITF > datos.valores.montoFinal) && datos.valores.montoFinal > 0)\r\n {\r\n errores.montoApertura = \"El monto de apertura debe ser menor o igual a \" + simboloMoneda + formatNumber(montoFinal);\r\n\r\n error = true;\r\n }\r\n\r\n if(plazo < datos.plazoInicioFJCampania && datos.selectedProducto == 7 && datos.isCheckCampania)\r\n { \r\n errores.plazo = \"El plazo debe ser mayor o igual a \" + datos.plazoInicioFJCampania + \" días.\" ;\r\n error = true;\r\n }\r\n else{\r\n if (plazo < datos.valores.rangoInicio)\r\n {\r\n errores.plazo = \"El plazo debe ser mayor o igual a \" + datos.valores.rangoInicio + \" días.\" ;\r\n error = true;\r\n }\r\n }\r\n \r\n\r\n if ((plazo > datos.valores.rangoFin) && datos.valores.rangoFin > 0)\r\n {\r\n errores.plazo = \"El plazo debe ser menor o igual a \" + datos.valores.rangoFin + \" días.\" ;\r\n error = true;\r\n }\r\n\r\n if(datos.isTasaEspecial)\r\n {\r\n if(tasaEspecial <= 0)\r\n {\r\n errores.tasaEspecial = \"La tasa debe ser mayor a 0\";\r\n error = true;\r\n }\r\n }\r\n\r\n if(datos.fechaApertura === undefined || datos.fechaApertura === \"\" )\r\n {\r\n errores.fechaApertura = \"Por favor ingrese la fecha de apertura.\"; \r\n error = true; \r\n }\r\n else\r\n {\r\n fechaApert = new Date(datos.fechaApertura);\r\n var today = new Date(); \r\n\r\n var diadtFA = fechaApert.getDate();\r\n fechaApert = new Date(fechaApert.setDate(diadtFA+1));\r\n\r\n if(fechaApert.setHours(0,0,0,0) < today.setHours(0,0,0,0))\r\n {\r\n errores.fechaApertura = \"La fecha no puede ser menor al día de hoy.\"; \r\n error = true; \r\n }\r\n }\r\n\r\n var result = error ? errores : \"\";\r\n return result;\r\n}\r\n\r\n\r\nexport function validarLimitesSimulacion(agencia, producto) {\r\n \r\n var error = false;\r\n if(agencia === \"\" || agencia === undefined)\r\n {\r\n error = true;\r\n }\r\n\r\n if(producto === undefined || producto === \"\" || producto === 0 )\r\n {\r\n error = true;\r\n }\r\n \r\n var result = error;\r\n return result;\r\n}\r\n\r\nexport function validarSeleccionarCampania(datosCampania){\r\n var error = false;\r\n let errores = datosCampania.formErrors;\r\n errores.montoApertura = \"\";\r\n errores.montoDeposito = \"\";\r\n errores.plazo = \"\";\r\n errores.montoAperturaITF= \"\";\r\n errores.fechaApertura = \"\";\r\n errores.fechaCancelacionAnt= \"\";\r\n errores.tasaEspecial = \"\";\r\n errores.diaDeposito = \"\";\r\n errores.numeroDepositos = \"\";\r\n errores.planAhorro = \"\";\r\n errores.ahorroMas = \"\";\r\n errores.agencia = \"\";\r\n errores.moneda = \"\";\r\n errores.seleccionarCampania = \"\";\r\n errores.retiroInt = \"\";\r\n\r\n if(datosCampania.selectedProducto === 4 && datosCampania.tipoCampania.length <= 0)\r\n {\r\n errores.seleccionarCampania = \"La campaña no aplica para el plazo ingresado.\";\r\n error = true;\r\n }\r\n\r\n var result = error ? errores : \"\";\r\n return result;\r\n}\r\n\r\nexport function validarAplicaCampaniaDepositos(fechaDeposito, fechaFinCampania)\r\n{ \r\n var resp = 1;\r\n var fechaDep = new Date(fechaDeposito);\r\n var fechaFinCampania = new Date(fechaFinCampania);\r\n\r\n if (fechaDep.setHours(0,0,0,0) >= fechaFinCampania.setHours(0,0,0,0))\r\n {\r\n resp = 0;\r\n }\r\n return resp;\r\n}","import { act } from 'react-dom/test-utils';\r\nimport {ActionTypes} from './types';\r\nimport { formatNumber, restaFechas } from './validations';\r\n\r\nconst INITIAL_STATE = {\r\n data: [],\r\n loading: false,\r\n error: false,\r\n showing: false,\r\n ready: false,\r\n simulacion: false,\r\n productos: [],\r\n agencias: [],\r\n personerias: [],\r\n tiposRetiroInt:[],\r\n tipoMoneda:[],\r\n tipoCampania:[],\r\n taps: ['RESULTADO','DATOS DE CANCELACIÓN ANTICIPADA'],\r\n ListaInteresesAnticipados: [],\r\n selectedProducto : 0,\r\n selectedAgencia:0,\r\n selectedMoneda: 0,\r\n selectedPersoneria: 0,\r\n selectedRetiroInt: 0,\r\n selectedCampania:0,\r\n selectedTab: 'Resultado',\r\n etiquetaTotalAhorro: 'Interés ganado',\r\n plazo: \"\",\r\n plazoInicio: 0,\r\n plazoInicioFJCampania: 361,\r\n tasaInteres: \"\",\r\n tasaEspecial:\"\",\r\n tasaCancelacion: 0,\r\n tasaInteresMostrar: \"0\",\r\n interesGanadoAnt : 0,\r\n montoApertura: \"\",\r\n montoApertura2: \"0.00\",\r\n interesGanado : 0,\r\n montoDepositoITF: \"\",\r\n importeDepositoITF: 0,\r\n montoDeposito: \"\",\r\n montoDeposito2: \"0.00\",\r\n interesGanadoCancelacion : 0,\r\n montoInicio: 0,\r\n montoMinimoDeposito : 0,\r\n numeroDepositos:\"\",\r\n nombreProducto: \"\",\r\n capitalDepositado : 0,\r\n importeITF: 0,\r\n importeITFMostrar: 0,\r\n ITFAplicado: \"Cargo cuenta\",\r\n ITFCancelacion: 0,\r\n maximoDepositos : 0,\r\n minimoDepositos : 0,\r\n montoAperturaITF: \"\",\r\n montoCancelacion: 0,\r\n totalAhorro: 0,\r\n totalMontoGanadoMostrar: 0,\r\n fechaActual: new Date(),\r\n fechaApertura: new Date(),\r\n fechaAperturaMin: new Date(),\r\n fechaAperturaMostrar: \"\",\r\n fechaCancelacionAnt: new Date(),\r\n fechaCancelacionAntMostrar: \"\",\r\n fechaCancelacion : new Date(),\r\n fechaFinCampaniaAhorroMSoles: new Date(),\r\n fechaFinCampaniaAhorroMDolares: new Date(),\r\n fechaFinCampaniaFondoJubilacionSoles: new Date(),\r\n showAhorromas: true,\r\n showExtraAhorro: false,\r\n showFondoJubilacion: false,\r\n showPlanAhorro: false,\r\n isITFEfectivo: false,\r\n isITFDepositoEfectivo: false,\r\n isCheckDepositos: false,\r\n isCheckProxMes: false,\r\n isProxMes: false,\r\n isDeshabilitarDepositos: true,\r\n isDeshabilitarCampanias: true,\r\n isCheckCampania: false,\r\n isDeshabilitarCheckCampania: false,\r\n anioBase: 0,\r\n estadoModal: false,\r\n estadoImprimir: false,\r\n showAlertCancelacion: false,\r\n diasTranscurridos : 0,\r\n fechaVencimiento : \"\",\r\n diaDeposito:\"\",\r\n fechaDepositoSimulacion: \"\",\r\n montoFinalPlazo:0,\r\n montoDepositoSimulacion: 0,\r\n isITFEfectivoSimulacion: false,\r\n importeITFDepositoSim: 0,\r\n ListaDepositos: [],\r\n ListaCalendarioCaptaciones: [],\r\n ListaInteresesInicial:[],\r\n totalInteresesApertura:0,\r\n TEACancelacion:{nTasaProd: 0, nSubTipo:0, nTasaMon:0, bNatural:0, nMonto:0, nPlazo:0, bCompromiso:0, cCodAge:\"\"},\r\n datosTEA: {nTEA: 0, nTEAIncentivo:0, nTasaProd: 0, nSubTipo:0, nTasaMon:0, bNatural:0, nMonto:0, nPlazo:0, bCompromiso:0, cCodAge:\"\"},\r\n limites:{nId:0, nProducto:0, nSubProducto: 0,nMoneda: 0,nPersoneria:0, nPlazoInicial:0,nPlazoFinal:0,nMontoInicial:0.0000,nMontoFinal:0.0000},\r\n valores:{rangoFin:0, rangoInicio:0, montoInicial: 0.00, montoFinal: 0.00},\r\n formErrors: {producto : \"\", agencia : \"\", moneda:\"\", plazo:\"\", montoAperturaITF: \"\", fechaApertura: \"\", montoApertura: \"\", fechaCancelacionAnt: \"\", tasaEspecial:\"\", numeroDepositos: \"\", montoDeposito: \"\", diaDeposito:\"\", planAhorro:\"\", ahorroMasResultado:\"\",cancelAntAhorroMas:\"\",seleccionarCampania:\"\",retiroInt:\"\",personeria:\"\"},\r\n informacion: {plazoInicial:\"\", plazoFinal: \"\", montoInicial: \"\", montoFinal: \"\"},\r\n comision: {nNumTrxLibreDia: 0, nNumTrxLibreMes: 0, nTipoCobroComision:0, cConsDescripcion:\"\", nMontoComision:0, nPorcComision:0, nMonedaComision:0, nMontoMinApertura:0, nMontoMinCuenta:0, nMontoMinDep:0, nMontoMinRet:0, nMontoMinComp:0, nMontoMinRent:0, nSaldPromed:0, nMontoComMant:0},\r\n parametros: {nProducto:0, nMoneda:0, nPersoneria:0, cOrdPag:\"0\", nMontoMinApert:0, nSaldoMin:0, cMovNro:\"\", nMontoMinDep:0, nMontoMinRet:0, nMontoMinRetOP:0, nSubtipo:0, nPlazoMin:0, nPlazoMax:0, nMontoMaxAper:0},\r\n datosResultado: {listaIntereses: [], fechaCancelacion: \"\", fechaVencimiento :\"\", interesGanado : 0, descripcionRetiroInteres: \"\" },\r\n datosPlanAhorro: {listaCalendarioPlanAhorro: [], fechaRenovacion : \"\", fechaCancelacion: \"\", totalAhorro: \"\", totalIncentivo: \"\", totalIntereses:\"\" },\r\n};\r\n\r\nconst reducer = (state = INITIAL_STATE, action) => {\r\n switch(action.type){\r\n case ActionTypes.FETCH_LOADING:\r\n return{\r\n ...state,\r\n loading: true,\r\n };\r\n \r\n case ActionTypes.FETCH_FAILURE:\r\n return{\r\n ...state,\r\n loading: false,\r\n error: true,\r\n };\r\n\r\n case ActionTypes.LIMPIAR_RESULTADO:\r\n return{\r\n ...state,\r\n datosResultado: {listaIntereses: [], fechaCancelacion: \"\", fechaVencimiento :\"\", interesGanado : 0, descripcionRetiroInteres: \"\" },\r\n tasaInteresMostrar: \"0\",\r\n totalAhorro: 0,\r\n totalMontoGanadoMostrar:0,\r\n montoFinalPlazo: 0,\r\n importeITFMostrar: 0,\r\n simulacion: false,\r\n loading: false,\r\n error: false,\r\n }\r\n\r\n\r\n case ActionTypes.LIMPIAR_DATOS:\r\n return{\r\n ...state,\r\n selectedTab: 'Resultado',\r\n selectedAgencia : 0,\r\n selectedMoneda: state.selectedProducto == 7 ? 1 : 0,\r\n selectedCampania:0,\r\n selectedPersoneria:0,\r\n selectedRetiroInt:0,\r\n tipoCampania:[],\r\n plazo: \"\",\r\n plazoInicio: 0,\r\n plazoInicioFJCampania: 361,\r\n tasaInteres: \"\",\r\n tasaEspecial:\"\",\r\n tasaCancelacion: 0,\r\n tasaInteresMostrar: \"0\",\r\n interesGanadoAnt : 0,\r\n montoApertura: \"\",\r\n montoApertura2:\"0.00\",\r\n interesGanado : 0,\r\n montoDepositoITF: \"\",\r\n importeDepositoITF: 0,\r\n montoDeposito: \"\",\r\n montoDeposito2: \"0.00\",\r\n interesGanadoCancelacion : 0,\r\n montoInicio: 0,\r\n montoMinimoDeposito : 0,\r\n numeroDepositos:\"\",\r\n nombreProducto: \"\",\r\n capitalDepositado : 0,\r\n importeITF: 0,\r\n importeITFMostrar:0,\r\n totalAhorro: 0,\r\n totalMontoGanadoMostrar: 0,\r\n ITFAplicado: \"Cargo cuenta\",\r\n maximoDepositos : 0,\r\n minimoDepositos : 0,\r\n montoAperturaITF: \"\",\r\n montoCancelacion: 0,\r\n fechaActual: new Date(),\r\n fechaAperturaMin: state.fechaActual.toISOString().slice(0,10) ,\r\n fechaApertura: state.fechaActual.toISOString().slice(0,10) ,\r\n fechaAperturaMostrar: \"\",\r\n fechaCancelacionAnt: new Date(),\r\n fechaCancelacionAntMostrar: \"\",\r\n fechaCancelacion : new Date(),\r\n ListaInteresesAnticipados: [],\r\n isITFEfectivo: false,\r\n isITFDepositoEfectivo: false,\r\n isCheckDepositos: false,\r\n isCheckProxMes: false,\r\n isDeshabilitarDepositos: true,\r\n isDeshabilitarCampanias: true,\r\n isCheckCampania: false,\r\n isDeshabilitarCheckCampania: state.selectedProducto == 7 ? true : false,\r\n isProxMes: false,\r\n isDeshabilitarTasaEspecial: true,\r\n estadoModal: false,\r\n estadoImprimir: false,\r\n showAlertCancelacion: false,\r\n simulacion: false,\r\n diasTranscurridos : 0,\r\n fechaVencimiento : \"\",\r\n diaDeposito:\"\",\r\n fechaDepositoSimulacion: \"\",\r\n montoDepositoSimulacion: 0,\r\n montoFinalPlazo: 0,\r\n isITFEfectivoSimulacion: false,\r\n importeITFDepositoSim: 0,\r\n tituloProducto: \"\",\r\n descripcionProducto : \"\",\r\n descripcionesProducto: [],\r\n ListaDepositos: [],\r\n ListaCalendarioCaptaciones: [],\r\n TEACancelacion:{nTasaProd: 0, nSubTipo:0, nTasaMon:0, bNatural:0, nMonto:0, nPlazo:0, bCompromiso:0, cCodAge:\"\"},\r\n datosTEA: {nTEA: 0, nTEAIncentivo:0, nTasaProd: 0, nSubTipo:0, nTasaMon:0, bNatural:0, nMonto:0, nPlazo:0, bCompromiso:0, cCodAge:\"\"},\r\n limites:{nId:0, nProducto:0, nSubProducto: 0,nMoneda: 0,nPersoneria:0, nPlazoInicial:0,nPlazoFinal:0,nMontoInicial:0.0000,nMontoFinal:0.0000},\r\n valores:{rangoFin:0, rangoInicio:0, montoInicial: 0.00, montoFinal: 0.00},\r\n formErrors: {producto : \"\", agencia : \"\", moneda:\"\",plazo:\"\", montoAperturaITF: \"\", fechaApertura: \"\", montoApertura: \"\", fechaCancelacionAnt: \"\", tasaEspecial:\"\", numeroDepositos: \"\", montoDeposito: \"\", diaDeposito:\"\", planAhorro:\"\", ahorroMasResultado:\"\",cancelAntAhorroMas:\"\",seleccionarCampania:\"\",retiroInt:\"\",personeria:\"\"},\r\n informacion: {plazoInicial:\"\", plazoFinal: \"\", montoInicial: \"\", montoFinal: \"\"},\r\n comision: {nNumTrxLibreDia: 0, nNumTrxLibreMes: 0, nTipoCobroComision:0, cConsDescripcion:\"\", nMontoComision:0, nPorcComision:0, nMonedaComision:0, nMontoMinApertura:0, nMontoMinCuenta:0, nMontoMinDep:0, nMontoMinRet:0, nMontoMinComp:0, nMontoMinRent:0, nSaldPromed:0, nMontoComMant:0},\r\n parametros: {nProducto:0, nMoneda:0, nPersoneria:0, cOrdPag:\"0\", nMontoMinApert:0, nSaldoMin:0, cMovNro:\"\", nMontoMinDep:0, nMontoMinRet:0, nMontoMinRetOP:0, nSubtipo:0, nPlazoMin:0, nPlazoMax:0, nMontoMaxAper:0},\r\n datosResultado: {listaIntereses: [], fechaCancelacion: \"\", fechaVencimiento :\"\", interesGanado : 0, descripcionRetiroInteres: \"\" },\r\n datosPlanAhorro: {listaCalendarioPlanAhorro: [], fechaRenovacion : \"\", fechaCancelacion: \"\", totalAhorro: \"\", totalIncentivo: \"\", totalIntereses:\"\" },\r\n }\r\n\r\n case ActionTypes.FETCH_PRODUCTOS_SUCCESS:\r\n return{\r\n ...state,\r\n productos: action.payload.filter(j => j.estado === 1),\r\n selectedProducto : action.payload.filter(j => j.value == 4)[0].value,\r\n tituloProducto: action.payload.filter(j => j.value == 4)[0].label,\r\n loading: false,\r\n error: false,\r\n };\r\n\r\n case ActionTypes.CARGAR_DESCRIPCIONES_SUCCESS:\r\n return{\r\n ...state,\r\n tituloProducto: state.productos.filter(j => j.value == 4)[0].label,\r\n descripcionProducto : action.payload.filter(j => j.value == 4)[0].label,\r\n descripcionesProducto : action.payload,\r\n }\r\n\r\n case ActionTypes.FETCH_AGENCIAS_SUCCESS:\r\n return{\r\n ...state,\r\n agencias: action.payload,\r\n selectedAgencia: 0,\r\n loading: false,\r\n error: false,\r\n };\r\n\r\n case ActionTypes.FETCH_TIPO_RETIRO_INT_SUCCESS:\r\n var listaTiposRetiroInt = action.payload.filter(j => j.estado == 1 && j.value !== 8);\r\n var listaTiposRetiroInt = state.selectedProducto == 7 ? action.payload.filter(j => j.estado == 1) : action.payload.filter(j => j.estado == 1 && j.value !== 8);\r\n \r\n return{\r\n ...state,\r\n tiposRetiroInt: listaTiposRetiroInt,\r\n selectedRetiroInt: 0,\r\n loading: false,\r\n error: false,\r\n };\r\n case ActionTypes.FETCH_PERSONERIA_SUCCESS:\r\n return{\r\n ...state,\r\n personerias: action.payload,\r\n selectedPersoneria: 0, \r\n loading: false,\r\n error: false,\r\n };\r\n case ActionTypes.FETCH_MONEDA_SUCCESS:\r\n return{\r\n ...state,\r\n tipoMoneda: action.payload.filter(j => j.estado == 1),\r\n selectedMoneda: 0,\r\n loading: false,\r\n error: false,\r\n };\r\n case ActionTypes.FETCH_CAMPANIA_SUCCESS:\r\n let errorC = state.formErrors;\r\n let isCheckCamp = false;\r\n let isDesCam = false;\r\n\r\n if(action.payload.length <= 0 )\r\n {\r\n errorC.seleccionarCampania = \"\"; \r\n }\r\n\r\n if(state.selectedProducto === 7)\r\n {\r\n isCheckCamp = action.payload.length <= 0 ? false : true;\r\n isDesCam = action.payload.length <= 0 ? true : false;\r\n }\r\n else\r\n { \r\n isCheckCamp = action.payload.length <= 0 ? false : state.isCheckCampania;\r\n isDesCam = action.payload.length <= 0 ? true : state.isDeshabilitarCampanias;\r\n }\r\n\r\n return{\r\n ...state,\r\n tipoCampania: action.payload,\r\n selectedCampania: action.payload.length <= 0 ? 0 : action.payload[0].value,\r\n isCheckCampania: isCheckCamp,\r\n isDeshabilitarCampanias: isDesCam,\r\n formError: errorC,\r\n loading: false,\r\n error: false,\r\n };\r\n case ActionTypes.OBTENER_LIMITES_SUCCESS:\r\n return{\r\n ...state,\r\n limites: action.payload,\r\n loading: false,\r\n error:false,\r\n };\r\n case ActionTypes.FETCH_COMISION_SUCCESS:\r\n let com = state.comision;\r\n var mInicio = state.montoInicio;\r\n if(action.payload[0] !== undefined)\r\n {\r\n com = action.payload[0]; \r\n }\r\n else{\r\n mInicio = 0;\r\n }\r\n return{\r\n ...state,\r\n comision: com,\r\n montoInicio: mInicio,\r\n loading: false,\r\n error:false,\r\n };\r\n\r\n case ActionTypes.OBTENER_PARAMETROS_SUCCESS:\r\n let val = state.valores;\r\n let para = action.payload[0];\r\n var plazoInicio = 0; \r\n if(para !== undefined)\r\n {\r\n val.rangoFin = para.nPlazoMax;\r\n plazoInicio = para.nPlazoMin;\r\n }\r\n\r\n var personeria = 0;\r\n var moneda = 0;\r\n\r\n if(state.selectedPersoneria === 0)\r\n {\r\n personeria = 1;\r\n }\r\n else\r\n {\r\n personeria = state.selectedPersoneria;\r\n }\r\n\r\n if(state.selectedMoneda === 0)\r\n {\r\n moneda = 1;\r\n }\r\n else\r\n {\r\n moneda = state.selectedMoneda;\r\n }\r\n\r\n let lim = state.limites.filter(j => j.nMoneda == moneda && j.nPersoneria == personeria)[0] ;\r\n //var plazoInicio = lim.nPlazoInicial; \r\n \r\n val.montoFinal = lim.nMontoFinal;\r\n var montoInicio = 0;\r\n var montoMinimoDeposito = 0;\r\n\r\n if(state.comision !== undefined)\r\n {\r\n montoInicio = state.comision.nMontoMinApertura;\r\n montoMinimoDeposito = state.comision.nMontoMinDep;\r\n }\r\n\r\n val.montoInicial = montoInicio;\r\n val.rangoInicio = plazoInicio;\r\n\r\n return{\r\n ...state,\r\n montoInicio: montoInicio,\r\n plazoInicio: plazoInicio,\r\n montoMinimoDeposito: montoMinimoDeposito,\r\n parametros: para,\r\n valores: val,\r\n maximoDepositos : (Number.parseFloat(val.rangoFin) / 30),\r\n minimoDepositos : (Number.parseFloat(val.rangoInicio) / 30),\r\n loading: false,\r\n error:false,\r\n };\r\n case ActionTypes.FETCH_TEA_SUCCESS:\r\n var tasaInt = 0;\r\n var TEAIncentivo = 0;\r\n let TEA = state.datosTEA;\r\n \r\n if( action.payload.length > 0)\r\n {\r\n TEA = action.payload[0];\r\n tasaInt = TEA.nTEA > 0 ? TEA.nTEA : 0;\r\n TEAIncentivo = TEA.nTEAIncentivo;\r\n }\r\n\r\n return{\r\n ...state,\r\n datosTEA: TEA,\r\n tasaInteres: tasaInt,\r\n TEAIncentivo: TEAIncentivo,\r\n loading: false,\r\n error:false,\r\n }\r\n \r\n case ActionTypes.FETCH_TEA_CANCELACION_SUCCESS:\r\n var tasaIntCan = 0;\r\n \r\n if( action.payload.length > 0)\r\n {\r\n tasaIntCan = action.payload[0].nTEA > 0 ? action.payload[0].nTEA : 0;\r\n }\r\n var tasaIntCancelacion = Number.parseFloat(tasaIntCan).toFixed(2);\r\n return{\r\n ...state,\r\n tasaCancelacion: tasaIntCancelacion,\r\n showAlertCancelacion: false,\r\n loading: false,\r\n error:false,\r\n }\r\n case ActionTypes.OBTENER_ITF_DEPOSITO_SUCCESS:\r\n var ImpITFDep = 0;\r\n if(state.montoDeposito >= 1000 && state.montoDeposito < 999999999.99)\r\n {\r\n ImpITFDep = action.payload[0].importeITF;\r\n }\r\n\r\n var montoDepITF = Number.parseFloat(state.montoDeposito).toFixed(2);\r\n \r\n return{\r\n ...state,\r\n montoDepositoITF: montoDepITF,\r\n importeDepositoITF: ImpITFDep,\r\n loading: false,\r\n error:false,\r\n }\r\n\r\n case ActionTypes.OBTENER_ITF_SUCCESS:\r\n\r\n var ImpITF = 0;\r\n var montoAper = state.montoApertura;\r\n if(montoAper === undefined || montoAper === \"\")\r\n { montoAper = 0;}\r\n \r\n if(montoAper >= 1000 && montoAper < 999999999.99)\r\n {\r\n ImpITF = action.payload[0].importeITF;\r\n }\r\n\r\n var montoAperITF = Number.parseFloat(montoAper).toFixed(2); \r\n \r\n return{\r\n ...state,\r\n montoAperturaITF: montoAperITF,\r\n importeITF: ImpITF,\r\n loading: false,\r\n error:false,\r\n }\r\n\r\n\r\n case ActionTypes.FETCH_IMPRIMIR_RESULTADO:\r\n\r\n var moneda = 0;\r\n var personeria = 0;\r\n var imp = false;\r\n\r\n moneda = (state.selectedMoneda === 0) ? 1 : state.selectedMoneda;\r\n personeria = (state.selectedPersoneria === 0) ? 1 : state.selectedPersoneria; \r\n\r\n if(state.simulacion)\r\n {\r\n imp = !state.estadoImprimir;\r\n }\r\n else\r\n {\r\n imp = false;\r\n }\r\n\r\n return{\r\n ...state,\r\n estadoImprimir: imp,\r\n selectedMoneda: moneda,\r\n selectedPersoneria: personeria,\r\n showAlertCancelacion: false,\r\n formErrors: {producto : \"\", agencia : \"\", moneda:\"\", plazo:\"\", montoAperturaITF: \"\", fechaApertura: \"\", montoApertura: \"\", fechaCancelacionAnt: \"\", tasaEspecial:\"\", numeroDepositos: \"\", montoDeposito: \"\", diaDeposito:\"\", planAhorro:\"\", ahorroMasResultado:\"\",cancelAntAhorroMas:\"\",seleccionarCampania:\"\",retiroInt:\"\",personeria:\"\"},\r\n }\r\n\r\n case ActionTypes.MOSTRAR_ALERTA_CANCELACION:\r\n return{\r\n ...state,\r\n showAlertCancelacion: true,\r\n }\r\n\r\n case ActionTypes.MOSTRAR_MODAL:\r\n return{\r\n ...state,\r\n estadoModal: !state.estadoModal,\r\n selectedTab: 'RESULTADO',\r\n };\r\n \r\n case ActionTypes.FETCH_CAMBIAR_ITF:\r\n return{\r\n ...state,\r\n importeITF: 0,\r\n montoApertura : action.payload,\r\n loading: false,\r\n error:false,\r\n };\r\n\r\n case ActionTypes.CAMBIAR_ITF_DEPOSITO:\r\n return{\r\n ...state,\r\n importeDepositoITF: 0,\r\n montoDeposito : action.payload,\r\n loading: false,\r\n error:false,\r\n };\r\n \r\n case ActionTypes.REINICIAR_SIMULACION:\r\n return{\r\n ...state,\r\n montoCancelacion: 0,\r\n diasTranscurridos: 0,\r\n interesGanadoCancelacion: 0,\r\n fechaCancelacionAnt: new Date(),\r\n montoFinalPlazo: 0,\r\n simulacion: false,\r\n };\r\n \r\n case ActionTypes.FETCH_SELECCIONAR_PROX_MES:\r\n return{\r\n ...state,\r\n isProxMes: !state.isProxMes,\r\n isCheckProxMes: !state.isCheckProxMes,\r\n loading: false,\r\n error:false,\r\n };\r\n \r\n case ActionTypes.FETCH_SELECCIONAR_ITF_SIMULACION:\r\n return{\r\n ...state,\r\n isITFEfectivoSimulacion: !state.isITFEfectivoSimulacion,\r\n }\r\n\r\n case ActionTypes.FETCH_SELECCIONAR_ITF_EFECTIVO:\r\n return{\r\n ...state,\r\n isITFEfectivo: !state.isITFEfectivo,\r\n ITFAplicado : !state.isITFEfectivo ? \"Efectivo\" : \"Cargo cuenta\",\r\n loading: false,\r\n error:false,\r\n };\r\n\r\n case ActionTypes.FETCH_SELECCIONAR_ITF_DEPOSITO_EFECTIVO:\r\n return{\r\n ...state,\r\n isITFDepositoEfectivo: !state.isITFDepositoEfectivo,\r\n loading: false,\r\n error: false,\r\n }\r\n\r\n case ActionTypes.FETCH_SELECCIONAR_DEPOSITOS:\r\n var errorTasaEsp = state.formErrors;\r\n\r\n return{\r\n ...state,\r\n isDeshabilitarDepositos: state.isCheckDepositos,\r\n isCheckDepositos: !state.isCheckDepositos,\r\n formError: errorTasaEsp,\r\n loading: false,\r\n error:false,\r\n };\r\n case ActionTypes.FETCH_SELECCIONAR_CAMPANIAS: \r\n let errorCamp = state.formErrors;\r\n if(state.isCheckCampania)\r\n {\r\n errorCamp.seleccionarCampania = \"\"; \r\n }\r\n return{\r\n ...state,\r\n isDeshabilitarCampanias:state.isCheckCampania,\r\n isCheckCampania: !state.isCheckCampania,\r\n formError: errorCamp,\r\n loading: false,\r\n error: false,\r\n };\r\n\r\n case ActionTypes.FETCH_CARGAR_FECHA_DEPOSITO_SIMULACION:\r\n return{\r\n ...state,\r\n fechaDepositoSimulacion: action.payload,\r\n }\r\n\r\n\r\n case ActionTypes.FETCH_CARGAR_FECHA_APERTURA:\r\n \r\n let error = state.formErrors;\r\n var today = new Date(); \r\n var fechaAper = \"\";\r\n var fechaA = \"\";\r\n\r\n if(action.payload === undefined || action.payload === null)\r\n {\r\n error.fechaApertura = \"Por favor ingrese una fecha válida.\"; \r\n }\r\n else\r\n {\r\n fechaAper = new Date(action.payload);\r\n\r\n var diadtFA = fechaAper.getDate();\r\n fechaAper = new Date(fechaAper.setDate(diadtFA+1));\r\n \r\n if(fechaAper.setHours(0,0,0,0) < today.setHours(0,0,0,0))\r\n {\r\n error.fechaApertura = \"La fecha no puede ser menor al día de hoy.\"; \r\n }\r\n else\r\n {\r\n fechaAper = (action.payload);\r\n fechaA = action.payload;\r\n error.fechaApertura = \"\"; \r\n }\r\n }\r\n \r\n return{\r\n ...state,\r\n fechaApertura: fechaA,\r\n fechaAperturaMostrar: fechaAper,\r\n formErrors: error,\r\n loading: false,\r\n error:false,\r\n };\r\n \r\n case ActionTypes.FETCH_CARGAR_FECHA_CANCELACION_ANT:\r\n var dFechaAper = state.fechaApertura; \r\n var errorFechaCan = state.formErrors;\r\n var fechaCan = action.payload.toISOString();\r\n\r\n if(action.payload.setHours(0,0,0,0) <= dFechaAper.setHours(0,0,0,0))\r\n {\r\n errorFechaCan.fechaCancelacionAnt = \"La fecha debe ser mayor a la fecha de apertura.\"; \r\n }\r\n else\r\n {\r\n errorFechaCan.fechaCancelacionAnt = \"\"; \r\n }\r\n\r\n return{\r\n ...state,\r\n fechaCancelacionAnt: action.payload,\r\n fechaCancelacionAntMostrar: fechaCan.slice(0,10),\r\n formErrors: errorFechaCan,\r\n loading: false,\r\n error:false,\r\n };\r\n \r\n case ActionTypes.FETCH_CARGAR_DATOS:\r\n return{\r\n ...state,\r\n };\r\n case ActionTypes.FETCH_SELECTED_TAB:\r\n \r\n return{\r\n ...state,\r\n selectedTab: action.payload,\r\n };\r\n case ActionTypes.FETCH_SELECT_PRODUCTO:\r\n\r\n var errorProd = state.formErrors;\r\n errorProd.producto = \"\";\r\n\r\n var prod = Number.parseInt(action.payload);\r\n\r\n return {\r\n ...state,\r\n showPlanAhorro: prod === 2 ? true : false,\r\n showAhorromas: prod === 4 ? true : false,\r\n showExtraAhorro: prod === 5 ? true : false,\r\n showFondoJubilacion: prod === 7 ? true : false,\r\n selectedProducto: prod,\r\n tituloProducto: state.productos.filter(j => j.value == action.payload)[0].label,\r\n isDeshabilitarMoneda : (prod === 2 || prod === 7 ) ? true : false,\r\n isDeshabilitarCampanias: prod === 7 ? false : true,\r\n isDeshabilitarCheckCampania: prod === 7 ? true : false,\r\n selectedMoneda : (prod === 2 || prod === 7 ) ? 1 : 0,\r\n selectedCampania: 0,\r\n etiquetaTotalAhorro : (prod === 2) ? \"Interés + incentivo ganado al final del plazo\": \"Interés ganado\", \r\n formErrors : errorProd,\r\n loading: false,\r\n error:false,\r\n };\r\n\r\n case ActionTypes.FETCH_SELECT_AGENCIA:\r\n\r\n var errorAgen = state.formErrors;\r\n errorAgen.agencia = \"\";\r\n return {\r\n ...state,\r\n selectedAgencia: action.payload,\r\n formErrors : errorAgen,\r\n loading: false,\r\n error:false,\r\n };\r\n\r\n case ActionTypes.FETCH_SELECT_MONEDA:\r\n var errores = state.formErrors;\r\n errores.montoApertura = \"\";\r\n errores.plazo = \"\";\r\n errores.montoAperturaITF= \"\";\r\n errores.fechaApertura = \"\";\r\n errores.fechaCancelacionAnt= \"\";\r\n errores.tasaEspecial = \"\";\r\n errores.moneda = \"\";\r\n\r\n return {\r\n ...state,\r\n selectedMoneda: action.payload,\r\n formErrors: errores,\r\n loading: false,\r\n error:false,\r\n };\r\n case ActionTypes.FETCH_SELECT_PERSONERIA:\r\n var errorPersoneria = state.formErrors;\r\n errorPersoneria.personeria = \"\";\r\n return {\r\n ...state,\r\n selectedPersoneria: action.payload,\r\n formErrors: errorPersoneria,\r\n loading: false,\r\n error:false,\r\n };\r\n case ActionTypes.FETCH_SELECT_RETIRO_INT:\r\n var errorRet = state.formErrors;\r\n errorRet.retiroInt = \"\";\r\n return {\r\n ...state,\r\n selectedRetiroInt: action.payload,\r\n formErrors: errorRet,\r\n loading: false,\r\n error:false,\r\n };\r\n\r\n case ActionTypes.FETCH_SELECT_CAMPANIA:\r\n return {\r\n ...state,\r\n selectedCampania: action.payload,\r\n loading: false,\r\n error:false,\r\n };\r\n\r\n case ActionTypes.MOSTRAR_ERRORES:\r\n var erroresForm = action.payload;\r\n return {\r\n ...state,\r\n formErrors: erroresForm,\r\n loading: false,\r\n error:true,\r\n };\r\n\r\n case ActionTypes.VALIDAR_MONTO_APERTURA:\r\n var datosMontoApertura = action.payload;\r\n var errores = state.formErrors;\r\n var simboloMoneda = \"\";\r\n\r\n if( Number.parseInt( state.selectedProducto) === 7 || Number.parseInt( state.selectedProducto) === 2)\r\n {\r\n simboloMoneda = \"S/\";\r\n }\r\n else{\r\n simboloMoneda = Number.parseInt(state.selectedMoneda) === 1 ? \"S/\": \"$ \";\r\n }\r\n \r\n errores.montoApertura = \"\";\r\n\r\n if(datosMontoApertura.monto < state.valores.montoInicial)\r\n {\r\n errores.montoApertura = \"El monto de apertura debe ser mayor o igual a \" + simboloMoneda + formatNumber(state.valores.montoInicial) + \".\" ; \r\n }\r\n if(datosMontoApertura.monto > state.valores.montoFinal)\r\n {\r\n errores.montoApertura = \"El monto de apertura debe ser menor o igual a \" + simboloMoneda + formatNumber(state.valores.montoFinal) + \".\"\r\n }\r\n\r\n return{\r\n ...state,\r\n montoAperturaITF: datosMontoApertura.montoAperturaITF,\r\n montoApertura: datosMontoApertura.monto,\r\n montoApertura2: datosMontoApertura.montoApertura2,\r\n importeITF: datosMontoApertura.importeITF,\r\n formErrors : errores,\r\n loading: false,\r\n error:false,\r\n }\r\n\r\n case ActionTypes.VALIDAR_MONTO_DEPOSITO:\r\n\r\n var datosMontoDeposito = action.payload;\r\n var errores = state.formErrors;\r\n\r\n errores.montoDeposito = datosMontoDeposito.montoDeposito < state.montoMinimoDeposito ? \"El monto de depósito debe ser mayor o igual a S/ \" + formatNumber(state.montoMinimoDeposito) +\".\" : \"\"\r\n\r\n return{\r\n ...state,\r\n montoDeposito: datosMontoDeposito.montoDeposito,\r\n montoDeposito2: datosMontoDeposito.montoDeposito2,\r\n formErrors : errores,\r\n loading: false,\r\n error:false,\r\n }\r\n \r\n case ActionTypes.HANDLE_CHANGE:\r\n const {name, value} = action.payload.target;\r\n let formError = state.formErrors;\r\n\r\n let nplazo = 0;\r\n let nITFEfectivoApertura =0; \r\n let nMontoApertura = 0;\r\n let nTasaEspecial = 0;\r\n var nDepositos = state.numeroDepositos;\r\n var nMontoDeposito = state.montoDeposito;\r\n var nDiaDeposito = state.diaDeposito;\r\n\r\n switch(name) {\r\n case \"plazo\":\r\n formError.plazo = \"\";\r\n if(value < state.plazoInicio && state.selectedProducto !== 2 )\r\n { formError.plazo = \"El plazo debe ser mayor o igual a \" + state.plazoInicio + \" días.\" ;}\r\n if(value > state.valores.rangoFin && state.selectedProducto !== 2 && state.valores.rangoFin > 0)\r\n { formError.plazo = \"El plazo debe ser menor o igual a \" + state.valores.rangoFin + \" días.\" ;}\r\n if(value < state.plazoInicioFJCampania && state.selectedProducto == 7 && state.isCheckCampania)\r\n { formError.plazo = \"El plazo debe ser mayor o igual a \" + state.plazoInicioFJCampania + \" días.\" ;}\r\n \r\n nplazo = value\r\n nITFEfectivoApertura = state.montoAperturaITF\r\n nMontoApertura = state.montoApertura\r\n nTasaEspecial = state.tasaEspecial\r\n break;\r\n case \"montoAperturaITF\":\r\n formError.montoAperturaITF = value <= 0 ? \"El ITF tiene que ser mayor a 0.\" : \"\"\r\n nplazo = state.plazo\r\n nITFEfectivoApertura = value\r\n nMontoApertura = state.montoApertura\r\n nTasaEspecial = state.tasaEspecial\r\n break;\r\n case \"TasaEspecial\":\r\n formError.tasaEspecial = value <= 0 ? \"La tasa especial debe ser mayor a 0.\" : \"\"\r\n nplazo = state.plazo\r\n nITFEfectivoApertura = state.montoAperturaITF\r\n nMontoApertura = state.montoApertura\r\n nTasaEspecial = value\r\n break;\r\n case \"NumeroDepositos\":\r\n formError.numeroDepositos = \"\"\r\n if( Number.parseInt(state.selectedProducto) === 4)\r\n {\r\n if(Number.parseInt(value) < 0)\r\n { formError.numeroDepositos = \"El número de depósitos debe ser mayor o igual a 0.\";} \r\n }\r\n else\r\n {\r\n if(Number.parseInt(value) < state.minimoDepositos)\r\n { formError.numeroDepositos = \"El número de depósitos no puede ser menor que el número de depósitos mínimo que es: \" + state.minimoDepositos + \".\";} \r\n if(Number.parseInt(value) > state.maximoDepositos)\r\n { formError.numeroDepositos = \"El número de depósitos no puede ser mayor que el número de depósitos máximo que es: \" + state.maximoDepositos + \".\";}\r\n }\r\n nplazo = state.plazo\r\n nITFEfectivoApertura = state.montoAperturaITF\r\n nMontoApertura = state.montoApertura\r\n nTasaEspecial = state.tasaEspecial\r\n nDepositos = value\r\n break;\r\n case \"DiaDeposito\":\r\n formError.diaDeposito = Number.parseInt(value) > 31 ? \"Fecha incorrecta.\" : \"\"\r\n nplazo = state.plazo\r\n nITFEfectivoApertura = state.montoAperturaITF\r\n nMontoApertura = state.montoApertura\r\n nTasaEspecial = state.tasaEspecial\r\n nDiaDeposito = value\r\n break;\r\n default:\r\n break;\r\n }\r\n \r\n return{\r\n ...state,\r\n plazo : nplazo,\r\n montoAperturaITF: nITFEfectivoApertura,\r\n montoApertura: nMontoApertura,\r\n tasaEspecial: nTasaEspecial,\r\n numeroDepositos: nDepositos,\r\n montoDeposito: nMontoDeposito,\r\n diaDeposito : nDiaDeposito,\r\n formErrors : formError,\r\n loading: false,\r\n error:false,\r\n\r\n }\r\n case ActionTypes.OBTENER_INTERESES_PF_SUCCESS:\r\n var listaIntereses = action.payload;\r\n let dResultados = state.datosResultado;\r\n var fechaCancelacion = listaIntereses[listaIntereses.length - 1].dFechaCalculo;\r\n var fechaVencimiento = listaIntereses[listaIntereses.length - 1].dFechaCalculo;\r\n var interesGanado = listaIntereses[listaIntereses.length - 1].nInteresAcumulado;\r\n var nombCampaniaFJ = \"\";\r\n var aplicaCampaniaFJ = 0;\r\n \r\n listaIntereses.forEach( function(item, indice, array) {\r\n array[indice].dFechaCalculo = item.dFechaCalculo.slice(0,10);\r\n if (Number.parseInt(state.selectedProducto) == 7 || Number.parseInt(state.selectedProducto) == 5 || Number.parseInt(state.selectedProducto) == 4) //7 FONDO JUBILACION //5 EXTRAAHORRO //4 AHORROMAS\r\n {\r\n switch (Number.parseInt(state.selectedRetiroInt)) {\r\n // case 6:\r\n // if (item.nId === array[array.length - 1].nId)\r\n // {\r\n // // array[indice].descripcionRetiroInteres = \"Depositado a cuenta de ahorros relacionada al plazo fijo.\";\r\n // }\r\n // break;\r\n // case 8: \r\n // if (item.nId === array[0].nId)\r\n // {\r\n // // array[indice].descripcionRetiroInteres = \"Depositado a cuenta de ahorros relacionada al plazo fijo.\";\r\n // }\r\n // break;\r\n case 4:\r\n // array[indice].descripcionRetiroInteres = \"Depositado a cuenta de ahorros relacionado al plazo fijo.\";\r\n if (!state.isCheckDepositos) {\r\n array[indice].nInteresAcumulado = 0.00;\r\n }\r\n break;\r\n case 5:\r\n // array[indice].descripcionRetiroInteres = \"Depositado a cuenta de ahorros relacionado al plazo fijo.\";\r\n if (!state.isCheckDepositos) {\r\n array[indice].nInteresAcumulado = 0.00;\r\n }\r\n break;\r\n default:\r\n array[indice].descripcionRetiroInteres = \"\";\r\n break;\r\n }\r\n //CALCULAMOS LA DIFERENCIA DE DÍAS\r\n if (item.nId === array[0].nId) {\r\n let fecha2 = new Date(array[indice].dFechaCalculo);\r\n let fechaApertura = new Date(state.fechaApertura);\r\n array[indice].diastranscurridos = restaFechas(fecha2, fechaApertura.setDate(fechaApertura.getDate()-1));\r\n }\r\n else if (indice < listaIntereses.length - 1) {\r\n \r\n let fecha1 = new Date(array[indice - 1].dFechaCalculo);\r\n let fecha2 = new Date(array[indice].dFechaCalculo);\r\n array[indice].diastranscurridos = restaFechas(fecha2, fecha1);\r\n }\r\n else if (item.nId === array[array.length - 1].nId) {\r\n \r\n let fecha1 = new Date(array[indice - 1].dFechaCalculo);\r\n let fecha2 = new Date(array[indice].dFechaCalculo);\r\n let días = restaFechas(fecha2.setDate(fecha2.getDate()-1), fecha1);\r\n array[indice].diastranscurridos = días;\r\n } \r\n }\r\n if(Number.parseInt(state.selectedProducto) == 7)\r\n {\r\n nombCampaniaFJ = state.selectedCampania == 0 ? \"\" : state.tipoCampania.filter(j => j.value == state.selectedCampania)[0].label;\r\n nombCampaniaFJ = nombCampaniaFJ == undefined ? \"\" : nombCampaniaFJ.toUpperCase(); \r\n aplicaCampaniaFJ = nombCampaniaFJ !== \"\" ? 1 : 0;\r\n }\r\n\r\n });\r\n\r\n dResultados.listaIntereses = listaIntereses;\r\n dResultados.fechaCancelacion = fechaCancelacion.slice(0,10);\r\n dResultados.fechaVencimiento = fechaVencimiento.slice(0,10);\r\n dResultados.interesGanado = Number.parseFloat(interesGanado).toFixed(2); \r\n var montoFinalPlazoAcum = (state.montoFinalPlazo == \"0\" || state.montoFinalPlazo == undefined || state.montoFinalPlazo == 0) ? state.montoApertura: state.montoFinalPlazo;\r\n var montoFinalPlazo = Number.parseFloat(interesGanado) + Number.parseFloat(montoFinalPlazoAcum);\r\n \r\n return{\r\n ...state,\r\n datosResultado: dResultados,\r\n totalAhorro: Number.parseFloat(interesGanado).toFixed(2),\r\n importeITF : state.importeITF,\r\n importeITFMostrar: state.importeITF,\r\n montoFinalPlazo : Number.parseFloat(montoFinalPlazo).toFixed(2),\r\n totalMontoGanadoMostrar: Number.parseFloat(montoFinalPlazo).toFixed(2),\r\n nombreProducto: aplicaCampaniaFJ == 1 ? nombCampaniaFJ : state.productos.filter(j => j.value == state.selectedProducto)[0].label,\r\n aplicaCampania: aplicaCampaniaFJ,\r\n loading: false,\r\n error: false,\r\n simulacion:true,\r\n\r\n }\r\n\r\n case ActionTypes.GENERAR_LISTA_DEPOSITOS :\r\n var ITFDeposito = 0.00;\r\n var listaDepositosAM = state.ListaDepositos;\r\n listaDepositosAM.push({Fila: listaDepositosAM.length +1 ,FechaDeposito : state.fechaApertura , MontoDeposito : state.montoApertura, MontoDepositoITF : state.montoApertura, ITFDeposito : ITFDeposito, PlazoDeposito : state.plazo, TasaDeposito : state.tasaInteresMostrar, IntereseAcumulado : Number.parseFloat(state.datosResultado.interesGanado),TipoOperacion:\"APERTURA*\"})\r\n var totalAhorro = listaDepositosAM.reduce((sum,item) => sum + item.IntereseAcumulado , 0); \r\n var totalDepositos = listaDepositosAM.reduce((sum,item) => sum + item.MontoDeposito , 0); \r\n var total = Number.parseFloat(totalAhorro) + Number.parseFloat(totalDepositos);\r\n let totalAhorroInteresesApertura=totalAhorro\r\n if (state.selectedRetiroInt == 4 || state.selectedRetiroInt == 5) { //SOLO LIBRE O MENSUAL\r\n state.datosResultado.listaIntereses.forEach(function(item,indice,array){ array[indice].nInteresAcumulado=0.00;})\r\n }\r\n return{\r\n ...state,\r\n ListaInteresesInicial:state.datosResultado.listaIntereses,\r\n totalInteresesApertura:totalAhorroInteresesApertura,\r\n totalMontoGanadoMostrar: Number.parseFloat(total).toFixed(2) , \r\n ListaDepositos: listaDepositosAM,\r\n totalAhorro: Number.parseFloat(totalAhorro).toFixed(2),\r\n }\r\n\r\n case ActionTypes.AGREGAR_ITEM_DEPOSITO:\r\n var dataLista = action.payload;\r\n var listaDepositosAM = state.ListaDepositos;\r\n\r\n listaDepositosAM.push({Fila: dataLista.Fila ,\r\n FechaDeposito : dataLista.FechaDeposito , \r\n MontoDeposito : dataLista.MontoDeposito,\r\n MontoDepositoITF : dataLista.MontoDepositoITF,\r\n ITFDeposito : dataLista.ITFDeposito,\r\n PlazoDeposito : dataLista.PlazoDeposito,\r\n TasaDeposito : dataLista.TasaDeposito,\r\n IntereseAcumulado : dataLista.IntereseAcumulado,\r\n TipoOperacion:\"DEPÓSITO\", \r\n });\r\n var totalAhorro = listaDepositosAM.reduce((sum,item) => sum + item.IntereseAcumulado , 0); \r\n\r\n var dResult = state.datosResultado;\r\n dResult.interesGanado = Number.parseFloat(totalAhorro).toFixed(2);\r\n \r\n var totalDepositos = listaDepositosAM.reduce((sum,item) => sum + item.MontoDeposito , 0); \r\n var total = Number.parseFloat(totalAhorro) + Number.parseFloat(totalDepositos); \r\n \r\n return{\r\n ...state,\r\n ListaDepositos: listaDepositosAM,\r\n totalAhorro: Number.parseFloat(totalAhorro).toFixed(2),\r\n totalMontoGanadoMostrar: Number.parseFloat(total).toFixed(2), \r\n datosResultado: dResult,\r\n formErrors: {producto : \"\", agencia : \"\", moneda: \"\" , plazo:\"\", montoAperturaITF: \"\", fechaApertura: \"\", montoApertura: \"\", fechaCancelacionAnt: \"\", tasaEspecial:\"\", numeroDepositos: \"\", montoDeposito: \"\", diaDeposito:\"\", planAhorro:\"\", ahorroMasResultado:\"\",cancelAntAhorroMas:\"\",seleccionarCampania:\"\", retiroInt:\"\",personeria:\"\"},\r\n\r\n }\r\n\r\n case ActionTypes.OBTENER_INTERESES_PF_CANCELACION_SUCCESS:\r\n \r\n var listaInteresesAnticipados = action.payload;\r\n var interesGanadoAnt = listaInteresesAnticipados[listaInteresesAnticipados.length - 1].nInteresAcumulado;\r\n \r\n var montoAperITF= Number.parseFloat(state.montoAperturaITF);\r\n \r\n var montoCanc = (montoAperITF + interesGanadoAnt) - (state.isITFEfectivo ? (Number.parseFloat(state.importeITF).toFixed(2)) : 0);\r\n var montoCancelacion = Number.parseFloat(montoCanc).toFixed(2);\r\n return{\r\n ...state,\r\n diasTranscurridos: state.TEACancelacion.nPlazo,\r\n interesGanadoCancelacion: Number.parseFloat(interesGanadoAnt).toFixed(2),\r\n montoCancelacion: montoCancelacion,\r\n ListaInteresesAnticipados: listaInteresesAnticipados,\r\n loading: false,\r\n error:false,\r\n }\r\n\r\n case ActionTypes.SET_VALORES_CANCELACION_AHORROMAS:\r\n return{\r\n ...state,\r\n montoCancelacion: Number.parseFloat(action.payload.montoCancelacion).toFixed(2), \r\n capitalDepositado : action.payload.capitalDepositado, \r\n interesGanadoAnt : action.payload.interesGanadoAnt,\r\n ITFCancelacion: action.payload.ITFCancelacion,\r\n interesGanado: action.payload.interesGanado, \r\n }\r\n\r\n case ActionTypes.SET_VALORES_SIMULACION_AHORROMAS: \r\n var nombCampania = action.payload.aplicaCampania ? state.tipoCampania.filter(j => j.value == action.payload.selectedCampania)[0].label: \"\";\r\n nombCampania = nombCampania == undefined ? \"\" : nombCampania.toUpperCase(); \r\n return{\r\n ...state,\r\n fechaCancelacion: action.payload.fechaCancelacion, \r\n fechaVencimiento: action.payload.fechaVencimiento, \r\n interesGanado: action.payload.interesGanado, \r\n tasaInteresMostrar: action.payload.tasaInteresMostrar,\r\n nombreProducto: action.payload.aplicaCampania ? nombCampania : state.productos.filter(j => j.value == state.selectedProducto)[0].label,\r\n ListaDepositos: [],\r\n }\r\n\r\n case ActionTypes.OBTENER_TASA_PLAN_AHORRO:\r\n return{\r\n ...state,\r\n TEAIncentivo : action.payload.TEAIncentivo,\r\n tasaInteres: action.payload.tasaInteres, \r\n tasaInteresMostrar: action.payload.tasaInteresMostrar,\r\n loading: false,\r\n error: false,\r\n }\r\n\r\n case ActionTypes.OBTENER_ANIO_BASE:\r\n return{\r\n ...state,\r\n anioBase: action.payload[0].nConsSisValor\r\n }\r\n\r\n case ActionTypes.OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_SOLES:\r\n return{\r\n ...state,\r\n fechaFinCampaniaAhorroMSoles: action.payload[0].nConsSisValor\r\n }\r\n\r\n case ActionTypes.OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_DOLARES:\r\n return{\r\n ...state,\r\n fechaFinCampaniaAhorroMDolares: action.payload[0].nConsSisValor\r\n }\r\n\r\n case ActionTypes.OBTENER_TASA_INTERES:\r\n\r\n var tasaInt = Number.parseFloat(action.payload).toFixed(2);\r\n return{\r\n ...state,\r\n tasaInteresMostrar: tasaInt,\r\n loading: false,\r\n error:false,\r\n }\r\n\r\n case ActionTypes.GENERAR_CALENDARIO_SUCCESS:\r\n var lista = action.payload.lista;\r\n let errorPA = state.formErrors;\r\n\r\n errorPA = {...errorPA, planAhorro: action.payload.error};\r\n\r\n lista.forEach( function(item, indice, array) {\r\n array[indice].fechaLiminte = item.fechaLiminte.slice(0,10);\r\n });\r\n\r\n var datosPA = state.datosPlanAhorro;\r\n\r\n datosPA.listaCalendarioPlanAhorro = lista;\r\n datosPA.fechaRenovacion = lista[0].fechaRenovacion;\r\n datosPA.fechaCancelacion = lista[0].fechaCancelacion;\r\n\r\n var totalAhorro = lista.reduce((sum,item) => sum + item.monto , 0);\r\n var totalIncentivo = lista.reduce((sum,item) => sum + item.interesIncentivo , 0);\r\n var totalIntereses = lista.reduce((sum,item) => sum + item.interes , 0);\r\n datosPA.totalAhorro = Number.parseFloat(totalAhorro).toFixed(2); \r\n datosPA.totalIncentivo = Number.parseFloat(totalIncentivo).toFixed(2);\r\n datosPA.totalIntereses = Number.parseFloat(totalIntereses).toFixed(2);\r\n\r\n var dResultado = state.datosResultado;\r\n totalIntereses = totalIntereses + totalIncentivo;\r\n dResultado.interesGanado = Number.parseFloat(totalIntereses).toFixed(2);\r\n dResultado.fechaCancelacion = lista[0].fechaCancelacion;\r\n var montoFinalPlazo = Number.parseFloat(totalAhorro).toFixed(2);\r\n\r\n var totalDepositos = lista.reduce((sum,item) => sum + item.monto , 0);\r\n var total = Number.parseFloat(totalIntereses) + Number.parseFloat(totalAhorro) ; \r\n\r\n return{\r\n ...state,\r\n datosPlanAhorro: datosPA,\r\n datosResultado: dResultado,\r\n montoFinalPlazo: montoFinalPlazo,\r\n formErrors : errorPA,\r\n totalAhorro: Number.parseFloat(totalIntereses).toFixed(2),\r\n totalMontoGanadoMostrar: Number.parseFloat(total).toFixed(2), \r\n importeITFMostrar: state.importeITF,\r\n simulacion: true,\r\n loading: false,\r\n console: false,\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\nexport default reducer;","import { createStore, applyMiddleware } from 'redux';\r\nimport ReduxThunk from 'redux-thunk';\r\n\r\nimport reducers from './reducers';\r\n\r\nconst store = createStore(reducers,applyMiddleware(ReduxThunk));\r\n\r\nexport default store;","import React from \"react\";\r\nimport {connect} from \"react-redux\";\r\nimport LogoCajaIca from \"../../images/caja-red.svg\"\r\n\r\nconst Cabecera = () => (\r\n
\r\n
\r\n
\r\n

Simulador Plazo Fijo

\r\n
\r\n
\r\n \"Caja\r\n
\r\n
\r\n
\r\n)\r\n\r\nconst mapStateToProps = state => ({\r\n\r\n})\r\n\r\nconst mapDispatchToProps = dispatch =>({})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps) (Cabecera)","import React from \"react\"\r\nimport {connect} from \"react-redux\"\r\nimport '../estilos/estilosPlazoFijo.css';\r\n\r\nconst PiePagina = ({productos}) => (\r\n
\r\n
\r\n
\r\n
\r\n

La empresa tiene la obligación de difundir información de conformidad con la Ley N° 28587 y \r\n sus modificatorias, así como el Reglamento de Gestión de Conducta de Mercado del Sistema Financiero (Res. SBS N° 3274-2017). \r\n El servicio de transferencias interbancarias vía CCE, tiene un horario especial, lo que deberá tener en cuenta, en caso utilice \r\n esta simulación. \r\n\r\n

\r\n

Nota: Esta simulación está afecta al ITF (0.005%)\r\n

\r\n \r\n

\r\n El cálculo del interés generado en este simulador es referencial. Para mayor información consulte en nuestras \r\n agencias, que gustosamente lo atenderemos ante cualquier consulta.\r\n

\r\n\r\n
\r\n
\r\n
\r\n
\r\n)\r\n\r\nconst mapStateToProps = state => ({\r\n productos : state.productos\r\n})\r\n\r\nconst mapDispatchToProps = dispatch =>({})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps) (PiePagina)\r\n\r\n","export const environment = {\r\n\r\n urlService: 'https://mi.cajaica.pe/simuladorplazofijoservices/',\r\n urlSubDominio: '', \r\n PUBLIC_URL:'/SimuladorPlazoFijo',\r\n RECAPTCHA_KEY : '6LdILkEqAAAAAIkEkHCaTZAdTEx6eRayFRcFWZ3k'\r\n}","import {ActionTypes} from './types'\r\nimport axios from \"axios\";\r\nimport {restaFechas, validarIntegridadCalendario, validarErrorPlanAhorro, validarErrorAhorroMas, validarDeposito, validarSeleccionarCampania, validarAplicaCampaniaDepositos,\r\n validarCancelacionAntAhorroMas, validarErrorSimulacion, validarCancelacionAnt, soloNumero, sumarDiasFecha,formatoCorrectoFecha} from './validations';\r\nimport {environment} from './environment.js';\r\n\r\nconst fetchLoading = () => {\r\n return {\r\n type: ActionTypes.FETCH_LOADING\r\n }\r\n}\r\n\r\nconst fetchFailure = error => {\r\n return {\r\n type: ActionTypes.FETCH_FAILURE,\r\n payload: error,\r\n };\r\n}\r\n\r\nconst LimpiarDatos = () => {\r\n return{\r\n type: ActionTypes.LIMPIAR_DATOS,\r\n }\r\n}\r\n\r\nconst LimpiarResultado = () => {\r\n return{\r\n type: ActionTypes.LIMPIAR_RESULTADO,\r\n }\r\n}\r\n\r\nconst fetchProductosSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_PRODUCTOS_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchAgenciasSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_AGENCIAS_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchTipoRetiroInteresesSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_TIPO_RETIRO_INT_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchTipoMonedaSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_MONEDA_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchTipoCampaniaSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_CAMPANIA_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchPersoneriasSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_PERSONERIA_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnObtenerLimitesSimulacionSuccess = data => {\r\n return {\r\n type: ActionTypes.OBTENER_LIMITES_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnObtenerComisionOperacionSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_COMISION_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnObtenerParametrosSuccess = data => {\r\n return {\r\n type: ActionTypes.OBTENER_PARAMETROS_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnObtenerAnioBase = data => {\r\n return {\r\n type: ActionTypes.OBTENER_ANIO_BASE,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnObtenerFechaFinCampaniaAhorromasSoles = data =>{\r\n return{\r\n type: ActionTypes.OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_SOLES,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnObtenerFechaFinCampaniaAhorromasDolares = data => {\r\n return{\r\n type: ActionTypes.OBTENER_FECHA_FIN_CAMPANIA_AHORROMAS_DOLARES,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnObtenerInteresesPlazoFijoSuccess = data => {\r\n return {\r\n type: ActionTypes.OBTENER_INTERESES_PF_SUCCESS,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnGenerarCalendarioSuccess = data => {\r\n return {\r\n type: ActionTypes.GENERAR_CALENDARIO_SUCCESS,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnObtenerInteresesPlazoFijoCancelacionSuccess = data => {\r\n return {\r\n type: ActionTypes.OBTENER_INTERESES_PF_CANCELACION_SUCCESS,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnObtenerTasaInteresMostrar = data => {\r\n return {\r\n type: ActionTypes.OBTENER_TASA_INTERES,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnObtenerTasaEfetivaAnualSuccess = data => {\r\n return {\r\n type: ActionTypes.FETCH_TEA_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnObtenerTasaEfetivaAnualCancelacionSuccess = data =>{\r\n\r\n return {\r\n type: ActionTypes.FETCH_TEA_CANCELACION_SUCCESS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnMostrarModal = data => {\r\n return {\r\n type: ActionTypes.MOSTRAR_MODAL,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnObtenerTasaIncentivoPlanAhorroSuccess = data => {\r\n return {\r\n type: ActionTypes.OBTENER_TASA_PLAN_AHORRO,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst cambiarITFApertura = data => {\r\n return {\r\n type: ActionTypes.FETCH_CAMBIAR_ITF,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnHandleChangeMontoDeposito = data => {\r\n return {\r\n type: ActionTypes.CAMBIAR_ITF_DEPOSITO,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnValidarMontoApertura = data => {\r\n return {\r\n type: ActionTypes.VALIDAR_MONTO_APERTURA,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnValidarMontoDeposito = data => {\r\n return {\r\n type: ActionTypes.VALIDAR_MONTO_DEPOSITO,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst OnMostrarErrores = data => {\r\n return {\r\n type: ActionTypes.MOSTRAR_ERRORES,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnSeleccionarProxMes= data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECCIONAR_PROX_MES,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchSeleccionarITFEfectivo= data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECCIONAR_ITF_EFECTIVO,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchSeleccionarITFDepositoEfectivo= data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECCIONAR_ITF_DEPOSITO_EFECTIVO,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchSeleccionarDepositos = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECCIONAR_DEPOSITOS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchSeleccionarCampanias = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECCIONAR_CAMPANIAS,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchCargarFechaApertura = data => {\r\n return {\r\n type: ActionTypes.FETCH_CARGAR_FECHA_APERTURA,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst fetchCargarFechaDepositoSimulacion = data => {\r\n return{\r\n type: ActionTypes.FETCH_CARGAR_FECHA_DEPOSITO_SIMULACION,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst fetchCargarFechaCancelacionAnt = data => {\r\n return {\r\n type: ActionTypes.FETCH_CARGAR_FECHA_CANCELACION_ANT,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst OnReiniciarSimulacion = () => {\r\n return {\r\n type: ActionTypes.REINICIAR_SIMULACION,\r\n };\r\n}\r\n\r\nconst fetchCargarDatos = () => {\r\n return {\r\n type: ActionTypes.FETCH_CARGAR_DATOS,\r\n }\r\n}\r\n\r\nconst fetchSelectProducto = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECT_PRODUCTO,\r\n payload: data\r\n }\r\n}\r\n\r\nconst fetchSelectAgencia = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECT_AGENCIA,\r\n payload: data \r\n }\r\n}\r\n\r\nconst fetchSelectMoneda = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECT_MONEDA,\r\n payload: data \r\n }\r\n}\r\n\r\nconst fetchSelectPersoneria = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECT_PERSONERIA,\r\n payload: data \r\n }\r\n}\r\n\r\nconst fetchSelectRetiroInt = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECT_RETIRO_INT,\r\n payload: data\r\n }\r\n}\r\n\r\nconst fetchSelectCampania = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECT_CAMPANIA,\r\n payload: data \r\n }\r\n}\r\n\r\nconst OnObtenerImporteSuccess = data => {\r\n return {\r\n type: ActionTypes.OBTENER_ITF_SUCCESS,\r\n payload: data\r\n }\r\n}\r\n\r\nconst OnObtenerImporteDepositoSuccess = data => {\r\n return {\r\n type: ActionTypes.OBTENER_ITF_DEPOSITO_SUCCESS,\r\n payload: data\r\n }\r\n}\r\n\r\nconst OnHandleChange = data => {\r\n return{\r\n type: ActionTypes.HANDLE_CHANGE,\r\n payload: data\r\n }\r\n}\r\n\r\nconst valoresCancelacionAhorroMas = data => {\r\n return{\r\n type: ActionTypes.SET_VALORES_CANCELACION_AHORROMAS,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst valoresSimulacionAhorroMas = data =>{\r\n return{\r\n type: ActionTypes.SET_VALORES_SIMULACION_AHORROMAS,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst generarListaDepositos = () =>{\r\n return{\r\n type: ActionTypes.GENERAR_LISTA_DEPOSITOS,\r\n }\r\n}\r\n\r\nconst agregarItemDeposito = (item) => \r\n{\r\n return {\r\n type :ActionTypes.AGREGAR_ITEM_DEPOSITO,\r\n payload: item,\r\n }\r\n}\r\n\r\nconst OnimprimirResultados = data => {\r\n return{\r\n type: ActionTypes.FETCH_IMPRIMIR_RESULTADO,\r\n payload: data,\r\n }\r\n}\r\n \r\nconst OnMostrarAlertaCancelacion = () =>{\r\n return{\r\n type: ActionTypes.MOSTRAR_ALERTA_CANCELACION,\r\n }\r\n}\r\n\r\nexport const mostrarModal = () => {\r\n return dispatch => {\r\n dispatch(OnMostrarModal())\r\n }\r\n}\r\n\r\nexport const validarSimulacion = (datos) => {\r\n \r\n var error = false;\r\n \r\n var errores = validarErrorSimulacion(datos);\r\n if(errores !== \"\")\r\n {\r\n error = true;\r\n }\r\n\r\n return async dispatch => {\r\n\r\n if(error)\r\n {\r\n await(dispatch(OnMostrarErrores(errores)))\r\n }\r\n else\r\n {\r\n await(dispatch(reiniciarSimulacion()))\r\n await(dispatch(iniciarSimulacion(datos)))\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\nexport const iniciarSimulacion = (datos) =>{ \r\n var TEA = datos.tasaInteres;\r\n return async (dispatch) => {\r\n await dispatch(OnObtenerTasaInteresMostrar(TEA))\r\n await dispatch(obtenerInteresesPlazoFijo(datos)) \r\n }\r\n}\r\n\r\nexport const validarSimulacionAhorroMas = (datos) => {\r\n var error = false;\r\n\r\n var errores = validarErrorAhorroMas(datos);\r\n if(errores !== \"\")\r\n {\r\n error = true;\r\n }\r\n\r\n return async (dispatch) => {\r\n if(error)\r\n {\r\n await(dispatch(OnMostrarErrores(errores)))\r\n }\r\n else\r\n { \r\n await(dispatch(reiniciarSimulacion()))\r\n\r\n var plazo = ( datos.plazo === undefined ||datos.plazo === \"\") ? 0 : datos.plazo;\r\n var montoApertura = datos.montoApertura === \"\" ? 0 : datos.montoApertura;\r\n var monto = montoApertura <= 999999999.99 ? montoApertura : 0;\r\n var montoTasa = monto;\r\n var TasaInteresMostrar = 0;\r\n var Tea = undefined; \r\n var aplicaCampania = datos.isCheckCampania && datos.selectedCampania != 0 ? 1 : 0;\r\n var idCampania=( datos.selectedCampania === undefined || datos.seleccionarCampania ==0 )? 0 : datos.selectedCampania; \r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/TEA/233/').concat(datos.selectedProducto,'/',datos.selectedMoneda,'/', datos.selectedPersoneria,'/', montoTasa, '/',plazo, '/0/', datos.selectedAgencia,'/',aplicaCampania,'/',idCampania) )\r\n await dispatch(OnObtenerTasaEfetivaAnualSuccess(response.data))\r\n Tea = response.data[0]\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n \r\n if(Tea === undefined)\r\n {\r\n TasaInteresMostrar = 0;\r\n }\r\n else\r\n {\r\n TasaInteresMostrar = Tea.nTEA;\r\n }\r\n \r\n var fecha = datos.fechaApertura;\r\n \r\n var selectedProducto = Number.parseInt(datos.selectedProducto);\r\n var selectedRetiroInt = Number.parseInt(datos.selectedRetiroInt);\r\n var listaIntereses = [];\r\n var fechaCancelacion = \"\";\r\n var fechaVencimiento = \"\";\r\n var interesGanado = 0;\r\n var dataSimulacionAhorroMas = datos;\r\n\r\n try { \r\n const response2 = await axios.get(environment.urlService.concat('api/intereses/').concat(TasaInteresMostrar,'/', datos.plazo,'/', fecha, '/',datos.montoApertura,'/', selectedProducto, '/', selectedRetiroInt) )\r\n \r\n await dispatch(OnObtenerInteresesPlazoFijoSuccess(response2.data))\r\n listaIntereses = response2.data; \r\n fechaCancelacion = listaIntereses[listaIntereses.length - 1].dFechaCalculo;\r\n fechaVencimiento = listaIntereses[listaIntereses.length - 1].dFechaCalculo;\r\n interesGanado = listaIntereses[listaIntereses.length - 1].nInteresAcumulado; \r\n } catch (err) {\r\n console.error(err);\r\n } \r\n\r\n datos = {...dataSimulacionAhorroMas, fechaCancelacion: fechaCancelacion, fechaVencimiento: fechaVencimiento, interesGanado: interesGanado, tasaInteresMostrar: TasaInteresMostrar, aplicaCampania: aplicaCampania, selectedCampania: datos.selectedCampania} \r\n await dispatch(valoresSimulacionAhorroMas(datos));\r\n await dispatch(generarListaDepositos());\r\n\r\n if(datos.isCheckDepositos)\r\n {\r\n await(dispatch(mostrarModal(datos.estadoModal)));\r\n }\r\n \r\n }\r\n }\r\n}\r\n\r\nexport const validarSimulacionPlanAhorro = (datos) => {\r\n\r\n var error = false;\r\n \r\n var errores = validarErrorPlanAhorro(datos);\r\n if(errores !== \"\")\r\n {\r\n error = true;\r\n }\r\n\r\n var plazo1 = datos.numeroDepositos * 30;\r\n var data = datos;\r\n datos = {...data, plazo: plazo1};\r\n\r\n return async (dispatch) => {\r\n if(error)\r\n {\r\n await(dispatch(OnMostrarErrores(errores)))\r\n }\r\n else\r\n {\r\n await(dispatch(reiniciarSimulacion()))\r\n await(dispatch(obtenerTasaIncentivoPlanAhorro(datos)))\r\n }\r\n }\r\n}\r\n\r\nexport const onValidarDatosCalendario = (datos) => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/validarcalendario/').concat( '/') )\r\n if(response.data)\r\n {dispatch(generarCalendario(datos))}\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n}\r\n\r\nexport const generarCalendario = (datos) => {\r\n var fecha = datos.fechaApertura;\r\n var isProxMes = datos.isProxMes ? 1: 0;\r\n var datosPlanA = {listaCalendarioPlanAhorro: [], fechaRenovacion : \"\", fechaCancelacion: \"\", totalAhorro: \"\", totalIncentivo: \"\", totalIntereses:\"\", error: \"\" };\r\n\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try{\r\n const response = await axios.get(environment.urlService.concat('api/CalendarioPlanAhorro/').concat(datos.montoDeposito,\"/\",datos.numeroDepositos,'/', fecha,'/',datos.diaDeposito ,'/',isProxMes,'/', datos.montoApertura , '/', datos.tasaInteres, '/', datos.TEAIncentivo) )\r\n var array = response.data;\r\n var ultimaFecha = array[array.length-1].fechaPago;\r\n var fecha1 = new Date(ultimaFecha);\r\n var fecha2 = new Date(datos.fechaApertura);\r\n var diferenciaDias = restaFechas(fecha1 , fecha2);\r\n var cantidadDiasBase = array[array.length-1].numeroDeposito * 30;\r\n var diferenciaDiasFinal = cantidadDiasBase - diferenciaDias;\r\n var numeroDiasMinimo = 0;\r\n\r\n const resDiasMin = await axios.get(environment.urlService.concat('api/Parametro/').concat(2000,'/',2087))\r\n if(resDiasMin.data[0])\r\n {\r\n numeroDiasMinimo = resDiasMin.data[0].nParValor;\r\n }\r\n \r\n if (diferenciaDiasFinal < numeroDiasMinimo)\r\n {\r\n datosPlanA.error =\"Existe mucha diferencia de días entre el primer depósito y el segundo depósito.\";\r\n }\r\n else\r\n {\r\n ultimaFecha = formatoCorrectoFecha(ultimaFecha);\r\n var fechaRenovacionFinal = sumarDiasFecha(ultimaFecha, diferenciaDiasFinal);\r\n array.forEach( function(item, indice, arr) {\r\n arr[indice].fechaRenovacion = fechaRenovacionFinal.toISOString().slice(0,10);\r\n arr[indice].fechaCancelacion = fechaRenovacionFinal.toISOString().slice(0,10);\r\n });\r\n datosPlanA.error = \"\";\r\n }\r\n\r\n datosPlanA.lista = array;\r\n\r\n dispatch(OnGenerarCalendarioSuccess(datosPlanA))\r\n \r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n}\r\n\r\nexport const obtenerInteresesPlazoFijo = (datos) => {\r\n var TEA = datos.tasaInteres;\r\n var fecha = datos.fechaApertura;\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n \r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/intereses/').concat(TEA,'/', datos.plazo,'/', fecha, '/',datos.montoApertura,'/',datos.selectedProducto, '/', datos.selectedRetiroInt) )\r\n dispatch(OnObtenerInteresesPlazoFijoSuccess(response.data))\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n}\r\n\r\nexport const obtenerInteresesPlazoFijoCancelacion = (datos) => {\r\n var fecha = datos.fechaApertura.toISOString().slice(0,10);\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/intereses/').concat(datos.tasaCancelacion, '/', datos.TEACancelacion.nPlazo,'/',fecha, '/',datos.montoApertura,'/',datos.selectedProducto, '/', datos.selectedRetiroInt) )\r\n dispatch(OnObtenerInteresesPlazoFijoCancelacionSuccess(response.data))\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n}\r\n\r\nexport const obtenerInteresesPlazoFijoCancelacionAhorroMas = (datos) => {\r\n var capitalDepositado = \"\";\r\n capitalDepositado = datos.ListaDepositos.reduce((sum,item) => sum + Number.parseFloat(item.MontoDepositoITF) , 0); \r\n var plazoCancelacion = restaFechas(datos.fechaCancelacionAnt, datos.fechaApertura);\r\n var fecha = datos.fechaApertura.toISOString().slice(0,10);\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n var interesGanadoAnt = 0;\r\n var listaInt = [];\r\n var interesGanado = 0;\r\n var ITFCancelacion = 0;\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/intereses/').concat(datos.tasaCancelacion, '/', datos.TEACancelacion.nPlazo,'/',fecha, '/',datos.montoApertura,'/',datos.selectedProducto, '/', datos.selectedRetiroInt) )\r\n listaInt = response.data;\r\n interesGanado = listaInt[listaInt.length-1].nInteresAcumulado;\r\n interesGanadoAnt = interesGanado;\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n if(capitalDepositado >= 1000.00)\r\n {\r\n try {\r\n const response2 = await axios.get(environment.urlService.concat('api/Importe/').concat(capitalDepositado) ) \r\n ITFCancelacion = response2.data[0].importeITF ;\r\n\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n\r\n var montoCancelacion = capitalDepositado + interesGanadoAnt - ITFCancelacion;\r\n var datosCancelacion = datos;\r\n datosCancelacion = {...datos, montoCancelacion: montoCancelacion, \r\n capitalDepositado : capitalDepositado, interesGanadoAnt : interesGanadoAnt,\r\n ITFCancelacion: ITFCancelacion, interesGanado: interesGanado, ListaInteresesAnticipados: listaInt};\r\n await dispatch(valoresCancelacionAhorroMas(datosCancelacion));\r\n }\r\n}\r\n\r\nexport const cancelacionAnticipada = (datos) =>{\r\n\r\n return dispatch => { \r\n \r\n var error = false;\r\n var errores = validarCancelacionAnt(datos);\r\n if(errores !== \"\")\r\n {\r\n error = true;\r\n }\r\n\r\n var diasTranscurrido = restaFechas(datos.fechaCancelacionAnt, datos.fechaApertura);\r\n var monto = datos.montoApertura <= 999999999.99 ? datos.montoApertura : 0;\r\n var montotasa = monto;\r\n\r\n let TEACanc = datos.TEACancelacion;\r\n\r\n if(diasTranscurrido >= 180)\r\n { \r\n TEACanc.nTasaProd = 233;\r\n TEACanc.nSubTipo = datos.selectedProducto;\r\n }\r\n else\r\n {\r\n TEACanc.nTasaProd = 232;\r\n TEACanc.nSubTipo = 1;\r\n }\r\n\r\n TEACanc.nTasaMon = datos.selectedMoneda;\r\n TEACanc.bNatural = datos.selectedPersoneria;\r\n TEACanc.nMonto = montotasa;\r\n TEACanc.nPlazo = diasTranscurrido;\r\n TEACanc.bCompromiso = 0;\r\n TEACanc.cCodAge = datos.selectedAgencia;\r\n\r\n datos = {...datos , TEACancelacion:TEACanc};\r\n\r\n if(error)\r\n {\r\n dispatch(OnMostrarErrores(errores))\r\n }\r\n else\r\n {\r\n dispatch(calcularCancelacionAnticipada(datos))\r\n }\r\n }\r\n}\r\n\r\nexport const cancelacionAnticipadaAhorroMas = (datos) =>{\r\n\r\n var error = false;\r\n var errores = validarCancelacionAntAhorroMas(datos);\r\n if(errores !== \"\")\r\n {\r\n error = true;\r\n }\r\n\r\n let TEACanc = datos.TEACancelacion;\r\n TEACanc.nTasaProd = 232;\r\n TEACanc.nSubTipo = 1;\r\n TEACanc.nTasaMon = datos.selectedMoneda;\r\n TEACanc.bNatural = datos.selectedPersoneria;\r\n TEACanc.nMonto = 0;\r\n TEACanc.nPlazo = 0;\r\n TEACanc.bCompromiso = 0;\r\n TEACanc.cCodAge = datos.selectedAgencia;\r\n\r\n datos = {...datos , TEACancelacion:TEACanc};\r\n\r\n return dispatch => { \r\n \r\n if(error)\r\n {\r\n dispatch(OnMostrarErrores(errores))\r\n }\r\n else\r\n {\r\n dispatch(calcularCancelacionAnticipadaAhorroMas(datos))\r\n }\r\n }\r\n}\r\n\r\nexport const seleccionarProxMes = () => {\r\n return async dispatch => {\r\n await dispatch(OnSeleccionarProxMes())\r\n await dispatch(LimpiarResultado())\r\n }\r\n}\r\n\r\nexport const seleccionarITFEfectivo = (datos) => {\r\n return async dispatch => {\r\n await dispatch(fetchSeleccionarITFEfectivo())\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(obtenerImporte(datos.montoApertura))\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n }\r\n}\r\n\r\nexport const seleccionarITFDepositoEfectivo = (datos) =>{\r\n return async dispatch => {\r\n await dispatch(fetchSeleccionarITFDepositoEfectivo())\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(obtenerImporteDeposito(datos.montoDeposito))\r\n }\r\n}\r\n\r\nexport const seleccionarDepositos = () => {\r\n return async dispatch => {\r\n await dispatch(fetchSeleccionarDepositos())\r\n await dispatch(LimpiarResultado())\r\n }\r\n}\r\n\r\nexport const seleccionarCampanias = (datos, isValidReCAPTCHA) => {\r\n var error = false; \r\n var errores = validarSeleccionarCampania(datos);\r\n if(errores !== \"\")\r\n { error = true; }\r\n\r\n return async (dispatch,getState) => {\r\n if(error)\r\n {\r\n await(dispatch(OnMostrarErrores(errores)))\r\n await dispatch(fetchSeleccionarCampanias())\r\n }\r\n else\r\n {\r\n await dispatch(fetchSeleccionarCampanias())\r\n if(isValidReCAPTCHA){\r\n await dispatch(validarSimulacionAhorroMas(getState()))\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const cargarFechaApertura = (fecha) => {\r\n return async (dispatch) => {\r\n await dispatch(fetchCargarFechaApertura(fecha))\r\n await dispatch(LimpiarResultado());\r\n await dispatch(reiniciarSimulacion());\r\n }\r\n}\r\n\r\nexport const cargarFechaDepositoSimulacion = (fecha) => {\r\n return async (dispatch) => {\r\n await dispatch(fetchCargarFechaDepositoSimulacion(fecha))\r\n }\r\n}\r\n\r\nexport const reiniciarSimulacion = () => {\r\n return dispatch => {\r\n dispatch(OnReiniciarSimulacion())\r\n }\r\n}\r\n\r\nexport const cargarFechaCancelacionAnt = data => {\r\n return dispatch => {\r\n dispatch(fetchCargarFechaCancelacionAnt(data))\r\n }\r\n}\r\n\r\nexport const setSelectedTab = data => {\r\n return {\r\n type: ActionTypes.FETCH_SELECTED_TAB,\r\n payload: data,\r\n }\r\n}\r\n\r\nexport const Inicializar = (datos) => { \r\n return async(dispatch) => {\r\n await dispatch(fetchCargarDatos())\r\n await dispatch(LimpiarDatos())\r\n await dispatch(loadProductos())\r\n await dispatch(loadAgencias())\r\n await dispatch(loadPersonerias())\r\n await dispatch(loadTipoMoneda())\r\n await dispatch(loadTipoRetiroIntereses())\r\n await dispatch(obtenerAnioBase())\r\n //await dispatch(obtenerFechaFinCampaniaAhorromasSoles())\r\n //await dispatch(obtenerFechaFinCampaniaAhorromasDolares())\r\n datos = {...datos, selectedAgencia:0, selectedMoneda: 0, selectedPersoneria: 0, selectedProducto: 0 , selectedProducto: 0 }\r\n }\r\n}\r\n\r\nexport const cargarDatos = (datos) => { \r\n return async(dispatch) => { \r\n await dispatch(LimpiarDatos())\r\n }\r\n}\r\n\r\nexport const selectProducto = (producto,datos) => {\r\n let data = datos;\r\n datos = {...data, selectedProducto: producto}\r\n return async dispatch => {\r\n await dispatch(cargarDatos(datos)) \r\n await dispatch(fetchSelectProducto(producto))\r\n await dispatch(loadTipoRetiroIntereses())\r\n }\r\n}\r\n\r\nexport const selectAgencia = (agencia, datos)=> {\r\n var data = datos;\r\n datos = {...data, selectedAgencia: agencia}\r\n\r\n return async(dispatch) => {\r\n await dispatch(fetchSelectAgencia(agencia))\r\n await dispatch(LimpiarResultado())\r\n await dispatch(obtenerLimitesSimulacion(agencia, datos.selectedProducto))\r\n await dispatch(obtenerMontoPlazo(datos))\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n await dispatch(loadTipoCampania(datos))\r\n }\r\n}\r\n\r\nexport const selectMoneda = (moneda, datos) => {\r\n var data = datos;\r\n datos = {...data, selectedMoneda: moneda}\r\n return async(dispatch) => {\r\n await dispatch(fetchSelectMoneda(moneda))\r\n await dispatch(LimpiarResultado())\r\n await dispatch(obtenerLimitesSimulacion(datos.selectedAgencia, datos.selectedProducto))\r\n await dispatch(obtenerMontoPlazo(datos))\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n await dispatch(loadTipoCampania(datos))\r\n }\r\n}\r\n\r\nexport const selectPersoneria = (personeria,datos) => {\r\n var data = datos;\r\n datos = {...data, selectedPersoneria: personeria}\r\n return async dispatch => {\r\n await dispatch(fetchSelectPersoneria(personeria))\r\n await dispatch(LimpiarResultado())\r\n await dispatch(obtenerLimitesSimulacion(datos.selectedAgencia, datos.selectedProducto))\r\n await dispatch(obtenerMontoPlazo(datos))\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n await dispatch(loadTipoCampania(datos))\r\n }\r\n}\r\n\r\nexport const selectRetiroInt = (retiro,data) => {\r\n return async (dispatch) => {\r\n await dispatch(fetchSelectRetiroInt(retiro)) \r\n if (Number.parseInt(data.selectedRetiroInt) === 4 || Number.parseInt(data.selectedRetiroInt) === 5 || Number.parseInt(data.selectedRetiroInt) === 8) {\r\n if (Number.parseInt(retiro)===6 || Number.parseInt(retiro)===7) { \r\n await dispatch(LimpiarResultado())\r\n }\r\n }\r\n if (Number.parseInt(retiro)!==6 && Number.parseInt(retiro)!==7) { \r\n await dispatch(LimpiarResultado())\r\n } \r\n //await dispatch(reiniciarSimulacion())\r\n }\r\n}\r\n\r\nexport const SelectCampania = (campania) => {\r\n return async dispatch => {\r\n await dispatch(fetchSelectCampania(campania))\r\n await dispatch(reiniciarSimulacion())\r\n }\r\n}\r\n\r\nexport const imprimirResultados = (datos) =>{\r\n return dispatch => {\r\n dispatch(OnimprimirResultados())\r\n }\r\n} \r\n\r\nexport const imprimirCancelacion = (datos) =>{\r\n return dispatch => {\r\n if((Number.parseInt(datos.selectedProducto) === 4) && (datos.montoCancelacion <= 0))\r\n {\r\n dispatch(OnMostrarAlertaCancelacion())\r\n }\r\n else if(Number.parseInt(datos.selectedProducto) !== 4 && (datos.ListaInteresesAnticipados === undefined || datos.ListaInteresesAnticipados.length === 0))\r\n {\r\n dispatch(OnMostrarAlertaCancelacion())\r\n }\r\n else\r\n {\r\n dispatch(OnimprimirResultados())\r\n } \r\n } \r\n}\r\n\r\nexport const handleChange = event => {\r\n return dispatch => {\r\n event.persist();\r\n dispatch(OnHandleChange(event))\r\n dispatch(LimpiarResultado())\r\n }\r\n};\r\n\r\nexport const handleChangePlazo = (event,datos) => {\r\n var data = datos;\r\n datos = {...data, plazo: event.target.value}\r\n\r\n return async dispatch => {\r\n await dispatch(handleChange(event))\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n await dispatch(LimpiarResultado())\r\n await dispatch(loadTipoCampania(datos))\r\n }\r\n};\r\nexport const handleChangeNumeroDepositos = (event,datos) => {\r\n var nDepost = event.target.value;\r\n var plazo = nDepost * 30;\r\n var data = datos;\r\n datos = {...data, plazo: plazo}\r\n\r\n return async dispatch => {\r\n await dispatch(handleChange(event))\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(LimpiarResultado())\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n }\r\n};\r\n\r\nexport const handleChangeNumeroDepositosAhorroMas = (event,datos) => {\r\n return async dispatch => {\r\n await dispatch(handleChange(event))\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n await dispatch(LimpiarResultado())\r\n }\r\n};\r\nexport const handlePrueba = (event,datos) => {\r\n\r\n return async dispatch => {\r\n await dispatch(reiniciarSimulacion())\r\n }\r\n};\r\n\r\nexport const handleChangeMontoApertura = (event,datos) => {\r\n var monto = 0.00;\r\n var monto2 = \"\";\r\n var datosMontos =soloNumero(event,datos.montoApertura);\r\n\r\n if(datos.montoApertura == datosMontos.monto)\r\n {\r\n monto = datos.montoApertura;\r\n monto2 = datos.montoApertura2;\r\n }\r\n else{\r\n monto = (datosMontos.monto === \"\" || datosMontos.monto === undefined)? 0: datosMontos.monto;\r\n monto2 = (datosMontos.monto === \"\" || datosMontos.monto === undefined)? 0: datosMontos.montoMostrar; \r\n }\r\n let datosMA = datos;\r\n datos = {...datosMA, montoApertura: monto, montoApertura2: monto2 };\r\n return async dispatch => {\r\n await dispatch(validarMontoApertura(datos))\r\n await dispatch(cambiarITFApertura(monto))\r\n await dispatch(obtenerImporte(monto))\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(obtenerTasaEfetivaAnual(datos))\r\n await dispatch(LimpiarResultado())\r\n }\r\n}\r\n\r\nexport const validarMontoApertura = (datos) => {\r\n return async dispatch => {\r\n var ImpITF = 0;\r\n if(datos.montoApertura >= 1000 && datos.montoApertura< 999999999.99)\r\n {\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/Importe/').concat(datos.montoApertura) )\r\n ImpITF = response.data[0].importeITF;\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n \r\n } \r\n var datosApertura = {monto: datos.montoApertura, montoAperturaITF: datos.montoApertura, importeITF: Number.parseFloat(ImpITF).toFixed(2), montoApertura2: datos.montoApertura2 }\r\n await dispatch(OnValidarMontoApertura(datosApertura))\r\n } \r\n}\r\n\r\nexport const handleChangeMontoDeposito = (event,datos) => {\r\n\r\n var montoD = 0.00;\r\n var montoD2 = \"\";\r\n var datosMontosD =soloNumero(event,datos.montoDeposito);\r\n\r\n if(datos.montoDeposito == datosMontosD.monto)\r\n {\r\n montoD = datos.montoDeposito;\r\n montoD2 = datos.montoDeposito2;\r\n }\r\n else{\r\n montoD = (datosMontosD.monto === \"\" || datosMontosD.monto === undefined)? 0: datosMontosD.monto;\r\n montoD2 = (datosMontosD.monto === \"\" || datosMontosD.monto === undefined)? 0: datosMontosD.montoMostrar; \r\n }\r\n let datosMD = datos;\r\n datos = {...datosMD, montoDeposito: montoD, montoDeposito2: montoD2 };\r\n\r\n return async dispatch => {\r\n await dispatch(OnValidarMontoDeposito(datos))\r\n await dispatch(OnHandleChangeMontoDeposito(montoD))\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(LimpiarResultado())\r\n await dispatch(obtenerImporteDeposito(montoD)) \r\n }\r\n};\r\n\r\n\r\nexport const handleChangeMontoDepositoAM = (event,datos) => {\r\n\r\n var montoD = 0.00;\r\n var montoD2 = \"\";\r\n var datosMontosD =soloNumero(event,datos.montoDeposito);\r\n\r\n if(datos.montoDeposito == datosMontosD.monto)\r\n {\r\n montoD = datos.montoDeposito;\r\n montoD2 = datos.montoDeposito2;\r\n }\r\n else{\r\n montoD = (datosMontosD.monto === \"\" || datosMontosD.monto === undefined)? 0: datosMontosD.monto;\r\n montoD2 = (datosMontosD.monto === \"\" || datosMontosD.monto === undefined)? 0: datosMontosD.montoMostrar; \r\n }\r\n let datosMD = datos;\r\n datos = {...datosMD, montoDeposito: montoD, montoDeposito2: montoD2 };\r\n\r\n return async dispatch => {\r\n await dispatch(OnValidarMontoDeposito(datos))\r\n await dispatch(OnHandleChangeMontoDeposito(montoD))\r\n await dispatch(reiniciarSimulacion())\r\n await dispatch(obtenerImporteDeposito(montoD)) \r\n }\r\n};\r\n\r\nexport const loadProductos = () => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/constante/2505')) \r\n\r\n const tempArray = [];\r\n response.data.forEach((element) => { \r\n tempArray.push({ label: element.cConsDescripcion,value:element.nConsValor,estado:element.nConstEstado});\r\n }) \r\n dispatch(fetchProductosSuccess(tempArray))\r\n\r\n } catch (err) {\r\n console.log(err);\r\n } \r\n \r\n }\r\n}\r\n\r\nexport const loadAgencias = () => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/agencia/00'))\r\n\r\n const tempArray = [];\r\n response.data.forEach((element) => { \r\n tempArray.push({ label: element.cAgeDescripcion,value:element.cAgeCod});\r\n }) \r\n dispatch(fetchAgenciasSuccess(tempArray))\r\n\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n}\r\n\r\nexport const loadTipoRetiroIntereses = () => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n \r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/constante/2003')) \r\n\r\n const tempArray = [];\r\n response.data.forEach((element) => { \r\n tempArray.push({ label: element.cConsDescripcion,value:element.nConsValor,estado:element.nConstEstado});\r\n }) \r\n dispatch(fetchTipoRetiroInteresesSuccess(tempArray))\r\n\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n \r\n }\r\n}\r\n\r\nexport const loadPersonerias = () => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/constante/99501'))\r\n\r\n const tempArray = [];\r\n response.data.forEach((element) => { \r\n tempArray.push({ label: element.cConsDescripcion,value:element.nConsValor,estado:element.nConstEstado});\r\n }) \r\n dispatch(fetchPersoneriasSuccess(tempArray)) \r\n\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n}\r\n\r\nexport const loadTipoMoneda = () => {\r\n return dispatch => {\r\n dispatch(fetchLoading())\r\n return fetch(environment.urlService.concat('api/constante/1011'))\r\n .then(response => {\r\n if(response.ok){\r\n return response.json();\r\n }\r\n throw new Error(\"Error al cargar los datos\");\r\n })\r\n .then(json => {\r\n const tempArray = [];\r\n json.forEach((element) => { \r\n tempArray.push({ label: element.cConsDescripcion,value:element.nConsValor,estado:element.nConstEstado});\r\n }) \r\n dispatch(fetchTipoMonedaSuccess(tempArray))\r\n return tempArray\r\n })\r\n .catch(error => dispatch(fetchFailure(error)));\r\n }\r\n}\r\n\r\nexport const loadTipoCampania = (datos) => {\r\n var plazo = datos.plazo === \"\" ? 0 : datos.plazo;\r\n return dispatch => {\r\n dispatch(fetchLoading())\r\n return fetch(environment.urlService.concat('api/campania/').concat(datos.selectedMoneda,'/', datos.selectedProducto ,'/233/',datos.selectedAgencia,'/', datos.selectedPersoneria,'/',plazo) )\r\n .then(response => {\r\n if(response.ok){\r\n return response.json();\r\n }\r\n throw new Error(\"Error al cargar los datos\");\r\n })\r\n .then(json => {\r\n const tempArray = [];\r\n json.forEach((element) => { \r\n tempArray.push({ label: element.cNombreCampania,value:element.nIdCampania});\r\n }) \r\n dispatch(fetchTipoCampaniaSuccess(tempArray))\r\n return tempArray\r\n })\r\n .catch(error => dispatch(fetchFailure(error)));\r\n }\r\n}\r\n\r\nexport const obtenerAnioBase = () => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n \r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/constSistema/537'))\r\n dispatch(OnObtenerAnioBase(response.data))\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const obtenerFechaFinCampaniaAhorromasSoles = () => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n \r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/constSistema/1558'))\r\n dispatch(OnObtenerFechaFinCampaniaAhorromasSoles(response.data))\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const obtenerFechaFinCampaniaAhorromasDolares = () => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n \r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/constSistema/1585'))\r\n dispatch(OnObtenerFechaFinCampaniaAhorromasDolares(response.data))\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const obtenerLimitesSimulacion = (agencia, producto) => {\r\n return dispatch => {\r\n dispatch(fetchLoading())\r\n return fetch(environment.urlService.concat('api/limites/').concat(producto,'/',agencia) )\r\n .then(response => {\r\n if(response.ok){\r\n return response.json();\r\n }\r\n throw new Error(\"Error al cargar los datos\");\r\n })\r\n .then(json => {\r\n dispatch(OnObtenerLimitesSimulacionSuccess(json))\r\n return json\r\n })\r\n .catch(error => dispatch(fetchFailure(error))); \r\n }\r\n}\r\n\r\nexport const obtenerMontoPlazo = (datos) => {\r\n var personeria = 0;\r\n var moneda = 0;\r\n\r\n if(datos.selectedPersoneria === 0)\r\n {\r\n personeria = 1;\r\n }\r\n else\r\n {\r\n personeria = datos.selectedPersoneria;\r\n }\r\n \r\n if(datos.selectedMoneda === 0)\r\n {\r\n moneda = 1;\r\n }\r\n else\r\n {\r\n moneda = datos.selectedMoneda;\r\n }\r\n\r\n var data = datos;\r\n datos = { ...data, selectedMoneda:moneda, selectedPersoneria: personeria };\r\n \r\n return async(dispatch) => {\r\n await dispatch(obtenerComisionOperacion(datos.selectedMoneda, datos.selectedProducto, datos.selectedPersoneria, datos.selectedAgencia)) \r\n await dispatch(obtenerParametros(datos))\r\n } \r\n \r\n\r\n \r\n}\r\n\r\nexport const obtenerParametros = (datos) => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/ParametrosCaptac/233/').concat(datos.selectedMoneda,'/0/', datos.selectedPersoneria, '/', datos.selectedProducto)) \r\n dispatch(OnObtenerParametrosSuccess(response.data))\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n}\r\n\r\nexport const obtenerComisionOperacion = (moneda, producto, personeria, agencia) => { \r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/comision/').concat(moneda,'/',producto,'/', personeria,'/',agencia) )\r\n dispatch(OnObtenerComisionOperacionSuccess(response.data)) \r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n}\r\n\r\nexport const obtenerTasaEfetivaAnual = (datos) => {\r\n var plazo = ( datos.plazo === undefined ||datos.plazo === \"\") ? 0 : datos.plazo;\r\n var montoApertura = datos.montoApertura === \"\" ? 0 : datos.montoApertura;\r\n var monto = montoApertura <= 999999999.99 ? montoApertura : 0;\r\n var montoTasa = monto;\r\n let idCampania=( datos.selectedCampania === undefined || datos.seleccionarCampania ==0 )? 0 : datos.selectedCampania; \r\n // validar moneda y personería\r\n var personeria = 0;\r\n var moneda = 0;\r\n\r\n if(datos.selectedPersoneria === 0)\r\n {\r\n personeria = 1;\r\n }\r\n else\r\n {\r\n personeria = datos.selectedPersoneria;\r\n }\r\n \r\n if(datos.selectedMoneda === 0)\r\n {\r\n moneda = 1;\r\n }\r\n else\r\n {\r\n moneda = datos.selectedMoneda;\r\n }\r\n\r\n var aplicaCampania = datos.isCheckCampania && datos.selectedCampania != 0 ? 1 : 0;\r\n\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n \r\n const response = await axios.get(environment.urlService.concat('api/TEA/233/').concat(datos.selectedProducto,'/',moneda,'/', personeria,'/', montoTasa, '/',plazo, '/0/', datos.selectedAgencia, '/',aplicaCampania,'/',idCampania) )\r\n dispatch(OnObtenerTasaEfetivaAnualSuccess(response.data))\r\n\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n }\r\n}\r\n\r\nexport const obtenerTasaIncentivoPlanAhorro = (datos) => {\r\n var plazo = ( datos.plazo === undefined ||datos.plazo === \"\") ? 0 : datos.plazo;\r\n var montoApertura = datos.montoApertura === \"\" ? 0 : datos.montoApertura;\r\n var monto = montoApertura <= 999999999.99 ? montoApertura : 0;\r\n var montoTasa = monto;\r\n\r\n // validar moneda y personería\r\n var personeria = 0;\r\n var moneda = 0;\r\n \r\n if(datos.selectedPersoneria === 0)\r\n {\r\n personeria = 1;\r\n }\r\n else\r\n {\r\n personeria = datos.selectedPersoneria;\r\n }\r\n\r\n if(datos.selectedMoneda === 0)\r\n {\r\n moneda = 1;\r\n }\r\n else\r\n {\r\n moneda = datos.selectedMoneda;\r\n }\r\n\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n var Tea = undefined;\r\n var data = datos;\r\n var TasaInteresMostrar =0;\r\n var aplicaCampania = datos.isCheckCampania && datos.selectedCampania != 0 ? 1 : 0;\r\n let idCampania=datos.selectedCampania!=0 && datos.seleccionarCampania !=undefined ? datos.selectedCampania:0;\r\n\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/TEA/233/').concat(datos.selectedProducto,'/',moneda,'/', personeria,'/', montoTasa, '/',plazo, '/0/', datos.selectedAgencia,'/', aplicaCampania,'/',idCampania) )\r\n Tea = response.data[0]\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n\r\n if(Tea === undefined)\r\n {\r\n \r\n datos = {...data, TEAIncentivo : 0 , tasaInteres: 0, tasaInteresMostrar: TasaInteresMostrar} \r\n }\r\n else{\r\n TasaInteresMostrar = Tea.nTEA;\r\n datos = {...data, TEAIncentivo : Tea.nTEAIncentivo , tasaInteres: Tea.nTEA, tasaInteresMostrar: TasaInteresMostrar} \r\n }\r\n \r\n await(dispatch(OnObtenerTasaIncentivoPlanAhorroSuccess(datos))) \r\n if( validarIntegridadCalendario(datos.numeroDepositos, datos.diaDeposito, datos.montoDeposito, datos.montoApertura))\r\n { //OnValidarDatosCalendario\r\n await(dispatch(generarCalendario(datos)))\r\n \r\n }\r\n }\r\n}\r\n\r\nexport const calcularCancelacionAnticipada = (datos) => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/TEA/').concat( datos.TEACancelacion.nTasaProd,'/', datos.TEACancelacion.nSubTipo ,'/', datos.TEACancelacion.nTasaMon,'/', datos.TEACancelacion.bNatural,'/', datos.TEACancelacion.nMonto, '/', datos.TEACancelacion.nPlazo, '/0/', datos.TEACancelacion.cCodAge) )\r\n dispatch(OnObtenerTasaEfetivaAnualCancelacionSuccess(response.data))\r\n var TEA = response.data[0]\r\n let dato = datos;\r\n datos = {...dato, tasaCancelacion: TEA.nTEA}\r\n dispatch(obtenerInteresesPlazoFijoCancelacion(datos))\r\n } catch (err) {\r\n console.error(err);\r\n } \r\n \r\n }\r\n}\r\n\r\nexport const calcularCancelacionAnticipadaAhorroMas = (datos) => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n const response = await axios.get(environment.urlService.concat('api/TEA/').concat( datos.TEACancelacion.nTasaProd,'/', datos.TEACancelacion.nSubTipo ,'/', datos.TEACancelacion.nTasaMon,'/', datos.TEACancelacion.bNatural,'/', datos.TEACancelacion.nMonto, '/', datos.TEACancelacion.nPlazo, '/0/', datos.TEACancelacion.cCodAge) )\r\n await dispatch(OnObtenerTasaEfetivaAnualCancelacionSuccess(response.data))\r\n var TEA = response.data[0]\r\n let dato = datos;\r\n datos = {...dato, tasaCancelacion: TEA.nTEA}\r\n await dispatch(obtenerInteresesPlazoFijoCancelacionAhorroMas(datos)) \r\n }\r\n}\r\n\r\nexport const obtenerImporte = montoApertura => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n if(montoApertura === undefined || montoApertura === \"\")\r\n { montoApertura = 0;}\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/Importe/').concat(montoApertura) )\r\n dispatch(OnObtenerImporteSuccess(response.data)) \r\n } catch (err) {\r\n console.error(err);\r\n } \r\n } \r\n}\r\n\r\nexport const obtenerImporteDeposito = montoDeposito => {\r\n return async (dispatch) => {\r\n dispatch(fetchLoading())\r\n if(montoDeposito === undefined || montoDeposito === \"\")\r\n { montoDeposito = 0;}\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/Importe/').concat(montoDeposito) )\r\n dispatch(OnObtenerImporteDepositoSuccess(response.data)) \r\n } catch (err) {\r\n console.error(err);\r\n } \r\n } \r\n}\r\n\r\nexport const agregarDeposito = datos => {\r\n var error = false;\r\n\r\n var errores = validarDeposito(datos);\r\n if(errores !== \"\")\r\n {\r\n error = true;\r\n }\r\n\r\n return async (dispatch) => {\r\n if(error)\r\n {\r\n await(dispatch(OnMostrarErrores(errores)))\r\n }\r\n else\r\n {\r\n var fecha = datos.fechaDepositoSimulacion.toISOString().slice(0,10);\r\n //var fechaV = new Date (datos.fechaVencimiento);\r\n var fechaV = sumarDiasFecha(datos.fechaVencimiento, 1);\r\n var plazoDep = restaFechas(fechaV, datos.fechaDepositoSimulacion);\r\n var plazoDeposito = Number.parseInt(plazoDep);\r\n var TasaDeposito = 0;\r\n var Tea = undefined;\r\n var fechaCampania = datos.selectedMoneda == 2 ? datos.fechaFinCampaniaAhorroMDolares : datos.fechaFinCampaniaAhorroMSoles;\r\n let idCampania=( datos.selectedCampania === undefined || datos.seleccionarCampania ==0 )? 0 : datos.selectedCampania; \r\n\r\n //Validar fecha de campaña \r\n var aplicaCampania = 0;\r\n\r\n if(datos.isCheckCampania && datos.selectedCampania != 0 && datos.selectedProducto == 4)\r\n {\r\n //aplicaCampania = validarAplicaCampaniaDepositos(datos.fechaDepositoSimulacion, fechaCampania);\r\n aplicaCampania=1;\r\n }\r\n try {\r\n const response = await axios.get(environment.urlService.concat('api/TEA/233/').concat(datos.selectedProducto,'/',datos.selectedMoneda,'/', datos.selectedPersoneria,'/', datos.montoDepositoITF, '/',plazoDeposito, '/0/', datos.selectedAgencia, '/', aplicaCampania,'/',idCampania) )\r\n await dispatch(OnObtenerTasaEfetivaAnualSuccess(response.data))\r\n Tea = response.data[0] \r\n } catch (err) {\r\n console.error(err);\r\n } \r\n\r\n if(Tea === undefined)\r\n {\r\n TasaDeposito = 0;\r\n }\r\n else\r\n {\r\n TasaDeposito = Tea.nTEA > 0 ? Tea.nTEA : 0; \r\n }\r\n\r\n var listaIntereses = [];\r\n var interesGanado = 0;\r\n\r\n try {\r\n const response2 = await axios.get(environment.urlService.concat('api/intereses/').concat(TasaDeposito,'/', plazoDeposito,'/', fecha, '/',datos.montoDeposito,'/',datos.selectedProducto, '/', datos.selectedRetiroInt) )\r\n await dispatch(OnObtenerInteresesPlazoFijoSuccess(response2.data))\r\n listaIntereses = response2.data;\r\n interesGanado = listaIntereses[listaIntereses.length - 1].nInteresAcumulado;\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n var dataLista = [];\r\n dataLista = {Fila: datos.ListaDepositos.length +1 ,\r\n FechaDeposito : fecha , \r\n MontoDeposito : datos.montoDeposito , \r\n MontoDepositoITF : datos.montoDeposito, \r\n ITFDeposito : 0.00 ,\r\n PlazoDeposito : plazoDeposito, \r\n TasaDeposito : Number.parseFloat(TasaDeposito).toFixed(2) , \r\n IntereseAcumulado : interesGanado}\r\n \r\n await dispatch(agregarItemDeposito(dataLista)); \r\n }\r\n }\r\n}\r\n","import React, {Component,Fragment} from 'react';\r\nimport '../estilos/estilosPlazoFijo.css'\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { RiCalculatorLine } from \"react-icons/ri\";\r\nimport {connect} from \"react-redux\";\r\nimport * as actions from '../../app/store/actions';\r\n\r\nclass FechaCancelacion extends Component {\r\n\r\n componentDidMount(){\r\n \r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n Fecha de cancelación: \r\n
\r\n
\r\n this.props.cargarFechaCancelacionAnt(e)} locale = \"es\" dateFormat=\"dd-MM-yyyy\" />\r\n {this.props.formErrors.fechaCancelacionAnt.length > 0 && (\r\n \r\n {this.props.formErrors.fechaCancelacionAnt}\r\n )}\r\n
\r\n
\r\n {\r\n this.props.selectedProducto === 4 ? \r\n : \r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n estadoModal: state.estadoModal,\r\n productos: state.productos,\r\n fechaInicio: state.fechaInicio,\r\n fechaCancelacionAnt: state.fechaCancelacionAnt,\r\n fechaApertura: state.fechaApertura,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n isITFEfectivo: state.isITFEfectivo,\r\n importeITF: state.importeITF,\r\n formErrors: state.formErrors,\r\n TEACancelacion: state.TEACancelacion,\r\n selectedProducto: state.selectedProducto,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedPersoneria: state.selectedPersoneria,\r\n selectedMoneda: state.selectedMoneda,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n tasaCancelacion: state.tasaCancelacion,\r\n datosResultadoCancelacionAnt: state.datosResultadoCancelacionAnt,\r\n fechaVencimiento: state.fechaVencimiento,\r\n numeroDepositos: state.numeroDepositos,\r\n montoMinimoDeposito: state.montoMinimoDeposito,\r\n ListaDepositos: state.ListaDepositos, \r\n error: state.error,\r\n})\r\n\r\n\r\nexport default connect(mapStateToProps, actions) (FechaCancelacion)\r\n","import React, {Component} from 'react';\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport {connect} from \"react-redux\";\r\nimport * as actions from '../../app/store/actions';\r\n\r\nclass BotonImprimirCancelacion extends Component {\r\n\r\n componentDidMount(){\r\n\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n tipoMoneda: state.tipoMoneda,\r\n agencias:state.agencias,\r\n personerias: state.personerias,\r\n tiposRetiroInt:state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedMoneda: state.selectedMoneda,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n TEACancelacion: state.TEACancelacion,\r\n fechaCancelacionAnt: state.fechaCancelacionAnt,\r\n fechaApertura: state.fechaApertura,\r\n fechaAperturaMostrar: state.fechaAperturaMostrar,\r\n montoApertura: state.montoApertura,\r\n montoCancelacion: state.montoCancelacion,\r\n montoAperturaITF: state.montoAperturaITF,\r\n plazo:state.plazo,\r\n importeITF: state.importeITF,\r\n tasaCancelacion: state.tasaCancelacion,\r\n diasTranscurridos: state.diasTranscurridos,\r\n interesGanadoCancelacion: state.interesGanadoCancelacion,\r\n datosResultado: state.datosResultado,\r\n ITFAplicado: state.ITFAplicado,\r\n anioBase: state.anioBase,\r\n showAlertCancelacion: state.showAlertCancelacion,\r\n ListaInteresesAnticipados: state.ListaInteresesAnticipados,\r\n})\r\n\r\n\r\nexport default connect(mapStateToProps, actions) (BotonImprimirCancelacion)","import React, {Fragment} from 'react'\r\nimport '../estilos/estilosPlazoFijo.css';\r\n\r\nconst DatoCancelacion = (props) => {\r\n return (\r\n \r\n
\r\n
\r\n
{props.cabecera}
\r\n

{props.resultado}

\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\n\r\nexport default DatoCancelacion;","import React, {Component} from 'react'\r\nimport DatoCancelacion from './DatoCancelacion'\r\n\r\nexport default class DatosCancelacionAntExtraAhorro extends Component {\r\n\r\n render(){\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\n","import React, {Fragment} from 'react'\r\nimport '../estilos/estilosPlazoFijo.css';\r\n\r\nconst MensajeError = (datos) => {\r\n return (\r\n \r\n
\r\n

{datos.mensaje}

\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default MensajeError;\r\n\r\n\r\n\r\n\r\n","import React, {Component} from 'react';\r\nimport DatoCancelacion from './DatoCancelacion';\r\nimport MensajeError from './MensajeError';\r\nimport '../estilos/estilosPlazoFijo.css';\r\n\r\nexport default class DatosCancelacionAntAhorroMas extends Component {\r\n\r\n render(){\r\n return (\r\n
\r\n {\r\n this.props.datos.formErrors.cancelAntAhorroMas.length > 0 ? : null\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n}","import React, {Component} from 'react';\r\nimport FechaCancelacion from './FechaCancelacion';\r\nimport BotonImprimirCancelacion from './BotonImprimirCancelacion';\r\nimport * as actions from '../../app/store/actions';\r\nimport {connect} from 'react-redux';\r\nimport DatosCancelacionAntExtrahorro from './DatosCancelacionAntExtrahorro';\r\nimport DatosCancelacionAntAhorroMas from './DatosCancelacionAntAhorroMas';\r\nimport '../estilos/estilosPlazoFijo.css'\r\n\r\nclass DatosCancelacionAnt extends Component {\r\n render(){\r\n return (\r\n\r\n
\r\n
\r\n
\r\n
\r\n {this.props}\r\n \r\n {\r\n this.props.showAhorromas? : \r\n }\r\n\r\n\r\n {\r\n this.props.showAlertCancelacion?
\r\n Por favor primero realice la simulación.\r\n
\r\n : null\r\n\r\n }\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\nproductos: state.productos,\r\nselectedProducto: state.selectedProducto,\r\nestadoModal: state.estadoModal,\r\nselectedTab: state.selectedTab,\r\nshowAhorromas: state.showAhorromas,\r\nshowFondoJubilacion: state.showFondoJubilacion,\r\nshowExtraAhorro: state.showExtraAhorro,\r\nshowPlanAhorro: state.showPlanAhorro,\r\ntaps: state.taps,\r\nfechaCancelacionAnt: state.fechaCancelacionAnt,\r\nimporteITF: state.importeITF,\r\nTEACancelacion: state.TEACancelacion,\r\ntasaCancelacion: state.tasaCancelacion,\r\ndiasTranscurridos: state.diasTranscurridos,\r\ninteresGanadoCancelacion: state.interesGanadoCancelacion,\r\nshowAlertCancelacion: state.showAlertCancelacion,\r\nListaInteresesAnticipados: state.ListaInteresesAnticipados,\r\ncapitalDepositado: state.capitalDepositado,\r\ninteresGanadoAnt: state.interesGanadoAnt,\r\nITFCancelacion: state.ITFCancelacion,\r\nmontoCancelacion: state.montoCancelacion,\r\nformErrors: state.formErrors,\r\nerror: state.error,\r\n});\r\n\r\n\r\n\r\nexport default connect(mapStateToProps,actions)(DatosCancelacionAnt);","import React from \"react\"\r\nimport { connect } from \"react-redux\";\r\nimport {bindActionCreators} from 'redux';\r\nimport {setSelectedTab} from '../../app/store/actions';\r\n\r\nclass TabNav extends React.Component {\r\n \r\n render () {\r\n return(\r\n
\r\n \r\n { this.props.children }\r\n
\r\n )\r\n } \r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n selectedProducto: state.selectedProducto,\r\n estadoModal: state.estadoModal,\r\n selectedTab: state.selectedTab,\r\n});\r\n\r\n\r\nconst mapDispatchToProps = dispatch => bindActionCreators({setSelectedTab},dispatch);\r\n\r\n\r\nexport default connect(mapStateToProps,mapDispatchToProps)(TabNav);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport * as actions from '../../app/store/actions';\r\n\r\nclass Tab extends React.Component{\r\n \r\n render(){\r\n \r\n if(this.props.isSelected){\r\n return (\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n \r\n }\r\n return null;\r\n }\r\n\r\n}\r\n \r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n selectedProducto: state.selectedProducto,\r\n estadoModal: state.estadoModal,\r\n selectedTab: state.selectedTab,\r\n importeITF:state.importeITF,\r\n});\r\n\r\n\r\nexport default connect(mapStateToProps,actions)(Tab);","import React, {Component} from 'react';\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport {connect} from \"react-redux\";\r\nimport * as actions from '../../app/store/actions';\r\n\r\nclass ImprimirResultados extends Component {\r\n\r\n componentDidMount(){\r\n\r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n }\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n tipoMoneda: state.tipoMoneda,\r\n agencias:state.agencias,\r\n personerias: state.personerias,\r\n tiposRetiroInt:state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedMoneda: state.selectedMoneda,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n TEACancelacion: state.TEACancelacion,\r\n fechaCancelacionAnt: state.fechaCancelacionAnt,\r\n fechaApertura: state.fechaApertura,\r\n fechaAperturaMostrar: state.fechaAperturaMostrar,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n plazo:state.plazo,\r\n importeITF: state.importeITF,\r\n tasaCancelacion: state.tasaCancelacion,\r\n diasTranscurridos: state.diasTranscurridos,\r\n interesGanadoCancelacion: state.interesGanadoCancelacion,\r\n ITFAplicado: state.ITFAplicado,\r\n anioBase: state.anioBase,\r\n\r\n})\r\n\r\n\r\nexport default connect(mapStateToProps, actions) (ImprimirResultados)","import React, {Fragment} from 'react'\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport {formatNumber, formatoFecha} from '../../app/store/validations.js';\r\n\r\nconst CalendarioPlanAhorro = (datos) => {\r\n \r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {datos.lista.map(fila =>(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
Fecha depósitoN° DepósitoMonto planInterésIncentivoFecha límite
{formatoFecha(fila.fechaPago)}{fila.numeroDeposito}{formatNumber(fila.monto)}{formatNumber(fila.interes)}{formatNumber(fila.interesIncentivo)}{formatoFecha(fila.fechaLiminte)}
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\n\r\n\r\nexport default CalendarioPlanAhorro;","import React, {Fragment} from 'react'\r\nimport '../estilos/estilosPlazoFijo.css';\r\n\r\nconst DatoTotal = (props) => {\r\n \r\n return (\r\n \r\n
\r\n
\r\n {props.cabecera}\r\n

{props.dato}

\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default DatoTotal;","import React from 'react';\r\nimport DatoTotal from './DatoTotal';\r\n\r\nconst TotalPlanAhorro = (datos) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TotalPlanAhorro;","import React, {Component} from 'react'\r\nimport {connect} from 'react-redux';\r\nimport * as actions from '../../app/store/actions';\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport {formatNumber, formatoFecha} from '../../app/store/validations.js';\r\n\r\nclass ResultadoAhorroMas extends Component {\r\n\r\n render(){\r\n return (\r\n
\r\n
\r\n

Resultado:

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n }\r\n \r\n const mapStateToProps = state => ({\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n datosResultado: state.datosResultado,\r\n ITFAplicado: state.ITFAplicado,\r\n simulacion: state.simulacion,\r\n importeITF: state.importeITF,\r\n importeITFMostrar: state.importeITFMostrar,\r\n montoFinalPlazo: state.montoFinalPlazo,\r\n error : state.error,\r\n totalAhorro: state.totalAhorro,\r\n etiquetaTotalAhorro: state.etiquetaTotalAhorro,\r\n totalMontoGanadoMostrar: state.totalMontoGanadoMostrar,\r\n});\r\n\r\n\r\nexport default connect(mapStateToProps,actions)(ResultadoAhorroMas);\r\n ","import React, {Component} from 'react'\r\nimport DatoCancelacion from './DatoCancelacion'\r\nimport ImprimirResultados from './BotonImprimirResultados';\r\nimport CalendarioPlanAhorro from './CalendarioPlanAhorro';\r\nimport TotalPlanAhorro from './TotalPlanAhorro';\r\n\r\nexport default class ResultadoPlanAhorro extends Component {\r\n\r\n render(){\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import React, {Component} from 'react'\r\nimport DatoCancelacion from './DatoCancelacion'\r\nimport ImprimirResultados from './BotonImprimirResultados';\r\nimport '../estilos/estilosPlazoFijo.css';\r\n\r\nexport default class ResultadoExtrahorro extends Component {\r\n\r\n render(){\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {this.props}\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import React, {Fragment} from 'react'\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport {formatNumber, formatoFecha} from '../../app/store/validations.js';\r\n\r\nconst CalendarioAhorroMas = (datos) => {\r\n return (\r\n \r\n
\r\n

DETALLE GENERAL

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {datos.lista.map(fila =>(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ))}\r\n \r\n
Tipo OperaciónFec. depósitoMontoITFMonto depósitoPlazoTEA(%)Int. Ganado
{fila.Fila}{fila.TipoOperacion}{formatoFecha(fila.FechaDeposito)}{formatNumber(fila.MontoDeposito)}{formatNumber(fila.ITFDeposito)}{formatNumber(fila.MontoDepositoITF)}{fila.PlazoDeposito}{formatNumber(fila.TasaDeposito)}{formatNumber(fila.IntereseAcumulado)}
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CalendarioAhorroMas;","import React, {Component} from 'react';\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport {connect} from \"react-redux\";\r\nimport * as actions from '../../app/store/actions';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { RiAddCircleLine, RiCurrencyLine } from \"react-icons/ri\";\r\nimport MensajeError from '../comun/MensajeError';\r\nimport CalendarioAhorroMas from './CalendarioAhorroMas';\r\n\r\nclass DepositosAhorroMas extends Component {\r\n\r\n componentDidMount(){\r\n\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n Fecha depósito: \r\n
\r\n
\r\n this.props.cargarFechaDepositoSimulacion(e)} locale = \"es\" dateFormat=\"dd-MM-yyyy\" />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n this.props.handleChangeMontoDepositoAM(e, this.props)}\r\n >\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n this.props.seleccionarITFDepositoEfectivo(this.props)}>\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n this.props.formErrors.ahorroMasResultado.length > 0 ? : null\r\n }\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n tipoMoneda: state.tipoMoneda,\r\n agencias:state.agencias,\r\n personerias: state.personerias,\r\n tiposRetiroInt:state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedMoneda: state.selectedMoneda,\r\n selectedPersoneria: state.selectedPersoneria,\r\n selectedCampania: state.selectedCampania,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n TEACancelacion: state.TEACancelacion,\r\n fechaCancelacionAnt: state.fechaCancelacionAnt,\r\n fechaApertura: state.fechaApertura,\r\n fechaAperturaMostrar: state.fechaAperturaMostrar,\r\n fechaFinCampaniaAhorroMSoles: state.fechaFinCampaniaAhorroMSoles,\r\n fechaFinCampaniaAhorroMDolares: state.fechaFinCampaniaAhorroMDolares,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n plazo:state.plazo,\r\n importeITF: state.importeITF,\r\n tasaCancelacion: state.tasaCancelacion,\r\n diasTranscurridos: state.diasTranscurridos,\r\n interesGanadoCancelacion: state.interesGanadoCancelacion,\r\n ITFAplicado: state.ITFAplicado,\r\n anioBase: state.anioBase,\r\n ListaDepositos: state.ListaDepositos,\r\n fechaDepositoSimulacion: state.fechaDepositoSimulacion,\r\n montoDeposito : state.montoDeposito,\r\n montoDeposito2: state.montoDeposito2,\r\n montoDepositoITF: state.montoDepositoITF,\r\n isITFDepositoEfectivo: state.isITFDepositoEfectivo,\r\n isCheckCampania: state.isCheckCampania,\r\n fechaVencimiento: state.fechaVencimiento,\r\n numeroDepositos : state.numeroDepositos,\r\n montoMinimoDeposito : state.montoMinimoDeposito,\r\n formErrors: state.formErrors,\r\n importeDepositoITF: state.importeDepositoITF,\r\n error : state.error,\r\n})\r\n\r\n\r\nexport default connect(mapStateToProps, actions) (DepositosAhorroMas)","import React, {Component} from 'react';\r\nimport {connect} from \"react-redux\"\r\nimport { Modal, ModalBody, ModalFooter} from \"reactstrap\"\r\nimport { BiArrowBack } from \"react-icons/bi\";\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport DatosCancelacionAnt from \"./DatosCancelacionAnt\"\r\nimport TabNav from \"./NavPlazoFijo\";\r\nimport Tab from \"./Tab\";\r\nimport * as actions from '../../app/store/actions';\r\nimport ResultadoPlanAhorro from './ResultadoPlanAhorro';\r\nimport ResultadoExtrahorro from './ResultadoExtrahorro';\r\nimport ResultadoAhorromas from './ResultadoAhorromas';\r\nimport DepositosAhorroMas from './DepositosAhorroMas';\r\nimport CalendarioAhorroMas from './CalendarioAhorroMas';\r\nimport DatoTotal from './DatoTotal';\r\nimport {formatNumber} from '../../app/store/validations.js';\r\n\r\nclass ModalPlazoFijo extends Component {\r\n\r\n componentDidMount(){\r\n \r\n }\r\n render() {\r\n return (\r\n\r\n \r\n \r\n this.props.setSelectedTab(this.props.selectedTab)}>\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n \r\n const mapStateToProps = state => ({\r\n productos: state.productos,\r\n selectedProducto: state.selectedProducto,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n importeITF: state.importeITF,\r\n TEACancelacion: state.TEACancelacion,\r\n tasaCancelacion: state.tasaCancelacion,\r\n datosPlanAhorro: state.datosPlanAhorro,\r\n TEAIncentivo: state.TEAIncentivo,\r\n tasaInteres: state.tasaInteres,\r\n totalAhorro: state.totalAhorro,\r\n montoDeposito: state.montoDeposito,\r\n montoDeposito2: state.montoDeposito2,\r\n montoDepositoITF: state.montoDepositoITF,\r\n isITFDepositoEfectivo: state.isITFDepositoEfectivo,\r\n ListaDepositos: state.ListaDepositos,\r\n});\r\n\r\n\r\n\r\nexport default connect(mapStateToProps,actions)(ModalPlazoFijo);\r\n\r\n","import React from 'react'\r\nimport '../components/estilos/estilosPlazoFijo.css';\r\nimport { formatNumber, formatoFecha } from '../app/store/validations.js';\r\n\r\nconst PDFCalendario = (datos) => {\r\n return (\r\n
\r\n

DETALLE APERTURA*

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n datos.datos.reduce((sum, item) => sum + item.nInteresAcumulado, 0) > 0 && \r\n \r\n }\r\n {/* */}\r\n \r\n \r\n \r\n {datos.datos.map(fila => (\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n fila.nInteresAcumulado > 0 && \r\n }\r\n {/* */}\r\n \r\n ))}\r\n \r\n
Fecha vencimientoDías transcurridosInteresesInterés acumuladoRetiro de intereses
{fila.nId}{formatoFecha(fila.dFechaCalculo)}{fila.diastranscurridos}{formatNumber(fila.nInteres)}{formatNumber(fila.nInteresAcumulado)}{fila.descripcionRetiroInteres}
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default PDFCalendario;","import React, {Component} from 'react';\r\nimport PDFCalendario from './PDFCalendario';\r\nimport '../components/estilos/estilosPlazoFijo.css';\r\nimport {formatNumber, formatoFecha} from '../app/store/validations.js';\r\nimport LogoCajaIca from \"../images/caja-red.svg\"\r\n\r\n\r\nexport default class PDFResultado extends Component{\r\n \r\n render(){\r\n return(\r\n
\r\n
\r\n
\r\n
\r\n \"Caja \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
SIMULACIÓN {this.props.datos.nombreProducto}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Fecha apertura: \r\n
\r\n
\r\n
\r\n {formatoFecha(this.props.datos.fechaApertura)}\r\n \r\n
\r\n
\r\n
\r\n Fecha cancelación: \r\n
\r\n
\r\n
\r\n {formatoFecha(this.props.datos.datosResultado.fechaCancelacion)}\r\n
\r\n
\r\n
\r\n Personería: \r\n
\r\n
\r\n
\r\n {this.props.datos.personerias.filter(j => j.value == this.props.datos.selectedPersoneria)[0].label}\r\n \r\n
\r\n
\r\n
\r\n Moneda: \r\n
\r\n
\r\n
\r\n {this.props.datos.tipoMoneda.filter(j => j.value == this.props.datos.selectedMoneda)[0].label}\r\n \r\n
\r\n
\r\n
\r\n Capital: \r\n
\r\n
\r\n
\r\n { formatNumber(this.props.datos.montoApertura)}\r\n
\r\n
\r\n
\r\n Plazo (Días): \r\n
\r\n
\r\n
\r\n {this.props.datos.plazo}\r\n \r\n
\r\n
\r\n
\r\n Interes ganado: \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.datosResultado.interesGanado)}\r\n \r\n
\r\n
\r\n
\r\n TEA(%): \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.tasaInteresMostrar)}\r\n
\r\n
\r\n
\r\n ITF: \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.importeITFMostrar)}\r\n
\r\n
\r\n
\r\n Retiro intereses: \r\n
\r\n
\r\n
\r\n {this.props.datos.tiposRetiroInt.filter(j => j.value == this.props.datos.selectedRetiroInt)[0].label}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n

Total de intereses ganados: {formatNumber(this.props.datos.datosResultado.interesGanado)}

\r\n
\r\n {\r\n this.props.datos.selectedRetiroInt === \"4\" &&

Nota:Se podrá retirar el interés generado durante el mes. Al cierre de mes, el interés que no se retire,\r\n será abonado a la cuenta de ahorro relacionada al plazo fijo en el momento de la apertura.

\r\n }\r\n
\r\n
\r\n

La empresa tiene la obligación de difundir información de conformidad con la Ley N° 28587 y sus modificatorias, así como el Reglamento de Gestión de Conducta de Mercado del Sistema Financiero \r\n (Resolución SBS N° 3274-2017). El servicio de transferencias interbancarias vía CCE tiene un horario especial para el cual deberá tener en cuenta en caso utilice esta simulación. \r\n

\r\n

Nota: Esta simulación está afecta al ITF (0.005%)\r\n

\r\n

\r\n El cálculo del interés generado en este simulador es referencial. Para mayor información consulte en nuestras agencias, que lo atenderemos gustosamente ante cualquier consulta.\r\n

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}","import React, { Component} from \"react\";\r\nimport ReactToPrint from 'react-to-print';\r\nimport {connect} from 'react-redux';\r\nimport * as actions from '../app/store/actions';\r\nimport PDFResultado from './PDFResultado';\r\n\r\nclass ResultadoSimulacion extends Component{\r\n render(){\r\n return(\r\n
\r\n (this.componentRef = el)} />\r\n \r\n {\r\n return ;\r\n }}\r\n content = {() => this.componentRef}\r\n documentTitle = \"Simulacion\"\r\n pageStyle='@page { size: A4; margin-top:20mm; margin-bottom: 20mm} @media print{display: true} body { -webkit-print-color-adjust: exact; padding: 30px !important; } }'\r\n removeAfterPrint = {false}\r\n />\r\n
\r\n );\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n tipoMoneda: state.tipoMoneda,\r\n agencias:state.agencias,\r\n personerias: state.personerias,\r\n tiposRetiroInt:state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedPersoneria: state.selectedPersoneria,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedMoneda: state.selectedMoneda,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n TEACancelacion: state.TEACancelacion,\r\n fechaCancelacionAnt: state.fechaCancelacionAnt,\r\n fechaApertura: state.fechaApertura,\r\n fechaAperturaMostrar: state.fechaAperturaMostrar,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n plazo:state.plazo,\r\n importeITF: state.importeITF,\r\n importeITFMostrar: state.importeITFMostrar,\r\n tasaCancelacion: state.tasaCancelacion,\r\n diasTranscurridos: state.diasTranscurridos,\r\n interesGanadoCancelacion: state.interesGanadoCancelacion,\r\n ITFAplicado: state.ITFAplicado,\r\n anioBase: state.anioBase,\r\n fechaCancelacionAntMostrar: state.fechaCancelacionAntMostrar,\r\n fechaAperturaMin: state.fechaAperturaMin,\r\n nombreProducto: state.nombreProducto,\r\n});\r\nexport default connect(mapStateToProps,actions)(ResultadoSimulacion); \r\n\r\n\r\n\r\n","import React, {Component} from 'react';\r\nimport '../components/estilos/estilosPlazoFijo.css';\r\n\r\nexport default class PDFCancelacion extends Component{\r\n \r\n render(){\r\n return(\r\n
\r\n

SIMULACIÓN DE CANCELACIÓN ANTICIPADA PARA PLAZO FIJO {this.props.datos.productos.filter(j => j.value == this.props.datos.selectedProducto)[0].label}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n Año base: \r\n \r\n {this.props.datos.anioBase}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Fecha apertura: \r\n \r\n {this.props.datos.fechaAperturaMostrar}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Capital: \r\n \r\n { Number.parseFloat(this.props.datos.montoApertura).toFixed(2)}\r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Fecha renovación: \r\n \r\n {this.props.datos.fechaCancelacionAntMostrar}\r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Moneda: \r\n \r\n {this.props.datos.tipoMoneda.filter(j => j.value == this.props.datos.selectedMoneda)[0].label}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Fecha cancelación: \r\n \r\n {this.props.datos.fechaCancelacionAntMostrar}\r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Plazo (Días): \r\n \r\n {this.props.datos.diasTranscurridos}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Interes ganado: \r\n \r\n {Number.parseFloat(this.props.datos.interesGanadoCancelacion).toFixed(2)}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n TEA(%): \r\n \r\n {this.props.datos.tasaCancelacion}\r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n ITF Aplicado: \r\n \r\n {this.props.datos.ITFAplicado}\r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n TREA(%): \r\n \r\n {this.props.datos.tasaCancelacion}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n ITF Cargado: \r\n \r\n { Number.parseFloat(this.props.datos.importeITF).toFixed(2)}\r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Retiro intereses: \r\n \r\n {this.props.datos.tiposRetiroInt.filter(j => j.value == this.props.datos.selectedRetiroInt)[0].label} \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Capital con ITF: \r\n \r\n {Number.parseFloat(this.props.datos.montoAperturaITF).toFixed(2)}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n

\r\n \r\n MontoCancelacion: \r\n \r\n {this.props.datos.montoCancelacion}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Nota: El cálculo del Interés generado en este simulador es referencial y solo aplica para la {this.props.datos.agencias.filter(j => j.value == this.props.datos.selectedAgencia)[0].label}\r\n

\r\n
\r\n

La empresa tiene la obligación de difundir información de conformidad con la Ley N°29888 \r\n y sus modificatorias, así como el Reglamento de Gestión de Conducta de Mercado, aprobado mediante Resolución N° 3274-2017. \r\n Todas las operaciones de cuentas pasivas, están sujetas al impuesto a las transacciones financieras ITF. Para mayor información \r\n sobre el porcentaje aplicable y las operaciones afectas puede consultar nuestra página web: www.cajaica.pe.\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n}","import React, {Component} from \"react\";\r\nimport ReactToPrint from 'react-to-print';\r\nimport {connect} from 'react-redux';\r\nimport * as actions from '../app/store/actions';\r\nimport PDFCancelacion from './PDFCancelacion';\r\n\r\nclass ResultadoCancelacion extends Component{\r\n render(){\r\n \r\n return(\r\n
\r\n (this.componentRef = el)} />\r\n \r\n {\r\n return ;\r\n }}\r\n content = {() => this.componentRef}\r\n documentTitle = \"Cancelacion\"\r\n pageStyle='@page { size: A4; margin-top:20mm; margin-bottom: 20mm} @media print{display: true} body { -webkit-print-color-adjust: exact; padding: 30px !important; } }'\r\n removeAfterPrint = {false}\r\n />\r\n
\r\n );\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n tipoMoneda: state.tipoMoneda,\r\n agencias:state.agencias,\r\n personerias: state.personerias,\r\n tiposRetiroInt:state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedMoneda: state.selectedMoneda,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n tasaCancelacion: state.tasaCancelacion,\r\n TEACancelacion: state.TEACancelacion,\r\n fechaCancelacionAntMostrar: state.fechaCancelacionAntMostrar,\r\n fechaApertura: state.fechaApertura,\r\n fechaAperturaMostrar: state.fechaAperturaMostrar,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n plazo:state.plazo,\r\n importeITF: state.importeITF,\r\n interesGanadoCancelacion: state.interesGanadoCancelacion,\r\n ITFAplicado: state.ITFAplicado,\r\n anioBase: state.anioBase,\r\n diasTranscurridos: state.diasTranscurridos,\r\n montoCancelacion: state.montoCancelacion,\r\n});\r\nexport default connect(mapStateToProps,actions)(ResultadoCancelacion); \r\n\r\n\r\n\r\n","import React, {Component} from 'react';\r\nimport CalendarioPlanAhorro from '../components/comun/CalendarioPlanAhorro';\r\nimport {formatNumber, formatoFecha} from '../app/store/validations.js';\r\nimport LogoCajaIca from \"../images/caja-red.svg\"\r\n\r\nexport default class PDFResultadoPlanAhorro extends Component{\r\n \r\n render(){\r\n\r\n return(\r\n
\r\n
\r\n
\r\n
\r\n \"Caja \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
SIMULACIÓN {this.props.datos.productos.filter(j => j.value == this.props.datos.selectedProducto)[0].label}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n Fecha apertura: \r\n
\r\n
\r\n
\r\n {formatoFecha(this.props.datos.fechaApertura)}\r\n \r\n
\r\n
\r\n
\r\n Fecha cancelación: \r\n
\r\n
\r\n
\r\n {formatoFecha(this.props.datos.datosPlanAhorro.fechaCancelacion)}\r\n
\r\n
\r\n
\r\n Personería: \r\n
\r\n
\r\n
\r\n {this.props.datos.personerias.filter(j => j.value == this.props.datos.selectedPersoneria)[0].label}\r\n \r\n
\r\n
\r\n
\r\n Moneda: \r\n
\r\n
\r\n
\r\n {this.props.datos.tipoMoneda.filter(j => j.value == this.props.datos.selectedMoneda)[0].label}\r\n \r\n
\r\n
\r\n
\r\n Monto apertura: \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.montoApertura)}\r\n
\r\n
\r\n
\r\n Monto depósito: \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.montoDeposito)}\r\n
\r\n
\r\n
\r\n Día de depósito: \r\n
\r\n
\r\n
\r\n {this.props.datos.diaDeposito}\r\n
\r\n
\r\n
\r\n TEA(%): \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.tasaInteresMostrar)}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n Total ahorrado: \r\n \r\n {formatNumber(this.props.datos.datosPlanAhorro.totalAhorro)}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Total intereses: \r\n \r\n {formatNumber(this.props.datos.datosPlanAhorro.totalIntereses)}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Total incentivo: \r\n \r\n {formatNumber(this.props.datos.datosPlanAhorro.totalIncentivo)}\r\n \r\n

\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

La empresa tiene la obligación de difundir información de conformidad con la Ley N° 28587 y sus modificatorias, así como el Reglamento de Gestión de Conducta de Mercado del Sistema Financiero \r\n (Resolución SBS N° 3274-2017). El servicio de transferencias interbancarias vía CCE tiene un horario especial para el cual deberá tener en cuenta en caso utilice esta simulación. \r\n

\r\n

Nota: Esta simulación está afecta al ITF (0.005%)\r\n

\r\n

\r\n El cálculo del interés generado en este simulador es referencial. Para mayor información consulte en nuestras agencias, que lo atenderemos gustosamente ante cualquier consulta.\r\n

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}","import React, {Component} from \"react\";\r\nimport ReactToPrint from 'react-to-print';\r\nimport {connect} from 'react-redux';\r\nimport * as actions from '../app/store/actions';\r\nimport PDFResultadoPlanAhorro from \"./PDFResultadoPlanAhorro\";\r\nimport StateManager from \"react-select\";\r\n\r\nclass ResultadoSimulacionPlanAhorro extends Component{\r\n render(){\r\n \r\n return(\r\n
\r\n (this.componentRef = el)} />\r\n \r\n {\r\n return ;\r\n }}\r\n content = {() => this.componentRef}\r\n documentTitle = \"Simulacion\"\r\n pageStyle='@page { size: A4; margin-top:20mm; margin-bottom: 20mm} @media print{display: true} body { -webkit-print-color-adjust: exact; padding: 30px !important; } }'\r\n removeAfterPrint = {false}\r\n />\r\n
\r\n );\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n tipoMoneda: state.tipoMoneda,\r\n agencias:state.agencias,\r\n personerias: state.personerias,\r\n tiposRetiroInt:state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedPersoneria: state.selectedPersoneria,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedMoneda: state.selectedMoneda,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n montoDeposito: state.montoDeposito,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n TEACancelacion: state.TEACancelacion,\r\n fechaCancelacionAnt: state.fechaCancelacionAnt,\r\n fechaApertura: state.fechaApertura,\r\n fechaAperturaMostrar: state.fechaAperturaMostrar,\r\n fechaAperturaMin: state.fechaAperturaMin,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n montoDepositoITF: state.montoDepositoITF,\r\n plazo:state.plazo,\r\n importeITF: state.importeITF,\r\n importeITFMostrar: state.importeITFMostrar,\r\n tasaCancelacion: state.tasaCancelacion,\r\n diasTranscurridos: state.diasTranscurridos,\r\n interesGanadoCancelacion: state.interesGanadoCancelacion,\r\n ITFAplicado: state.ITFAplicado,\r\n anioBase: state.anioBase,\r\n fechaCancelacionAntMostrar: state.fechaCancelacionAntMostrar,\r\n datosPlanAhorro: state.datosPlanAhorro,\r\n diaDeposito: state.diaDeposito,\r\n TEAIncentivo: state.TEAIncentivo,\r\n});\r\nexport default connect(mapStateToProps,actions)(ResultadoSimulacionPlanAhorro); \r\n\r\n\r\n\r\n","import React, { Component } from 'react';\r\nimport PDFCalendario from './PDFCalendario';\r\nimport CalendarioAhorroMas from '../components/comun/CalendarioAhorroMas';\r\nimport { formatNumber, formatoFecha } from '../app/store/validations.js';\r\nimport LogoCajaIca from \"../images/caja-red.svg\"\r\n\r\n\r\nexport default class PDFResultadoAhorroMas extends Component {\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"Caja\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
SIMULACIÓN {this.props.datos.nombreProducto}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Fecha apertura: \r\n
\r\n
\r\n
\r\n {formatoFecha(this.props.datos.fechaApertura)}\r\n \r\n
\r\n
\r\n
\r\n Fecha cancelación: \r\n
\r\n
\r\n
\r\n {formatoFecha(this.props.datos.datosResultado.fechaCancelacion)}\r\n
\r\n
\r\n
\r\n Personería: \r\n
\r\n
\r\n
\r\n {this.props.datos.personerias.filter(j => j.value == this.props.datos.selectedPersoneria)[0].label}\r\n \r\n
\r\n
\r\n
\r\n Moneda: \r\n
\r\n
\r\n
\r\n {this.props.datos.tipoMoneda.filter(j => j.value == this.props.datos.selectedMoneda)[0].label}\r\n \r\n
\r\n
\r\n
\r\n Capital: \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.montoApertura)}\r\n
\r\n
\r\n
\r\n Plazo (Días): \r\n
\r\n
\r\n
\r\n {this.props.datos.plazo}\r\n \r\n
\r\n
\r\n
\r\n Interes ganado: \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.totalAhorro)}\r\n \r\n
\r\n
\r\n
\r\n TEA(%): \r\n
\r\n
\r\n
\r\n {formatNumber(this.props.datos.tasaInteresMostrar)}\r\n
\r\n
\r\n
\r\n Retiro intereses: \r\n
\r\n
\r\n
\r\n {this.props.datos.tiposRetiroInt.filter(j => j.value == this.props.datos.selectedRetiroInt)[0].label}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n

Total de interés ganado Apertura: {formatNumber(this.props.datos.totalInteresesApertura)}

\r\n
\r\n \r\n\r\n
\r\n

Total de interés ganado: {formatNumber(this.props.datos.totalAhorro)}

\r\n
\r\n \r\n {\r\n this.props.datos.selectedRetiroInt === \"4\" &&

Nota:Se podrá retirar el interés generado durante el mes. Al cierre de mes, el interés que no se retire,\r\n será abonado a la cuenta de ahorro relacionada al plazo fijo en el momento de la apertura.

\r\n }\r\n \r\n\r\n
\r\n
\r\n

La empresa tiene la obligación de difundir información de conformidad con la Ley N° 28587 y sus modificatorias, así como el Reglamento de Gestión de Conducta de Mercado del Sistema Financiero\r\n (Resolución SBS N° 3274-2017). El servicio de transferencias interbancarias vía CCE tiene un horario especial para el cual deberá tener en cuenta en caso utilice esta simulación.\r\n

\r\n

Nota: Esta simulación está afecta al ITF (0.005%)\r\n

\r\n

\r\n El cálculo del interés generado en este simulador es referencial. Para mayor información consulte en nuestras agencias, que lo atenderemos gustosamente ante cualquier consulta.\r\n

\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n );\r\n }\r\n}","import React, {Component} from \"react\";\r\nimport ReactToPrint from 'react-to-print';\r\nimport {connect} from 'react-redux';\r\nimport * as actions from '../app/store/actions';\r\nimport PDFResultadoAhorroMas from \"./PDFResultadoAhorroMas\";\r\n\r\nclass ResultadoSimulacionAhorroMas extends Component{\r\n render(){\r\n\r\n return(\r\n
\r\n (this.componentRef = el)} />\r\n \r\n {\r\n return ;\r\n }}\r\n content = {() => this.componentRef}\r\n documentTitle = \"Simulacion\"\r\n pageStyle='@page { size: A4; margin-top:20mm; margin-bottom: 20mm} @media print{display: true} body { -webkit-print-color-adjust: exact; padding: 30px !important; } }'\r\n removeAfterPrint = {false}\r\n />\r\n
\r\n );\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n tipoMoneda: state.tipoMoneda,\r\n agencias:state.agencias,\r\n personerias: state.personerias,\r\n tiposRetiroInt:state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedPersoneria: state.selectedPersoneria,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedMoneda: state.selectedMoneda,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n TEACancelacion: state.TEACancelacion,\r\n fechaCancelacionAnt: state.fechaCancelacionAnt,\r\n fechaApertura: state.fechaApertura,\r\n fechaAperturaMostrar: state.fechaAperturaMostrar,\r\n fechaAperturaMin: state.fechaAperturaMin,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n montoDepositoITF: state.montoDepositoITF,\r\n plazo:state.plazo,\r\n importeITF: state.importeITF,\r\n importeITFMostrar: state.importeITFMostrar,\r\n tasaCancelacion: state.tasaCancelacion,\r\n diasTranscurridos: state.diasTranscurridos,\r\n interesGanadoCancelacion: state.interesGanadoCancelacion,\r\n ITFAplicado: state.ITFAplicado,\r\n anioBase: state.anioBase,\r\n fechaCancelacionAntMostrar: state.fechaCancelacionAntMostrar,\r\n datosPlanAhorro: state.datosPlanAhorro, \r\n diaDeposito: state.diaDeposito,\r\n TEAIncentivo: state.TEAIncentivo,\r\n ListaDepositos : state.ListaDepositos,\r\n totalAhorro: state.totalAhorro,\r\n nombreProducto: state.nombreProducto,\r\n ListaInteresesInicial:state.ListaInteresesInicial, \r\n totalInteresesApertura:state.totalInteresesApertura,\r\n});\r\nexport default connect(mapStateToProps,actions)(ResultadoSimulacionAhorroMas); \r\n\r\n\r\n\r\n","import React, {Component} from 'react';\r\nimport {connect} from \"react-redux\"\r\nimport { Modal, ModalBody, ModalFooter} from \"reactstrap\"\r\nimport { BiArrowBack } from \"react-icons/bi\";\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport * as actions from '../../app/store/actions';\r\nimport ResultadoSimulacion from '../../documents/ResultadoSimulacion';\r\nimport ResultadoCancelacion from '../../documents/ResultadoCancelacion';\r\nimport ResultadoSimulacionPlanAhorro from '../../documents/ResultadoSimulacionPlanAhorro';\r\nimport ResultadoSimulacionAhorroMas from '../../documents/ResultadoSimulacionAhorroMas';\r\nclass ModalImprimir extends Component {\r\n\r\n componentDidMount(){\r\n }\r\n render() {\r\n return (\r\n\r\n \r\n \r\n\r\n {\r\n this.props.showAhorromas? : null\r\n }\r\n {\r\n this.props.showExtraAhorro? : null\r\n }\r\n {\r\n this.props.showFondoJubilacion? : null \r\n }\r\n {\r\n this.props.showPlanAhorro? : null \r\n } \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n \r\n const mapStateToProps = state => ({\r\n productos: state.productos,\r\n selectedProducto: state.selectedProducto,\r\n estadoModal: state.estadoModal,\r\n estadoImprimir: state.estadoImprimir,\r\n selectedTab: state.selectedTab,\r\n showAhorromas: state.showAhorromas,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showPlanAhorro: state.showPlanAhorro,\r\n taps: state.taps,\r\n datosResultado: state.datosResultado,\r\n tasaInteresMostrar: state.tasaInteresMostrar,\r\n importeITF: state.importeITF,\r\n TEACancelacion: state.TEACancelacion,\r\n tasaCancelacion: state.tasaCancelacion,\r\n montoDepositoITF: state.montoDepositoITF,\r\n datosPlanAhorro : state.datosPlanAhorro,\r\n TEAIncentivo: state.TEAIncentivo,\r\n diaDeposito: state.diaDeposito,\r\n ListaDepositos : state.ListaDepositos,\r\n totalAhorro: state.totalAhorro,\r\n});\r\n\r\nexport default connect(mapStateToProps,actions)(ModalImprimir);\r\n\r\n","import React, { useState, useRef} from 'react';\r\nimport {useSelector, useDispatch} from 'react-redux';\r\nimport ReCAPTCHA from 'react-google-recaptcha'\r\nimport {environment} from '../../app/store/environment.js';\r\nimport * as actions from '../../app/store/actions';\r\nimport { registerLocale } from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport es from 'date-fns/locale/es';\r\n\r\nregisterLocale(\"es\",es);\r\n\r\nconst Ahorromas = (props) => {\r\n\r\n const [recaptchaValid, setRecaptchaValid] = useState(false);\r\n\r\n const reCAPTCHA_TOKEN = environment.RECAPTCHA_KEY;\r\n\r\n // Crear una referencia para el captcha\r\n const captchaRef = useRef(null);\r\n\r\n // Obtener el dispatch para ejecutar las acciones\r\n const dispatch = useDispatch();\r\n\r\n // Obtener el estado global para leer los valores\r\n const state = useSelector(state => state);\r\n\r\n const onChangeRecaptcha = (value) => {\r\n if (value) {\r\n setRecaptchaValid(true);\r\n } else{\r\n setRecaptchaValid(false);\r\n }\r\n }\r\n\r\n const onExpiredRecaptcha = () => {\r\n setRecaptchaValid(false);\r\n }\r\n\r\n const onSubmitForm = () => {\r\n const captchaValue = captchaRef.current.getValue()\r\n if (captchaValue) {\r\n dispatch(actions.validarSimulacionAhorroMas(state))\r\n } else {\r\n setRecaptchaValid(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {state.formErrors.moneda.length > 0 && (\r\n {state.formErrors.moneda}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {state.formErrors.personeria.length > 0 && (\r\n {state.formErrors.personeria}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {state.formErrors.retiroInt.length > 0 && (\r\n {state.formErrors.retiroInt}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.cargarFechaApertura(e.target.value, state))} \r\n locale = \"es\"\r\n step=\"1\" min={state.fechaAperturaMin} value={state.fechaApertura}\r\n \r\n />\r\n {state.formErrors.fechaApertura.length > 0 && (\r\n \r\n {state.formErrors.fechaApertura}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangeMontoApertura(e, state))}\r\n >\r\n \r\n {state.formErrors.montoApertura.length > 0 && (\r\n \r\n {state.formErrors.montoApertura}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangePlazo(e,state))}\r\n >\r\n \r\n {state.formErrors.plazo.length > 0 && (\r\n \r\n {state.formErrors.plazo}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n dispatch(actions.seleccionarDepositos())} checked={state.isCheckDepositos}>\r\n \r\n
\r\n dispatch(actions.handleChangeNumeroDepositosAhorroMas(e,state))}\r\n >\r\n \r\n {state.formErrors.numeroDepositos.length > 0 && (\r\n \r\n {state.formErrors.numeroDepositos}\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n dispatch(actions.seleccionarCampanias(state, recaptchaValid))}\r\n checked={state.isCheckCampania} disabled={state.isDeshabilitarCheckCampania}\r\n >\r\n \r\n \r\n
\r\n \r\n {state.formErrors.seleccionarCampania.length > 0 && (\r\n \r\n {state.formErrors.seleccionarCampania}\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n {\r\n !recaptchaValid && Por favor, completa el captcha para seguir con el proceso.\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ); \r\n }\r\n \r\nexport default Ahorromas;\r\n \r\n","import React, { useState, useRef} from 'react';\r\nimport {useSelector, useDispatch} from 'react-redux';\r\nimport ReCAPTCHA from 'react-google-recaptcha'\r\nimport {environment} from '../../app/store/environment.js';\r\nimport * as actions from '../../app/store/actions';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { RiCurrencyLine } from \"react-icons/ri\";\r\nimport DatoInformacionProducto from '../comun/DatoInformacionProducto';\r\n\r\nconst ExtraAhorro = (props) => {\r\n\r\n const [recaptchaValid, setRecaptchaValid] = useState(false);\r\n\r\n const reCAPTCHA_TOKEN = environment.RECAPTCHA_KEY;\r\n\r\n // Crear una referencia para el captcha\r\n const captchaRef = useRef(null);\r\n\r\n // Obtener el dispatch para ejecutar las acciones\r\n const dispatch = useDispatch();\r\n\r\n // Obtener el estado global para leer los valores\r\n const state = useSelector(state => state);\r\n\r\n const onChangeRecaptcha = (value) => {\r\n if (value) {\r\n setRecaptchaValid(true);\r\n } else{\r\n setRecaptchaValid(false);\r\n }\r\n }\r\n\r\n const onExpiredRecaptcha = () => {\r\n setRecaptchaValid(false);\r\n }\r\n\r\n const onSubmitForm = () => {\r\n const captchaValue = captchaRef.current.getValue()\r\n if (captchaValue) {\r\n dispatch(actions.validarSimulacion(state))\r\n } else {\r\n setRecaptchaValid(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {state.formErrors.moneda.length > 0 && (\r\n \r\n {state.formErrors.moneda}\r\n )}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {state.formErrors.retiroInt.length > 0 && (\r\n {state.formErrors.retiroInt}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangeMontoApertura(e, state))}\r\n >\r\n \r\n {state.formErrors.montoApertura.length > 0 && (\r\n {state.formErrors.montoApertura}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.cargarFechaApertura(e.target.value))} \r\n locale = \"es\"\r\n step=\"1\" min={state.fechaAperturaMin} value={state.fechaApertura}\r\n \r\n />\r\n {state.formErrors.fechaApertura.length > 0 && (\r\n \r\n {state.formErrors.fechaApertura}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangePlazo(e,state))}\r\n >\r\n \r\n {state.formErrors.plazo.length > 0 && (\r\n \r\n {state.formErrors.plazo}\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n {\r\n !recaptchaValid && Por favor, completa el captcha para seguir con el proceso.\r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n\r\n }\r\n export default ExtraAhorro;\r\n\r\n ","import React, { useState, useRef} from 'react';\r\nimport {useSelector, useDispatch} from 'react-redux';\r\nimport ReCAPTCHA from 'react-google-recaptcha'\r\nimport {environment} from '../../app/store/environment.js';\r\nimport * as actions from '../../app/store/actions';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport DatoInformacionProducto from '../comun/DatoInformacionProducto';\r\nimport DatePicker, { registerLocale } from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { RiCurrencyLine } from \"react-icons/ri\";\r\nimport es from 'date-fns/locale/es';\r\nimport '../estilos/estilosPlazoFijo.css';\r\nregisterLocale(\"es\",es);\r\n\r\nconst FondoJubilacion = (props) => {\r\n const [recaptchaValid, setRecaptchaValid] = useState(false);\r\n\r\n const reCAPTCHA_TOKEN = environment.RECAPTCHA_KEY;\r\n\r\n // Crear una referencia para el captcha\r\n const captchaRef = useRef(null);\r\n\r\n // Obtener el dispatch para ejecutar las acciones\r\n const dispatch = useDispatch();\r\n\r\n // Obtener el estado global para leer los valores\r\n const state = useSelector(state => state);\r\n\r\n const onChangeRecaptcha = (value) => {\r\n if (value) {\r\n console.log(\"Recaptcha válido\");\r\n setRecaptchaValid(true);\r\n } else{\r\n setRecaptchaValid(false);\r\n }\r\n }\r\n\r\n const onExpiredRecaptcha = () => {\r\n setRecaptchaValid(false);\r\n }\r\n\r\n const onSubmitForm = () => {\r\n const captchaValue = captchaRef.current.getValue()\r\n if (captchaValue) {\r\n dispatch(actions.validarSimulacion(state))\r\n } else {\r\n setRecaptchaValid(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {state.formErrors.retiroInt.length > 0 && (\r\n {state.formErrors.retiroInt}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.cargarFechaApertura(e.target.value))} \r\n locale = \"es\"\r\n step=\"1\" min={state.fechaAperturaMin} value={state.fechaApertura}\r\n \r\n />\r\n {state.formErrors.fechaApertura.length > 0 && (\r\n \r\n {state.formErrors.fechaApertura}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangeMontoApertura(e, state))}\r\n >\r\n \r\n {state.formErrors.montoApertura.length > 0 && (\r\n \r\n {state.formErrors.montoApertura}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangePlazo(e, state))}\r\n >\r\n \r\n {state.formErrors.plazo.length > 0 && (\r\n \r\n {state.formErrors.plazo}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n dispatch(actions.seleccionarCampanias(state, recaptchaValid))} \r\n checked={state.isCheckCampania} disabled={state.isDeshabilitarCheckCampania}\r\n >\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n {\r\n !recaptchaValid && Por favor, completa el captcha para seguir con el proceso.\r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n\r\n}\r\n\r\nexport default FondoJubilacion;","import React, { useState, useRef} from 'react';\r\nimport {useSelector, useDispatch} from 'react-redux';\r\nimport ReCAPTCHA from 'react-google-recaptcha'\r\nimport {environment} from '../../app/store/environment.js';\r\nimport * as actions from '../../app/store/actions';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { RiCurrencyLine } from \"react-icons/ri\";\r\nimport DatePicker from 'react-datepicker';\r\nimport MensajeError from '../comun/MensajeError';\r\nimport DatoInformacionProducto from '../comun/DatoInformacionProducto';\r\n\r\nconst PlanAhorro = (props) => {\r\n\r\n const [recaptchaValid, setRecaptchaValid] = useState(false);\r\n\r\n const reCAPTCHA_TOKEN = environment.RECAPTCHA_KEY;\r\n\r\n // Crear una referencia para el captcha\r\n const captchaRef = useRef(null);\r\n\r\n // Obtener el dispatch para ejecutar las acciones\r\n const dispatch = useDispatch();\r\n\r\n // Obtener el estado global para leer los valores\r\n const state = useSelector(state => state);\r\n\r\n const onChangeRecaptcha = (value) => {\r\n if (value) {\r\n setRecaptchaValid(true);\r\n } else{\r\n setRecaptchaValid(false);\r\n }\r\n }\r\n\r\n const onExpiredRecaptcha = () => {\r\n setRecaptchaValid(false);\r\n }\r\n\r\n const onSubmitForm = () => {\r\n const captchaValue = captchaRef.current.getValue()\r\n if (captchaValue) {\r\n dispatch(actions.validarSimulacionPlanAhorro(state))\r\n } else {\r\n setRecaptchaValid(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.cargarFechaApertura(e.target.value))} \r\n locale = \"es\"\r\n step=\"1\" min={state.fechaAperturaMin} value={state.fechaApertura}\r\n \r\n />\r\n {state.formErrors.fechaApertura.length > 0 && (\r\n \r\n {state.formErrors.fechaApertura}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangeMontoApertura(e, state))}\r\n >\r\n \r\n {state.formErrors.montoApertura.length > 0 && (\r\n \r\n {state.formErrors.montoApertura}\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangeNumeroDepositos(e, state))}\r\n >\r\n \r\n {state.formErrors.numeroDepositos.length > 0 && (\r\n \r\n {state.formErrors.numeroDepositos}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n dispatch(actions.handleChangeMontoDeposito(e, state))}\r\n >\r\n \r\n {state.formErrors.montoDeposito.length > 0 && (\r\n {state.formErrors.montoDeposito}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n dispatch(actions.handleChange(e))}\r\n >\r\n \r\n {state.formErrors.diaDeposito.length > 0 && (\r\n \r\n {state.formErrors.diaDeposito}\r\n )}\r\n
\r\n dispatch(actions.seleccionarProxMes())} checked={state.isCheckProxMes}>\r\n \r\n
\r\n
\r\n
\r\n {\r\n state.formErrors.planAhorro.length > 0 ? : null\r\n }\r\n
\r\n
\r\n\r\n \r\n {\r\n !recaptchaValid && Por favor, completa el captcha para seguir con el proceso.\r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\nexport default PlanAhorro;\r\n ","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport * as actions from '../app/store/actions';\r\nimport { registerLocale } from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport './estilos/estilosPlazoFijo.css';\r\nimport es from 'date-fns/locale/es';\r\nimport Ahorromas from './productos/Ahorromas';\r\nimport ExtraAhorro from './productos/ExtraAhorro';\r\nimport FondoJubilacion from './productos/FondoJubilacion';\r\nimport PlanAhorro from './productos/PlanAhorro';\r\nimport StateManager from 'react-select';\r\nregisterLocale(\"es\",es);\r\n\r\n\r\nclass PlazoFijo extends Component {\r\n\r\n constructor(props, context) {\r\n super(props, context);\r\n this.state = {\r\n isReady: true\r\n };\r\n }\r\n\r\n componentDidMount(){\r\n document.title = 'Simulador Plazo Fijo'\r\n this.props.Inicializar(this.props);\r\n }\r\n render() {\r\n return ( this.state.isReady ? (\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {this.props.formErrors.producto.length > 0 && (\r\n \r\n {this.props.formErrors.producto}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n {this.props.formErrors.agencia.length > 0 && (\r\n \r\n {this.props.formErrors.agencia}\r\n )}\r\n
\r\n
\r\n \r\n
\r\n {\r\n this.props.showAhorromas? : null\r\n }\r\n {\r\n this.props.showExtraAhorro? : null\r\n }\r\n {\r\n this.props.showFondoJubilacion? : null \r\n }\r\n {\r\n this.props.showPlanAhorro? : null \r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n ) : null);\r\n }\r\n }\r\n \r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n agencias: state.agencias,\r\n tipoMoneda: state.tipoMoneda,\r\n personerias: state.personerias,\r\n tiposRetiroInt : state.tiposRetiroInt,\r\n selectedProducto: state.selectedProducto,\r\n selectedAgencia: state.selectedAgencia,\r\n selectedPersoneria: state.selectedPersoneria,\r\n selectedMoneda: state.selectedMoneda,\r\n selectedRetiroInt: state.selectedRetiroInt,\r\n estadoModal: state.estadoModal,\r\n isITFEfectivo : state.isITFEfectivo,\r\n isTasaEspecial: state.isTasaEspecial,\r\n isDeshabilitarTasaEspecial: state.isDeshabilitarTasaEspecial,\r\n selectedTab: state.selectedTab,\r\n fechaApertura: state.fechaApertura,\r\n showAhorromas: state.showAhorromas,\r\n showExtraAhorro: state.showExtraAhorro,\r\n showFondoJubilacion: state.showFondoJubilacion,\r\n showPlanAhorro: state.showPlanAhorro,\r\n plazo: state.plazo,\r\n importeITF: state.importeITF,\r\n montoApertura: state.montoApertura,\r\n montoAperturaITF: state.montoAperturaITF,\r\n numeroDepositos: state.numeroDepositos,\r\n valores: state.valores,\r\n montoInicio: state.montoInicio,\r\n TEACancelacion: state.TEACancelacion,\r\n tasaCancelacion: state.tasaCancelacion,\r\n estadoImprmir: state.estadoImprmir,\r\n datosResultado: state.datosResultado,\r\n formErrors : state.formErrors,\r\n error : state.error,\r\n});\r\n\r\n\r\nexport default connect(mapStateToProps,actions)(PlazoFijo);\r\n ","import React, {Component} from 'react';\r\nimport '../estilos/estilosPlazoFijo.css';\r\nimport * as actions from '../../app/store/actions';\r\nimport {connect} from \"react-redux\";\r\n\r\nclass DescripcionProducto extends Component {\r\n\r\n render(){\r\n return (\r\n
\r\n
{this.props.tituloProducto}:
\r\n

{this.props.descripcionProducto}

\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n productos: state.productos,\r\n selectedProducto: state.selectedProducto,\r\n tituloProducto: state.tituloProducto,\r\n descripcionProducto : state.descripcionProducto,\r\n error: state.error,\r\n});\r\n\r\nexport default connect(mapStateToProps,actions)(DescripcionProducto);\r\n ","import React from 'react';\r\nimport ReactDOM from 'react-dom/client';\r\nimport store from './app/store';\r\nimport {Provider} from 'react-redux';\r\nimport Cabecera from './components/comun/Cabecera';\r\nimport PiePagina from './components/comun/PiePagina';\r\nimport ModalPlazoFijo from './components/comun/ModalPlazoFijo';\r\nimport ModalImprimir from './components/comun/ModalImprimir';\r\nimport PlazoFijo from './components/PlazoFijo';\r\nimport DescripcionProducto from './components/comun/DescripcionProducto';\r\nimport ResultadoAhorroMas from './components/comun/ResultadoAhorromas';\r\nimport './components/estilos/estilosPlazoFijo.css';\r\n\r\n//Inserción\r\nReactDOM.createRoot(document.getElementById('root')).render(\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n\r\n\r\n","module.exports = __webpack_public_path__ + \"static/media/caja-red.e4ea0294.svg\";"],"sourceRoot":""}