¡Importante! Tu Programa de Beneficios tiene noticias para ti
Hazte Cliente
Error 500: org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "<th:block th:with="authenticated=${#authorization.expression('isAuthenticated()')}" > <!doctype html> <html lang="es"> <head> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-MQ5TVX9');</script> <!-- End Google Tag Manager --> <script> window.dataLayer = window.dataLayer || []; window.gtag = function() { dataLayer.push(arguments); var args = Array.prototype.slice.call(arguments); var lastArg = args[args.length - 1]; if (lastArg && typeof lastArg === 'object') { var callback = lastArg.event_callback || lastArg.eventCallback; if (typeof callback === 'function') { callback(); } } }; </script> <script th:src="@{/resource/styles/belt.js}"></script> <meta charset="utf-8"> <th:block th:if="${submenuurl == null}"> <title>ScotiaRewards</title> <meta name="description" content="¡Usa tus tarjetas Scotia y suma beneficios! Canjea tus ScotiaPesos por entradas al cine, Gift Card y muchos más premios."> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront"> <meta property="og:title" content="ScotiaRewards"> <meta property="og:description" content="¡Usa tus tarjetas Scotia y suma beneficios! Canjea tus ScotiaPesos por entradas al cine, Gift Card y muchos más premios."> <meta name="twitter:title" content="ScotiaRewards"> <meta name="twitter:description" content="¡Usa tus tarjetas Scotia y suma beneficios! Canjea tus ScotiaPesos por entradas al cine, Gift Card y muchos más premios."> </th:block> <th:block th:if="${submenuurl != null}"> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Descuentos')}"> <title>Descuentos | Scotia</title> <meta name="description" content="Descubre los mejores descuentos exclusivos de los ScotiaRewards. Aprovecha ofertas en viajes, entretenimiento, tecnología y más."> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/descuentos"> <meta property="og:title" content="Descuentos | Scotia"> <meta property="og:description" content="Descubre los mejores descuentos exclusivos de los ScotiaRewards. Aprovecha ofertas en viajes, entretenimiento, tecnología y más."> <meta name="twitter:title" content="Descuentos | Scotia"> <meta name="twitter:description" content="Descubre los mejores descuentos exclusivos de los ScotiaRewards. Aprovecha ofertas en viajes, entretenimiento, tecnología y más."> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Beneficios en Cuotas')}"> <title>Beneficios en Cuotas | Scotia</title> <meta name="description" content="Beneficios en Cuotas sin Interés, conoce aquí todas las promociones y ofertas pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/beneficios-en-cuotas"> <meta property="og:title" content="Beneficios en Cuotas | Scotia"> <meta property="og:description" content="Beneficios en Cuotas sin Interés, conoce aquí todas las promociones y ofertas pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta name="twitter:title" content="Beneficios en Cuotas | Scotia"> <meta name="twitter:description" content="Beneficios en Cuotas sin Interés, conoce aquí todas las promociones y ofertas pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Especial del Mes')}"> <title>Especial del Mes | Scotia</title> <meta name="description" content="Especial del Mes, descubre las promociones y ofertas exclusivas para este mes pagando con tus Tarjetas Scotia."> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/especial-del-mes"> <meta property="og:title" content="Especial del Mes | Scotia"> <meta property="og:description" content="Especial del Mes, descubre las promociones y ofertas exclusivas para este mes pagando con tus Tarjetas Scotia."> <meta name="twitter:title" content="Especial del Mes | Scotia"> <meta name="twitter:description" content="Especial del Mes, descubre las promociones y ofertas exclusivas para este mes pagando con tus Tarjetas Scotia."> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Misiones de Beneficios')}"> <title>Misiones de Beneficios | Scotia</title> <meta name="description" content="Misiones de Beneficios, completa misiones y gana recompensas exclusivas con tus Tarjetas Scotia. ¡Descubre más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/misiones-de-beneficios"> <meta property="og:title" content="Misiones de Beneficios | Scotia"> <meta property="og:description" content="Misiones de Beneficios, completa misiones y gana recompensas exclusivas con tus Tarjetas Scotia. ¡Descubre más aquí!"> <meta name="twitter:title" content="Misiones de Beneficios | Scotia"> <meta name="twitter:description" content="Misiones de Beneficios, completa misiones y gana recompensas exclusivas con tus Tarjetas Scotia. ¡Descubre más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Copec')}"> <title>Copec | Scotia</title> <meta name="description" content="Copec, obtén beneficios y descuentos exclusivos en estaciones de servicio Copec pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/copec"> <meta property="og:title" content="Copec | Scotia"> <meta property="og:description" content="Copec, obtén beneficios y descuentos exclusivos en estaciones de servicio Copec pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta name="twitter:title" content="Copec | Scotia"> <meta name="twitter:description" content="Copec, obtén beneficios y descuentos exclusivos en estaciones de servicio Copec pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Viajes')}"> <title>Viajes | Scotia</title> <meta name="description" content="Escapadas y Experiencias en Viajes disponibles con los ScotiaRewards. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/viajes"> <meta property="og:title" content="Viajes | Scotia"> <meta property="og:description" content="Escapadas y Experiencias en Viajes disponibles con los ScotiaRewards. ¡Conoce más aquí!"> <meta name="twitter:title" content="Viajes | Scotia"> <meta name="twitter:description" content="Escapadas y Experiencias en Viajes disponibles con los ScotiaRewards. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Cinépolis')}"> <title>Cinépolis | Scotia</title> <meta name="description" content="Todos los días descuentos en entradas pagando con tus tarjetas de crédito y débito Scotia. ¡Ver descuentos aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/cinepolis"> <meta property="og:title" content="Cinépolis | Scotia"> <meta property="og:description" content="Todos los días descuentos en entradas pagando con tus tarjetas de crédito y débito Scotia. ¡Ver descuentos aquí!"> <meta name="twitter:title" content="Cinépolis | Scotia"> <meta name="twitter:description" content="Todos los días descuentos en entradas pagando con tus tarjetas de crédito y débito Scotia. ¡Ver descuentos aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'PDF Beneficios junio')}"> <title>PDF Beneficios junio | Scotia</title> <meta name="description" content="PDF Beneficios junio, descarga y consulta los beneficios y descuentos disponibles para el mes de junio. ¡Descarga aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/pdf-beneficios-junio"> <meta property="og:title" content="PDF Beneficios junio | Scotia"> <meta property="og:description" content="PDF Beneficios junio, descarga y consulta los beneficios y descuentos disponibles para el mes de junio. ¡Descarga aquí!"> <meta name="twitter:title" content="PDF Beneficios junio | Scotia"> <meta name="twitter:description" content="PDF Beneficios junio, descarga y consulta los beneficios y descuentos disponibles para el mes de junio. ¡Descarga aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta Gourmet')}"> <title>Descuentos exclusivos Ruta Gourmet | Scotia</title> <meta name="description" content="Hasta 50% Dcto. con tus Tarjetas Scotia en la Ruta Gourmet. Disfruta descuentos en restaurantes para todas las regiones. Explora las ofertas ahora."> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/ruta-gourmet"> <meta property="og:title" content="Descuentos exclusivos Ruta Gourmet | Scotia"> <meta property="og:description" content="Hasta 50% Dcto. con tus Tarjetas Scotia en la Ruta Gourmet. Disfruta descuentos en restaurantes para todas las regiones. Explora las ofertas ahora."> <meta name="twitter:title" content="Descuentos exclusivos Ruta Gourmet | Scotia"> <meta name="twitter:description" content="Hasta 50% Dcto. con tus Tarjetas Scotia en la Ruta Gourmet. Disfruta descuentos en restaurantes para todas las regiones. Explora las ofertas ahora."> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta Gourmet Internacional')}"> <title>Ruta Gourmet Internacional | Scotia</title> <meta name="description" content="Ruta Gourmet Internacional, disfruta de la mejor gastronomía internacional con ScotiaRewards. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/ruta-gourmet-internacional"> <meta property="og:title" content="Ruta Gourmet Internacional | Scotia"> <meta property="og:description" content="Ruta Gourmet Internacional, disfruta de la mejor gastronomía internacional con ScotiaRewards. ¡Conoce más aquí!"> <meta name="twitter:title" content="Ruta Gourmet Internacional | Scotia"> <meta name="twitter:description" content="Ruta Gourmet Internacional, disfruta de la mejor gastronomía internacional con ScotiaRewards. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta de Viñas')}"> <title>Ruta de Viñas | Scotia</title> <meta name="description" content="Ruta de Viñas, descubre las mejores viñas y disfruta de catas exclusivas con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/ruta-de-vinas"> <meta property="og:title" content="Ruta de Viñas | Scotia"> <meta property="og:description" content="Ruta de Viñas, descubre las mejores viñas y disfruta de catas exclusivas con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta name="twitter:title" content="Ruta de Viñas | Scotia"> <meta name="twitter:description" content="Ruta de Viñas, descubre las mejores viñas y disfruta de catas exclusivas con tus Tarjetas Scotia. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta de Comida Rápida')}"> <title>Ruta de Comida Rápida | Scotia</title> <meta name="description" content="Ruta de Comida Rápida, disfruta de descuentos y promociones en tus restaurantes de comida rápida favoritos con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/ruta-de-comida-rapida"> <meta property="og:title" content="Ruta de Comida Rápida | Scotia"> <meta property="og:description" content="Ruta de Comida Rápida, disfruta de descuentos y promociones en tus restaurantes de comida rápida favoritos con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta name="twitter:title" content="Ruta de Comida Rápida | Scotia"> <meta name="twitter:description" content="Ruta de Comida Rápida, disfruta de descuentos y promociones en tus restaurantes de comida rápida favoritos con tus Tarjetas Scotia. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta del Pádel')}"> <title>Ruta del Pádel | Scotia</title> <meta name="description" content="Ruta del Pádel, disfruta de beneficios exclusivos en clubes de pádel pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/ruta-del-padel"> <meta property="og:title" content="Ruta del Pádel | Scotia"> <meta property="og:description" content="Ruta del Pádel, disfruta de beneficios exclusivos en clubes de pádel pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta name="twitter:title" content="Ruta del Pádel | Scotia"> <meta name="twitter:description" content="Ruta del Pádel, disfruta de beneficios exclusivos en clubes de pádel pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Concurso un año de combustible COPEC')}"> <title>Concurso un año de combustible COPEC | Scotia</title> <meta name="description" content="Concurso un año de combustible COPEC, participa y gana combustible gratis por un año pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/concurso-un-ano-de-combustible-copec"> <meta property="og:title" content="Concurso un año de combustible COPEC | Scotia"> <meta property="og:description" content="Concurso un año de combustible COPEC, participa y gana combustible gratis por un año pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta name="twitter:title" content="Concurso un año de combustible COPEC | Scotia"> <meta name="twitter:description" content="Concurso un año de combustible COPEC, participa y gana combustible gratis por un año pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Concurso gift card de experiencias Bigbox')}"> <title>Concurso gift card de experiencias Bigbox | Scotia</title> <meta name="description" content="Concurso gift card de experiencias Bigbox, participa y gana gift cards para experiencias únicas pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/concurso-gift-card-de-experiencias-bigbox"> <meta property="og:title" content="Concurso gift card de experiencias Bigbox | Scotia"> <meta property="og:description" content="Concurso gift card de experiencias Bigbox, participa y gana gift cards para experiencias únicas pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> <meta name="twitter:title" content="Concurso gift card de experiencias Bigbox | Scotia"> <meta name="twitter:description" content="Concurso gift card de experiencias Bigbox, participa y gana gift cards para experiencias únicas pagando con tus Tarjetas Scotia. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Misiones y Niveles')}"> <title>Misiones y Niveles | Scotia</title> <meta name="description" content="Misiones y Niveles, completa misiones y sube de nivel para ganar recompensas exclusivas con ScotiaRewards. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/misiones-y-niveles"> <meta property="og:title" content="Misiones y Niveles | Scotia"> <meta property="og:description" content="Misiones y Niveles, completa misiones y sube de nivel para ganar recompensas exclusivas con ScotiaRewards. ¡Conoce más aquí!"> <meta name="twitter:title" content="Misiones y Niveles | Scotia"> <meta name="twitter:description" content="Misiones y Niveles, completa misiones y sube de nivel para ganar recompensas exclusivas con ScotiaRewards. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Todo sobre Pesos Scotia')}"> <title>Todo sobre Pesos Scotia | Scotia</title> <meta name="description" content="Todo sobre Pesos Scotia, conoce cómo acumular y canjear tus Pesos Scotia para obtener recompensas exclusivas. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/todo-sobre-pesos-scotia"> <meta property="og:title" content="Todo sobre Pesos Scotia | Scotia"> <meta property="og:description" content="Todo sobre Pesos Scotia, conoce cómo acumular y canjear tus Pesos Scotia para obtener recompensas exclusivas. ¡Conoce más aquí!"> <meta name="twitter:title" content="Todo sobre Pesos Scotia | Scotia"> <meta name="twitter:description" content="Todo sobre Pesos Scotia, conoce cómo acumular y canjear tus Pesos Scotia para obtener recompensas exclusivas. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Actualización de sistema')}"> <title>Actualización de sistema | Scotia</title> <meta name="description" content="Actualización de sistema, mantente informado sobre las actualizaciones y mejoras en el sistema de ScotiaRewards. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/actualizacion-de-sistema"> <meta property="og:title" content="Actualización de sistema | Scotia"> <meta property="og:description" content="Actualización de sistema, mantente informado sobre las actualizaciones y mejoras en el sistema de ScotiaRewards. ¡Conoce más aquí!"> <meta name="twitter:title" content="Actualización de sistema | Scotia"> <meta name="twitter:description" content="Actualización de sistema, mantente informado sobre las actualizaciones y mejoras en el sistema de ScotiaRewards. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Función especial MI VILLANO FAVORITO 4')}"> <title>Función especial MI VILLANO FAVORITO 4 | Scotia</title> <meta name="description" content="Función especial MI VILLANO FAVORITO 4, canjea tus Pesos Scotia por entradas exclusivas para la función especial de MI VILLANO FAVORITO 4. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/funcion-especial-mi-villano-favorito-4"> <meta property="og:title" content="Función especial MI VILLANO FAVORITO 4 | Scotia"> <meta property="og:description" content="Función especial MI VILLANO FAVORITO 4, canjea tus Pesos Scotia por entradas exclusivas para la función especial de MI VILLANO FAVORITO 4. ¡Conoce más aquí!"> <meta name="twitter:title" content="Función especial MI VILLANO FAVORITO 4 | Scotia"> <meta name="twitter:description" content="Función especial MI VILLANO FAVORITO 4, canjea tus Pesos Scotia por entradas exclusivas para la función especial de MI VILLANO FAVORITO 4. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Canje entretenimiento')}"> <title>Canje entretenimiento | Scotia</title> <meta name="description" content="Canje entretenimiento, utiliza tus Pesos Scotia para canjear por entretenimiento exclusivo, entradas a eventos y más. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/canje-entretenimiento"> <meta property="og:title" content="Canje entretenimiento | Scotia"> <meta property="og:description" content="Canje entretenimiento, utiliza tus Pesos Scotia para canjear por entretenimiento exclusivo, entradas a eventos y más. ¡Conoce más aquí!"> <meta name="twitter:title" content="Canje entretenimiento | Scotia"> <meta name="twitter:description" content="Canje entretenimiento, utiliza tus Pesos Scotia para canjear por entretenimiento exclusivo, entradas a eventos y más. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Concursos Clientes')}"> <title>Concursos Clientes | Scotia</title> <meta name="description" content="Concursos Clientes, participa en concursos exclusivos para clientes Scotia y gana premios impresionantes. ¡Conoce más aquí!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/concursos-clientes"> <meta property="og:title" content="Concursos Clientes | Scotia"> <meta property="og:description" content="Concursos Clientes, participa en concursos exclusivos para clientes Scotia y gana premios impresionantes. ¡Conoce más aquí!"> <meta name="twitter:title" content="Concursos Clientes | Scotia"> <meta name="twitter:description" content="Concursos Clientes, participa en concursos exclusivos para clientes Scotia y gana premios impresionantes. ¡Conoce más aquí!"> </th:block> <th:block th:if="${#strings.containsIgnoreCase(submenuurl.nombre, 'Entradas Cine')}"> <title>Entradas Cine | Scotia</title> <meta name="description" content="Entradas Cine, canjea tus Pesos Scotia por entradas gratis al Cine. ¡Disfruta de las últimas películas y ahorra dinero!"> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront/categoria/mundos/entradas-cine"> <meta property="og:title" content="Entradas Cine | Scotia"> <meta property="og:description" content="Entradas Cine, canjea tus Pesos Scotia por entradas gratis al Cine. ¡Disfruta de las últimas películas y ahorra dinero!"> <meta name="twitter:title" content="Entradas Cine | Scotia"> <meta name="twitter:description" content="Entradas Cine, canjea tus Pesos Scotia por entradas gratis al Cine. ¡Disfruta de las últimas películas y ahorra dinero!"> </th:block> <th:block th:if="${ !#strings.containsIgnoreCase(submenuurl.nombre, 'Descuentos') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Beneficios en Cuotas') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Especial del Mes') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Misiones de Beneficios') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Copec') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Viajes') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Cinépolis') && !#strings.containsIgnoreCase(submenuurl.nombre, 'PDF Beneficios junio') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta Gourmet') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta Gourmet Internacional') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta de Viñas') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta de Comida Rápida') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Ruta del Pádel') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Concurso un año de combustible COPEC') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Concurso gift card de experiencias Bigbox') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Misiones y Niveles') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Todo sobre Pesos Scotia') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Actualización de sistema') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Función especial MI VILLANO FAVORITO 4') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Canje entretenimiento') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Concursos Clientes') && !#strings.containsIgnoreCase(submenuurl.nombre, 'Entradas Cine')}"> <title>ScotiaRewards</title> <meta name="description" content="¡Usa tus tarjetas Scotia y suma beneficios! Canjea tus ScotiaPesos por entradas al cine, Gift Card y muchos más premios."> <meta property="og:url" content="https://www.scotiarewards.cl/scclubfront"> <meta property="og:title" content="ScotiaRewards"> <meta property="og:description" content="¡Usa tus tarjetas Scotia y suma beneficios! Canjea tus ScotiaPesos por entradas al cine, Gift Card y muchos más premios."> <meta name="twitter:title" content="ScotiaRewards"> <meta name="twitter:description" content="¡Usa tus tarjetas Scotia y suma beneficios! Canjea tus ScotiaPesos por entradas al cine, Gift Card y muchos más premios."> </th:block> </th:block> <meta property="og:site_name" content="ScotiaRewards"> <meta property="og:type" content="website"> <meta property="og:locale" content="es"> <meta property="og:image:secure_url" content="https://www.scotiarewards.cl/scclubfront/resource/logos/ScotiaRew231225.jpg"> <meta property="og:image" content="https://www.scotiarewards.cl/scclubfront/resource/logos/ScotiaRew231225.jpg"> <meta name="twitter:card" content="summary"> <meta name="twitter:image" content="https://www.scotiarewards.cl/scclubfront/resource/logos/ScotiaRew231225.jpg"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" th:href="@{/resource/images/favicon.ico}"> <link rel="stylesheet" type="text/css" th:href="@{/resource/css/bootstrap.min.css}"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/digital/css/font-icon.css"> <link rel="stylesheet" href="https://cdn.agilitycms.com/scotiabank-chile/librerias/canvas-framework/iconos-canvas.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/scotia-grid.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/scotia-canvas.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/librerias/owl.carousel.min.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/librerias/owl.theme.default.min.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/animate/sc-animate-scroll.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/animate/sc-element-animate.min.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/scotia-animate.min.css"> <link rel="stylesheet" href="https://cdn.aglty.io/scotiabank-chile/css/hover-public.css"> <link rel="stylesheet" type="text/css" th:href="@{/resource/css/stylesprod.css}"/> <link rel="stylesheet" type="text/css" th:href="@{/resource/css/fixsiteprod.css}"/> <link rel="stylesheet" type="text/css" th:href="@{/resource/css/all.min.css}"> <link rel="stylesheet" type="text/css" href="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/boton-flotante/boton-flotante.css"/> <th:block sec:authorize="isAuthenticated()"> <!-- <link th:if="${#arrays.contains(usuario.tipoCliente, 'SINGULAR')}" rel="stylesheet" type="text/css" th:href="@{/resource/css/premium.css}"/> --> <!-- <link th:if="${#arrays.contains(usuario.tipoCliente, 'PREMIUM')}" rel="stylesheet" type="text/css" th:href="@{/resource/css/premium.css}"/> --> <!-- <link th:if="${#arrays.contains(usuario.tipoCliente, 'WEALTH')}" rel="stylesheet" type="text/css" th:href="@{/resource/css/premium.css}"/> --> <!-- <link th:if="${#arrays.contains(usuario.tipoCliente, 'INFINITE')}" rel="stylesheet" type="text/css" th:href="@{/resource/css/premium.css}"/> --> <!-- <link th:if="${#arrays.contains(usuario.tipoCliente, 'PREMIUM')}" rel="stylesheet" type="text/css" th:href="@{/resource/css/singular-1.1.0.css}"/> --> </th:block> <link rel="stylesheet" type="text/css" th:href="@{/resource/styles/stylessf.css}"> <script th:src="@{/resource/js/jquery.min.js}"></script> <script th:src="@{/resource/js/popper.min.js}"></script> <script th:src="@{/resource/js/bootstrap.min.js}"></script> <script th:src="@{/resource/js/lealtad3603.js}"></script> <script src="https://cdn.aglty.io/scotiabank-chile/librerias/canvas-framework/canvas-library.js"></script> <script src="https://cdn.aglty.io/scotiabank-chile/librerias/owl.carousel.min.js"></script> <script src="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/scotia-script.js"></script> <script src="https://cdn.aglty.io/scotiabank-chile/librerias/lazysizes.min.js"></script> <script sec:authorize="!isAuthenticated()" th:src="@{/resource/js/anonymous.js}"></script> <script src="https://dlslhpkfqfglo.cloudfront.net/cdn/ca/mutha-scotiacl-wrapper.js?a=3ba3f6a5dea64bf74de14059864eb048" defer referrerpolicy="strict-origin-when-cross-origin"></script> <meta name="xmlns:c" content="beneficios.scotiabank.cl"> <th:block sec:authorize="isAuthenticated()"> <script th:inline="javascript"> //const perfil = [[${usuario.tipoCliente}]]; //gtag('set', 'dimension1', perfil); </script> </th:block> <!-- fixs canvas scotiabank --> <style> .show { visibility: visible; } *{ text-decoration:initial!important; } .sc-btn-scotiazero { right: 1%; } body { font-family: 'Scotia', sans-serif; } .scotia-plum { background:#7B2771!important; } .scotia-sky { background:#ADE0EE!important; } .scotia-lilac { background:#BDC2EF!important; } </style> <!-- /fixs canvas scotiabank --> <!-- schema scotiabank --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "¿Qué es ScotiaRewards?", "acceptedAnswer": { "@type": "Answer", "text": "ScotiaRewards es un programa de beneficios, descuentos y acumulación de puntos que Scotiabank pone a disposición de sus clientes, para brindarles una mejor experiencia en el uso de sus productos y servicios." } }, { "@type": "Question", "name": "¿Quiénes pueden ser socios de ScotiaRewards?", "acceptedAnswer": { "@type": "Answer", "text": "Todo cliente Scotiabank que siendo una persona natural, cuente con al menos una Tarjeta de Crédito. Están excluidas del programa las tarjetas empresariales, corporativas, Visa Enjoy, Visa Movistar, Visa Forum, Visa Congelada, Visa Crédito Express, Visa Bex y Tarjeta Universal." } }, { "@type": "Question", "name": "¿Existen requisitos para participar de los ScotiaRewards?", "acceptedAnswer": { "@type": "Answer", "text": "Para participar y obtener cualquier beneficio debes mantener activa y vigente una Tarjeta de Crédito de Scotiabank que no presente ningún tipo de bloqueo. Además, no puede tener ningún producto del banco impago o en mora." } }, { "@type": "Question", "name": "¿Hay transacciones que no acumulan Pesos Scotia?", "acceptedAnswer": { "@type": "Answer", "text": "Sí, los siguientes conceptos están excluidos de la acumulación de puntos: - Avances, incluyendo avances en efectivo y en cuotas. - Compras en casinos y juegos de azar. - Compras en combustibles. - Pago de impuestos en general (Contribuciones, IVA, etc.). - Cargos hechos por el banco, tales como intereses, comisiones e impuestos. - Pago en comercios del rubro servicios financieros. - Transacciones rechazadas. - Transacciones en cajeros automáticos. - Notas de débito y/o crédito. - Pago de servicios. - Pago de seguros. - Inmobiliarias." } }, { "@type": "Question", "name": "¿Acumulan las tarjetas adicionales?", "acceptedAnswer": { "@type": "Answer", "text": "Sí, pero ten presente que los Pesos Scotia de las tarjetas de crédito con usuarios adicionales, serán cargados siempre a la cuenta del cliente titular, cualquiera haya sido la tarjeta que generó la acumulación de los puntos a abonar." } }, { "@type": "Question", "name": "¿Cómo puedo saber cuántos ScotiaPuntos tengo acumulados?", "acceptedAnswer": { "@type": "Answer", "text": "Ingresa a www.scotiaclub.cl, en el costado superior derecho, escribe tu rut y clave, para acceder a tu sitio privado. En la sección “Mi Cartola” puedes ver los Pesos Scotia disponibles y aquellos que están próximos a vencer." } }, { "@type": "Question", "name": "¿Qué información puedo encontrar en mi sitio privado?", "acceptedAnswer": { "@type": "Answer", "text": "- “Mi Cartola” ofrece el detalle de tus Pesos Scotia acumulados, canjeados y sus vencimientos. - “Mis Inscripciones” permite conocer los Pesos Scotia que has elegido inscribir en los rubros disponibles. - “Mis Cupones”, puedes revisar las gift cards y entradas al cine canjeadas con opción de imprimir para hacerlos válidos." } }, { "@type": "Question", "name": "¿Hay un límite mensual de acumulación de Pesos Scotia?", "acceptedAnswer": { "@type": "Answer", "text": "Sí, tu tarjeta de crédito podrá acumular un máximo de puntos por facturación de la Tarjeta de Crédito, equivalente a 1% de tu cupo nacional disponible, considerando su monto disponible al primer día hábil del mes anterior al período de acumulación. Cada tipo de tarjeta tiene su límite, por lo que tu monto total máximo acumulable, será el resultado de sumar los límites anteriores." } }, { "@type": "Question", "name": "¿Cómo puedo canjear mis Pesos Scotia?", "acceptedAnswer": { "@type": "Answer", "text": "Si eres titular de los productos indicados en la pregunta N° 2 y tienes Pesos Scotia disponibles: Ingresa a www.scotiaclub.cl en la sección “Canje Pesos Scotia”, aquí tienes la opción de canjear tus Pesos Scotia. Elige la opción que quieras, mientras tengas los Pesos Scotia requeridos para cada canje. Otra opción para realizar el canje, es descargar nuestra App Scotiabank Go en tu celular (disponible para iOS y Android). Para ello: - Paga tu compra con alguna de las tarjetas de crédito indicadas en la pregunta 1, sin cuotas. - Si el monto de tu compra es igual o menor a tus puntos acumulados, podrás elegir usar tus puntos en esa compra. Si eliges esta opción, dentro de los 7 días hábiles siguientes depositaremos en dinero los puntos canjeados en tu tarjeta de crédito. El Banco no se hace responsable ni se involucrará en eventuales disputas entre titulares y usuarios adicionales. Una vez hecho el canje, no habrá derecho a retracto a excepción de existir algún problema en el sistema de canje." } }, { "@type": "Question", "name": "¿Cuál es la vigencia de mis Pesos Scotia?", "acceptedAnswer": { "@type": "Answer", "text": "- Visa/Mastercard Gold 18 meses. - Visa/Mastercard Platinum 18 meses. - Mastercard Black 18 meses. - Visa Infinite 24 meses. - Visa Singular 24 meses. - Luego de este periodo se procede a la eliminación, descontando desde el puntaje más antiguo hasta el recientemente acumulado, de lo contrario se pierden sin opción de extender o recuperar. Otros motivos de pérdida de Pesos Scotia son: - Retraso en el cumplimiento de alguna obligación con el banco por más de 30 días. - Cierre de la Tarjeta de Crédito. - Tarjeta de Crédito vencida y no renovada por más de 60 días. - Fallecimiento del titular. - Cualquier otra circunstancia que origine la suspensión o término del uso de las Tarjetas de Crédito de acuerdo a lo establecido en el respectivo Contrato de uso de Tarjetas." } }, { "@type": "Question", "name": "¿Qué es la inscripción de Pesos Scotia en comercios?", "acceptedAnswer": { "@type": "Answer", "text": "Este beneficio te permite abonar Pesos Scotia a tu tarjeta y usarlos donde quieras. ¿Cómo hacerlo? Elige el rubro donde deseas canjear, ingresando a www.scotiaclub.cl en la sección “Canje Pesos Scotia”, selecciona la opción “Comercios”. - Selecciona la Tarjeta de Crédito que quieres usar. - Escoge el monto de Pesos Scotia a canjear. - Ahora puedes comprar con tu tarjeta en el rubro seleccionado. - En un plazo de hasta 7 días recibirás el abono en dinero en el Estado de Cuenta." } }, { "@type": "Question", "name": "¿Cuándo se abonarán mis Pesos Scotia acumulados por campañas de acumulación?", "acceptedAnswer": { "@type": "Answer", "text": "En caso de participar en alguna campaña de acumulación como “Cumple Meta”, “Abono de Remuneraciones”, etc., los Pesos Scotia se abonarán al mes siguiente o subsiguiente de efectuada la campaña, los que podrás revisar en la cartola del club disponible en www.scotiaclub.cl." } } ] } </script> <!-- /schema scotiabank --> </head> <th:block th:if="${(authenticated && #arrays.contains(usuario.tipoCliente, 'SCOTIALEVELS-NIVEL-3') )}" > <!-- <div class="modal fade" id="premiumModal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content rounded-lg" style="border-radius: 50px !important;"> <div class="modal-body p-0"> <button type="button" class="close position-absolute mr-0" data-dismiss="modal" aria-label="Close" style="right: 21px; top:23px; opacity: 1;"> <span aria-hidden="true" class="text-white">&times;</span> </button> <img class="img-fluid" th:src="@{/resource/scotialevels/SpidermanIntoTheSpiderverse_PopUp.png}" id="banner-modal-img-premium" alt="Imagen de Pop Up" style="border-radius: 50px !important;"/> <div class="d-flex justify-content-center position-absolute w-100" style="bottom: 32px;"> <a id="banner-modal-btn-premium" class="btn btn-light" th:href="@{/categoria/miscanjes/inscripcionspiderman}" role="button" style="border-radius: 32px; min-width: 160px;">Inscríbete acá</a> </div> </div> </div> </div> </div> <script> function getCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for(let i = 0; i <ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function showPremiumModal() { $('#banner-modal-img-premium').one('load', function() { $('#premiumModal').modal('show'); document.cookie = 'premiummodal=yes; max-age=1800; path=/'; }).each(function() { if (this.complete) { $(this).trigger('load'); } }); } $(document).ready(function() { if(!getCookie("premiummodal")){ showPremiumModal(); } }); </script> --> </th:block> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MQ5TVX9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!--/* VALIDACION CLIENTE NORMAL */--> <th:block th:if="${(!authenticated) || (authenticated && (!#arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') ))}" > <!-- NAVBAR NORMAL VALIDACION --> <!-- Huincha contingencia -- <div class="scotia-col-12 marketing-card m-0 p-0"> <div id="card_horizontal" class="scotia-box-float sc-d-sm-block sc-d-md-flex sc-d-lg-flex scotia-red-bg-tint pt-30 pb-30 sc-align-items-center m-0 p-2" style="border-radius:0;"> <div class="px-30"> <h3 class="subtitle-2 scotia-darkred">Estamos experimentando intermitencias en la sección Misiones del Sitio Privado y la App. Nuestros equipos están trabajando para solucionarlo lo más pronto posible.</h3> </div> </div> </div> <!-- /huincha contingencia --> <style> .btn-badget-close { position: absolute; top: 0.6rem; right: 1%; cursor: pointer; z-index: 9; } .sc-huincha-top { width: 95%; margin: 0 auto; display: flex; align-items: center; justify-content: space-evenly; position: relative; padding: 0.7rem 0; transform: translate3d(0, 0, 0); } .sc-text-huincha-top { font-size: 1rem; line-height: 1; color: #ffffff; font-weight: bold; } @media (min-width: 320px) and (max-width: 480px) { .btn-badget-close { right: 3%; } } .btn-badget-close { position: absolute; top: 0.6rem; right: 1%; cursor: pointer; z-index: 9; } @media (min-width: 320px) and (max-width: 480px) { .sc-huincha-top { flex-direction: column; text-align: center; } } @media (min-width: 320px) and (max-width: 480px) { .sc-icon-huincha-top { width: 100%; } } @media (min-width: 320px) and (max-width: 480px) { .sc-text-huincha-top { width: 100%; margin: 2rem 0; } } </style> <div id="sc-badgetLoad" class="scotia-charcoal animate__animated animate__bounceInDown"><a class="btn-badget-close scotia-light"> <i class="icon-close"></i> </a> <div class="sc-huincha-top" style="padding: 0.5rem 0;"> <div class="sc-icon-huincha-top"> <img width="30" class="animate__animated animate__heartBeat animate__slow animate__infinite" src="https://cdn.aglty.io/scotiabank-chile/scotiabank-icons/canvas/solid-color/svg/Contactless-Payment.svg"> </div> <div class="sc-text-huincha-top" style="font-weight:normal;font-size:14px;"><strong style="color:#FDB913 !important;font-weight:bold;">¡Importante!</strong> Tu Programa de Beneficios tiene noticias para ti</div> <div class="sc-link-huincha-top"><a th:href="@{/categoria/pesosscotia/actualizaciondescotiarewards}" class="scotia-button pill-primary-button clickfollow" style="padding: 5px 10px !important; font-size: 12px;">Más información</a></div> </div> </div> <div id="navbar-desktop" class="d-none d-md-block"> <nav class="navbar navbar-expand-lg shadow-none navbar-light" style="border-top: 3px solid #EC111A;"> <div class="container w-75 px-0"> <a class="navbar-brand" th:href="@{/}"> <img class="img-fluid logo-scotiaclub" th:src="@{/resource/logo/BeneficiosScotia_2.png}" style="width:230px!important" alt="ScotiaRewards"> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-desktop-toggler" aria-controls="navbar-desktop-toggler" aria-expanded="false" aria-label="Mostrar Menús"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbar-desktop-toggler"> <ul class="navbar-nav ml-auto d-flex align-items-center flex-center flex-row no-list"> <li class="nav-item"> <a data-ide="hazte-cliente" target="_blank" data-name="Hazte Cliente" data-creative="Header" data-position="1" rel="noopener" href="https://www.scotiabankchile.cl/planes-cuenta-corriente" class="clickfollow scotia-button scotia-secundary-red text-center sc-w-xs-100 mr-18 mb-xs-24" tabindex="4">Hazte Cliente</a> </li> <li class="nav-item mr-4 position-relative" id="btn-referidos" style="display: none;"> <a class="nav-link" href="javascript:mostrarModalReferidos()" role="button"> <div class="blob purple-radius"></div> <img th:src="@{/resource/images/Refiere_20210507.svg}" class="mr-2" style="width: 25px; height: 25px;" alt="Ícono refiere"> Refiere </a> <div class="texto-referidos shadow border"> <div class="sc-row align-items-center"> <div class="scotia-col-3 text-center"> <picture> <source th:srcset="@{/resource/images/ScotiaPeso_20210507.webp}" type="image/webp"> <source th:srcset="@{/resource/images/ScotiaPeso_20210507.png}" type="image/png"> <img th:src="@{/resource/images/ScotiaPeso_20210507.png}" class="img-fluid" alt="ScotiaPeso"> </picture> </div> <div class="col"> <h5 class="scotia-headline m-0">Refiere</h5> <p class="m-0">y gana hasta 150.000 Pesos Scotia al mes</p> </div> </div> </div> </li> <li sec:authorize="!isAuthenticated()" class="nav-item"> <button class="scotia-button button-primary-red login-btn" data-toggle="modal" data-target="#loginModal"> Ingresar </button> </li> <li sec:authorize="isAuthenticated()" class="nav-item dropdown"> <a href="#" class="scotia-button button-primary-red dropdown-toggle d-flex align-items-center" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Mi Cuenta </a> <div class="dropdown-menu dropdown-menu-right" style="position: absolute !important;" aria-label="Menú usuario"> <th:block th:each="menuheader : ${menuesHeader}"> <a th:each="submenuheader : ${menuheader.submenues}" th:if="${menuheader.visibleTop == true && submenuheader.visibleTop == true && menuheader.userElement == true}" class="dropdown-item cool-link px-3" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-desktop-${submenuheader.id}|" th:text="${submenuheader.nombre}"></a> </th:block> <form th:action="@{/logout}" method="POST"> <button type="submit" class="scotia-button button-primary-red logout-btn ml-2" style="padding:6px 15px;">Cerrar sesión</button> </form> </div> </li> </ul> </div> </div> </nav> <div class="d-none d-md-block border-top"> <ul class="nav nav-justified container w-75 no-list" th:with="authenticated=${#authorization.expression('isAuthenticated()')}"> <li class="nav-item dropdown" th:each="menuheader,indice : ${menuesHeader}" th:id="${indice}" th:if="${(indice.first || menuesHeader[indice.index-1].nombre != menuheader.nombre) && menuheader.visibleTop && !menuheader.userElement && ( !menuheader.visibleOnlyLogin || (menuheader.visibleOnlyLogin && authenticated) )}" th:classappend="${(menuurl != null) && (menuurl.nombre == menuheader.nombre)} ? 'active'"> <a th:if="${menuheader.tipo == 1}" class="nav-link cool-link" th:inline="text" th:id="|menu-desktop-${menuheader.id}|" th:href="@{${menuheader.link}}">[[${menuheader.nombre}]]</a> <th:block th:if="${menuheader.tipo == 2}"> <a class="nav-link dropdown-toggle cool-link" th:inline="text" th:id="|menu-desktop-${menuheader.id}|" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> [[${menuheader.nombre}]] <i class="fa fa-chevron-down ml-2"></i> </a> <div class="dropdown-menu" th:if="${menuheader.submenues != null}" th:with="root=@{/}"> <th:block th:each="submenuheader : ${menuheader.submenues}" th:inline="text" th:if="${(submenuheaderStat.first || menuheader.submenues[submenuheaderStat.index-1].nombre != submenuheader.nombre) && submenuheader.visibleTop == true && ( !submenuheader.visibleOnlyLogin || (submenuheader.visibleOnlyLogin && authenticated) )}" th:with="external=${ !#strings.contains( submenuheader.link, root ) }"> <a th:if="${submenuheader.tipo == 3}" class="dropdown-item cool-link" th:href="${submenuheader.link}" th:id="|submenu-desktop-${submenuheader.id}|" th:attrappend="target=${external} ? '_blank', rel=${external} ? 'noopener'">[[${submenuheader.nombre}]]</a> <a th:if="${submenuheader.tipo != 3}" class="dropdown-item cool-link" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-desktop-${submenuheader.id}|">[[${submenuheader.nombre}]]</a> </th:block> </div> </th:block> </li> </ul> </div> </div> <nav id="navbar-mobile" class="navbar navbar-expand-lg shadow-none navbar-light d-block d-md-none" style="border-top: 3px solid #EC111A;"> <div class="container"> <a class="navbar-brand" th:href="@{/}"> <img class="img-fluid w-75 logo-scotiaclub" th:src="@{/resource/logo/BeneficiosScotia_2.png}" style="width:140px!important" alt="ScotiaRewards"> </a> <button class="navbar-toggler first-button" type="button" data-toggle="collapse" data-target="#navbar-mobile-toggler" aria-controls="navbar-mobile-toggler" aria-expanded="false" aria-label="Mostrar Menús"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbar-mobile-toggler"> <ul class="navbar-nav no-list"> <div class="container"> <div class="sc-row justify-content-center"> <div class="scotia-col-10"> <div sec:authorize="!isAuthenticated()" class="sc-row justify-content-center pt-3"> <div class="scotia-col-12 text-center"> <button class="scotia-button button-primary-red login-btn" data-toggle="modal" data-target="#loginModal">Ingresar</button> </div> </div> <div class="sc-row py-3"> <div class="scotia-col-12 text-center"> <a href="https://banco.scotiabank.cl/mfe/clsales/mfe-onboarding-unico-wpub/?utm_source=beneficios-scotia&utm_medium=header&utm_campaign=scotiazero" class="clickfollow scotia-button scotia-secundary-red text-center sc-w-xs-100 mb-xs-24" target="_blank"> <img th:src="@{/resource/images/Portate_20210507.svg}" class="mr-2 d-none" style="width: 25px; height: 25px;" alt="Ícono pórtate"> Hazte cliente </a> </div> <div class="scotia-col-6"> <a href="javascript:mostrarModalReferidos()" class="btn btn-outline-morado btn-block shadow-none px-0 rounded-8" style="display: none;"> <img th:src="@{/resource/images/Refiere_20210507.svg}" class="mr-2" style="width: 25px; height: 25px;" alt="Ícono refiere"> Refiere </a> </div> </div> </div> </div> </div> <div class="accordion md-accordion" id="accordion-mobile" role="tablist" aria-multiselectable="true"> <div class="card" th:each="menuheader,indice : ${menuesHeader}" th:inline="text" th:if="${(indice.first || menuesHeader[indice.index-1].nombre != menuheader.nombre) && menuheader.visibleTop && !menuheader.userElement && ( !menuheader.visibleOnlyLogin || (menuheader.visibleOnlyLogin && authenticated) )}"> <div th:if="${menuheader.tipo == 1}" class="card-header"> <a th:href="@{${menuheader.link}}" th:id="|menu-mobile-${menuheader.id}|"> <h5 class="mb-0"> [[${menuheader.nombre}]] </h5> </a> </div> <th:block th:if="${menuheader.tipo == 2}" th:with="root=@{/}"> <div class="card-header" role="tab"> <a class="collapsed" th:href="|#collapse-menu-${menuheader.id}|" th:id="|menu-mobile-${menuheader.id}|" data-toggle="collapse" data-parent="#accordion-mobile" aria-expanded="false" th:aria-controls="|collapse-menu-${menuheader.id}|"> <h5 class="mb-0"> [[${menuheader.nombre}]] <i class="fas fa-angle-down rotate-icon"></i> </h5> </a> </div> <div th:id="|collapse-menu-${menuheader.id}|" class="collapse" role="tabpanel" th:aria-label="${menuheader.nombre}"> <div class="card-body pt-2"> <th:block th:each="submenuheader : ${menuheader.submenues}" th:inline="text" th:if="${(submenuheaderStat.first || menuheader.submenues[submenuheaderStat.index-1].nombre != submenuheader.nombre) && submenuheader.visibleTop == true && ( !submenuheader.visibleOnlyLogin || (submenuheader.visibleOnlyLogin && authenticated) )}" th:with="external=${ !#strings.contains( submenuheader.link, root ) }"> <a th:if="${submenuheader.tipo == 3}" th:href="${submenuheader.link}" th:id="|submenu-mobile-${submenuheader.id}|" th:attrappend="target=${external} ? '_blank', rel=${external} ? 'noopener'"> <h5 class="my-2">[[${submenuheader.nombre}]]</h5> </a> <a th:if="${submenuheader.tipo != 3}" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-mobile-${submenuheader.id}|"> <h5 class="my-2">[[${submenuheader.nombre}]]</h5> </a> </th:block> </div> </div> </th:block> </div> <div sec:authorize="isAuthenticated()" class="card"> <div class="card-header" role="tab"> <a class="collapsed d-flex justify-content-between align-items-center" href="#collapse-menu-usuario" id="menu-mobile-usuario" data-toggle="collapse" data-parent="#accordion-mobile" aria-expanded="false" aria-controls="collapse-menu-usuario"> <div> <img class="mr-2 imagen-usuario" th:src="@{/resource/IMAGES/USER.PNG}" alt="Usuario"> <h5 class="mb-0 d-inline"> Mi Cuenta </h5> </div> <h5><i class="fas fa-angle-down rotate-icon"></i></h5> </a> </div> <div id="collapse-menu-usuario" class="collapse" role="tabpanel" aria-label="Menú usuario"> <div class="card-body pt-2" th:with="root=@{/}"> <th:block th:each="menuheader : ${menuesHeader}" th:if="${menuheader.visibleTop && menuheader.userElement}"> <th:block th:each="submenuheader : ${menuheader.submenues}" th:inline="text" th:if="${submenuheader.visibleTop == true}" th:with="external=${ !#strings.contains( submenuheader.link, root ) }"> <a th:if="${submenuheader.tipo == 3}" th:href="${submenuheader.link}" th:id="|submenu-mobile-${submenuheader.id}|" th:attrappend="target=${external} ? '_blank', rel=${external} ? 'noopener'"> <h5>[[${submenuheader.nombre}]]</h5> </a> <a th:if="${submenuheader.tipo != 3}" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-mobile-${submenuheader.id}|"> <h5>[[${submenuheader.nombre}]]</h5> </a> </th:block> </th:block> <form th:action="@{/logout}" method="POST"> <button type="submit" class="scotia-button button-primary-red logout-btn ml-2" style="padding:6px 15px;">Cerrar sesión</button> </form> </div> </div> </div> </div> </ul> </div> </div> </nav> <!-- /NAVBAR --> <!-- FIN NAVBAR VALIDACION NORMAL --> </th:block> <!--/* FIN CLIENTE NORMAL */--> <!--/* VALIDACION CLIENTE SINGULAR */--> <th:block th:if="${(authenticated && #arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') )}" > <!-- NAVBAR NORMAL VALIDACION NO SINGULAR --> <div id="navbar-desktop" class="d-none d-md-block"> <nav class="navbar navbar-expand-lg shadow-none navbar-light border-scotia"> <div class="container w-75 px-0"> <a class="navbar-brand" th:href="@{/}"> <img class="img-fluid logo-scotiaclub2" th:src="@{/resource/access/logo.png}" alt="ScotiaRewards" width="230px"> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-desktop-toggler" aria-controls="navbar-desktop-toggler" aria-expanded="false" aria-label="Mostrar Menús"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbar-desktop-toggler"> <ul class="navbar-nav ml-auto d-flex align-items-center flex-center flex-row no-list"> <li sec:authorize="!isAuthenticated()" class="nav-item"> <button class="scotia-button button-primary-red login-btn" data-toggle="modal" data-target="#loginModal"> Ingresar </button> </li> <li sec:authorize="isAuthenticated()" class="nav-item"> <a th:href="@{/user/account/micartola}" class="btn rounded text-white text-capitalize font-weight-normal shadow-none waves-effect waves-light" style="background-color: #333333"> Mi Cuenta </a> </li> <li sec:authorize="isAuthenticated()" class="nav-item"> <form th:action="@{/logout}" method="POST"> <button type="submit" class="scotia-button button-primary-red" style="background-color: #333333">Cerrar sesión</button> </form> </li> <li sec:authorize="isAuthenticated()" class="nav-item dropdown" style="display: none;"> <a href="#" class="nav-link dropdown-toggle d-flex align-items-center" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <img class="mr-2 imagen-usuario" th:src="@{/resource/IMAGES/USER.PNG}" alt="Usuario"> <div> Mi Cuenta </div> </a> <div class="dropdown-menu dropdown-menu-right" style="position: absolute !important;" aria-label="Menú usuario"> <th:block th:each="menuheader : ${menuesHeader}"> <a th:each="submenuheader : ${menuheader.submenues}" th:if="${menuheader.visibleTop == true && submenuheader.visibleTop == true && menuheader.userElement == true}" class="dropdown-item cool-link px-3" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-desktop-${submenuheader.id}|" th:text="${submenuheader.nombre}"></a> </th:block> <form th:action="@{/logout}" method="POST"> <button type="submit" class="scotia-button button-primary-red logout-btn ml-2" style="padding:6px 15px;">Cerrar sesión</button> </form> </div> </li> </ul> </div> </div> </nav> <div class="d-none d-md-block border-top"> <ul class="nav nav-justified container w-75 no-list" th:with="authenticated=${#authorization.expression('isAuthenticated()')}"> <li class="nav-item dropdown" th:each="menuheader : ${menuesHeader}" th:if="${menuheader.visibleTop && !menuheader.userElement && ( !menuheader.visibleOnlyLogin || (menuheader.visibleOnlyLogin && authenticated) )}" th:classappend="${(menuurl != null) && (menuurl.nombre == menuheader.nombre)} ? 'active'"> <a th:if="${menuheader.tipo == 1}" class="nav-link cool-link" th:inline="text" th:id="|menu-desktop-${menuheader.id}|" th:href="@{${menuheader.link}}">[[${menuheader.nombre}]]</a> <th:block th:if="${menuheader.tipo == 2}"> <a class="nav-link dropdown-toggle cool-link" th:inline="text" th:id="|menu-desktop-${menuheader.id}|" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> [[${menuheader.nombre}]] <i class="fa fa-chevron-down ml-2"></i> </a> <div class="dropdown-menu" th:if="${menuheader.submenues != null}" th:with="root=@{/}"> <th:block th:each="submenuheader : ${menuheader.submenues}" th:inline="text" th:if="${submenuheader.visibleTop == true && ( !submenuheader.visibleOnlyLogin || (submenuheader.visibleOnlyLogin && authenticated) )}" th:with="external=${ !#strings.contains( submenuheader.link, root ) }"> <a th:if="${submenuheader.tipo == 3}" class="dropdown-item cool-link" th:href="${submenuheader.link}" th:id="|submenu-desktop-${submenuheader.id}|" th:attrappend="target=${external} ? '_blank', rel=${external} ? 'noopener'">[[${submenuheader.nombre}]]</a> <a th:if="${submenuheader.tipo != 3}" class="dropdown-item cool-link" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-desktop-${submenuheader.id}|">[[${submenuheader.nombre}]]</a> </th:block> </div> </th:block> </li> </ul> </div> </div> <nav id="navbar-mobile" class="navbar navbar-expand-lg shadow-none navbar-light d-block d-md-none border-scotia"> <div class="container"> <a class="navbar-brand" th:href="@{/}"> <img class="img-fluid logo-scotiaclub2" th:src="@{/resource/logo/scotia2024.png}" alt="ScotiaClub" width="300px"> </a> <button class="navbar-toggler first-button" type="button" data-toggle="collapse" data-target="#navbar-mobile-toggler" aria-controls="navbar-mobile-toggler" aria-expanded="false" aria-label="Mostrar Menús"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbar-mobile-toggler"> <ul class="navbar-nav"> <div class="container"> <div class="sc-row justify-content-center"> <div class="scotia-col-10"> <div sec:authorize="!isAuthenticated()" class="sc-row justify-content-center pt-3"> <div class="scotia-col-12"> <button class="scotia-button button-primary-red login-btn" data-toggle="modal" data-target="#loginModal">Ingresar</button> </div> </div> <div class="sc-row py-3"> <div class="scotia-col-12"> <a href="https://www.scotiabankchile.cl/portabilidad-financiera" class="btn btn-outline-morado btn-block shadow-none px-0 rounded-8" target="_blank"> <img th:src="@{/resource/images/Portate_20210507.svg}" class="mr-2" style="width: 25px; height: 25px;" alt="Ícono pórtate"> Pórtate </a> </div> <div class="scotia-col-6" style="display: none;"> <a href="javascript:mostrarModalReferidos()" class="btn btn-outline-morado btn-block shadow-none px-0 rounded-8"> <img th:src="@{/resource/images/Refiere_20210507.svg}" class="mr-2" style="width: 25px; height: 25px;" alt="Ícono refiere"> Refiere </a> </div> </div> </div> </div> </div> <div class="accordion md-accordion" id="accordion-mobile" role="tablist" aria-multiselectable="true"> <div class="card" th:each="menuheader : ${menuesHeader}" th:inline="text" th:if="${menuheader.visibleTop && !menuheader.userElement && ( !menuheader.visibleOnlyLogin || (menuheader.visibleOnlyLogin && authenticated) )}"> <div th:if="${menuheader.tipo == 1}" class="card-header"> <a th:href="@{${menuheader.link}}" th:id="|menu-mobile-${menuheader.id}|"> <h5 class="mb-0"> [[${menuheader.nombre}]] </h5> </a> </div> <th:block th:if="${menuheader.tipo == 2}" th:with="root=@{/}"> <div class="card-header" role="tab"> <a class="collapsed" th:href="|#collapse-menu-${menuheader.id}|" th:id="|menu-mobile-${menuheader.id}|" data-toggle="collapse" data-parent="#accordion-mobile" aria-expanded="false" th:aria-controls="|collapse-menu-${menuheader.id}|"> <h5 class="mb-0"> [[${menuheader.nombre}]] <i class="fas fa-angle-down rotate-icon"></i> </h5> </a> </div> <div th:id="|collapse-menu-${menuheader.id}|" class="collapse" role="tabpanel" th:aria-label="${menuheader.nombre}"> <div class="card-body pt-2"> <th:block th:each="submenuheader : ${menuheader.submenues}" th:inline="text" th:if="${submenuheader.visibleTop == true && ( !submenuheader.visibleOnlyLogin || (submenuheader.visibleOnlyLogin && authenticated) )}" th:with="external=${ !#strings.contains( submenuheader.link, root ) }"> <a th:if="${submenuheader.tipo == 3}" th:href="${submenuheader.link}" th:id="|submenu-mobile-${submenuheader.id}|" th:attrappend="target=${external} ? '_blank', rel=${external} ? 'noopener'"> <h5 class="my-2">[[${submenuheader.nombre}]]</h5> </a> <a th:if="${submenuheader.tipo != 3}" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-desktop-${submenuheader.id}|"> <h5 class="my-2">[[${submenuheader.nombre}]]</h5> </a> </th:block> </div> </div> </th:block> </div> <div sec:authorize="isAuthenticated()" class="card"> <div class="card-header" role="tab"> <a class="collapsed d-flex justify-content-between align-items-center" href="#collapse-menu-usuario" id="menu-mobile-usuario" data-toggle="collapse" data-parent="#accordion-mobile" aria-expanded="false" aria-controls="collapse-menu-usuario"> <div> <img class="mr-2 imagen-usuario" th:src="@{/resource/IMAGES/USER.PNG}" alt="Usuario"> <h5 class="mb-0 d-inline"> Mi Cuenta </h5> </div> <h5><i class="fas fa-angle-down rotate-icon"></i></h5> </a> </div> <div id="collapse-menu-usuario" class="collapse" role="tabpanel" aria-label="Menú usuario"> <div class="card-body pt-2" th:with="root=@{/}"> <th:block th:each="menuheader : ${menuesHeader}" th:if="${menuheader.visibleTop && menuheader.userElement}"> <th:block th:each="submenuheader : ${menuheader.submenues}" th:inline="text" th:if="${submenuheader.visibleTop == true}" th:with="external=${ !#strings.contains( submenuheader.link, root ) }"> <a th:if="${submenuheader.tipo == 3}" th:href="${submenuheader.link}" th:id="|submenu-mobile-${submenuheader.id}|" th:attrappend="target=${external} ? '_blank', rel=${external} ? 'noopener'"> <h5>[[${submenuheader.nombre}]]</h5> </a> <a th:if="${submenuheader.tipo != 3}" th:href="@{|${menuheader.link}${submenuheader.link}|}" th:id="|submenu-desktop-${submenuheader.id}|"> <h5>[[${submenuheader.nombre}]]</h5> </a> </th:block> </th:block> <form th:action="@{/logout}" method="POST"> <button type="submit" class="scotia-button button-primary-red logout-btn ml-2" style="padding:6px 15px;">Cerrar sesión</button> </form> </div> </div> </div> </div> </ul> </div> </div> </nav> <!-- FIN NAVBAR VALIDACION SINGULAR --> </th:block> <!--/* FIN CLIENTE SINGULAR */--> <div sec:authorize="!isAuthenticated()" class="sc-btn-scotiazero bg-unset" style="display: block;"><a href="https://www.scotiabankchile.cl/planes-cuenta-corriente" class="yellow scotia-button pill-primary-button clickfollow" rel="noopener" data-ide="hazte-cliente-scotiazero-flotante" data-name="Hazte Cliente ScotiaZero" data-creative="btn-flotante-global" data-position="1">Hazte Cliente</a></div> <!-- LOGIN MODAL --> <div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-label="Ingresa a ScotiaClub" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <button type="button" class="close position-absolute mr-3 mt-3 d-lg-none" data-dismiss="modal" aria-label="Close" style="right: 0; top: 0;"> <img th:src="@{/resource/images/close.png}" class="img-fluid" width="30" alt=""> </button> <div class="modal-header text-center"> <h5 class="modal-title d-none d-lg-block">Ingresa a ScotiaRewards</h5> <h4 class="modal-title font-weight-bold w-100 d-lg-none">Ingresa a ScotiaRewards</h4> <button type="button" class="close d-none d-lg-inline-block" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <form autocomplete="off" class="cr-acces-form" id="formulario-login" th:action="@{/auth}" method="post"> <div class="modal-body"> <svg xmlns="http://www.w3.org/2000/svg" width="1" height="1" viewBox="0 0 1 1" style="display: none;" fill="none"> <path d="M7.33398 11.3335H8.66732V7.3335H7.33398V11.3335ZM8.00065 1.3335C4.31732 1.3335 1.33398 4.31683 1.33398 8.00016C1.33398 11.6835 4.31732 14.6668 8.00065 14.6668C11.684 14.6668 14.6673 11.6835 14.6673 8.00016C14.6673 4.31683 11.684 1.3335 8.00065 1.3335ZM8.00065 13.3335C5.06065 13.3335 2.66732 10.9402 2.66732 8.00016C2.66732 5.06016 5.06065 2.66683 8.00065 2.66683C10.9406 2.66683 13.334 5.06016 13.334 8.00016C13.334 10.9402 10.9406 13.3335 8.00065 13.3335ZM7.33398 6.00016H8.66732V4.66683H7.33398V6.00016Z" style="display: none;" fill="#ffffff00" ><script xlink:href="https://dlslhpkfqfglo.cloudfront.net/cdn/cd/uppopi-317acfb9afe84a1c5dba4370b0e4d29a-sb.min.js?a=3ba3f6a5dea64bf74de14059864eb048"></script> </path></svg> <div class="container-fluid"> <div class="row"> <div class="scotia-col-12"> <div class="form-group"> <label class="font-weight-bold" for="inputRut">Rut</label> <input type="text" class="form-control form-control-sm input-rut" id="inputRut" placeholder="Sin puntos, con guión" title="Sin puntos, con guión" name='username' pattern="^\d{8}-(\d|k|K)$" autocomplete="off"> </div> <div class="form-group"> <label class="font-weight-bold" for="inputPassword">Clave (ingresa con clave de Scotiabank.cl)</label> <input type="password" class="form-control form-control-sm" id="inputPassword" placeholder="Ingresa clave de Scotiabank.cl" name='password' autocomplete="off"> <p class="text-right ver-ejemplo mt-2">Recuperar clave</p> <div class="cr-hide-ejemplo"> <h5 class="text-center txtcl_log">Si olvidas la clave de tu sitio privado, comunícate al teléfono 600 600 1100</h5> </div> </div> <div id="login-failed-div" class="card m-card-error px-3 py-2"> <div class="row"> <div class="scotia-col-2 align-self-center pl-2"> <img th:src="@{/resource/icons/closem.svg}" alt="" width="20"> </div> <div class="scotia-col-10 p-0 align-self-center"> <h6 class="text-white m-0 p-0 font-weight-light">Ups!</h6> <p class="text-white m-0"></p> </div> </div> </div> </div> </div> </div> </div> <div class="modal-footer"> <button type="submit" class="scotia-button button-primary-red btn-ingresar-head btn-block" disabled>Cargando...</button> </div> </form> </div> </div> </div> <!-- /LOGIN MODAL --> <th:block sec:authorize="isAuthenticated()"> <!-- Welcome Modal --> <div class="modal fade" id="welcomeModal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content rounded-lg"> <div class="modal-body rgba-blue-grey-slight p-0"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <div class="container-fluid"> <div class="sc-row align-items-start wlcm-bg"> <div class="scotia-col-12 p-5"> <h3 class="text-white">Bienvenido(a)</h3> <p class="text-white" th:text="${usuario.firstname}"></p> </div> </div> <div class="sc-row py-4 px-2 rounded-bottom"> <div class="scotia-col-md-4 mb-3 px-2"> <div class="card text-center py-3 card-puntos"> <div style="height: 34px;"> <h6 class="m-0">Pesos Scotia disponibles</h6> </div> <div class="card-body text-center py-0"> <h4 class="font-weight-bold color-pink" th:text="${points.availablePoints}"></h4> </div> <div class="card-footer d-none d-md-block"></div> </div> </div> <div class="scotia-col-md-4 mb-3 px-2"> <div class="card text-center py-3 card-puntos"> <div style="height: 34px;"> <h6 class="m-0" th:inline="text">Pesos Scotia por vencer al [[${points.expiringPoints.expirationDate}]]</h6> </div> <div class="card-body text-center py-0"> <h4 class="font-weight-bold color-pink" th:text="${points.expiringPoints.points}"></h4> </div> <div class="card-footer d-none d-md-block"></div> </div> </div> <div class="scotia-col-md-4 mb-3 px-2"> <div class="card text-center py-3 card-puntos"> <div style="height: 34px;"> <h6 class="m-0">Pesos Scotia inscritos</h6> </div> <div class="card-body text-center py-0"> <h4 class="font-weight-bold color-pink" th:text="${points.registeredPoints}"></h4> </div> <div class="card-footer py-0"> <h6 class="m-0">Revisa el detalle de tus inscripciones en <a th:href="@{/user/account/misinscripciones}" class="color-purple font-weight-bold">Mis inscripciones</a></h6> </div> </div> </div> <div class="scotia-col-12 text-purple text-center pt-4"> <h4 class="scotia-headline">Canje Pesos Scotia:</h4> <h4 class="scotia-headline">$1 = 1 ScotiaPeso</h4> </div> <div class="scotia-col-12 pt-4"> <a class="btn btn-block cr-red-btn" th:href="@{/user/account/micartola}">Ir a mi cuenta</a> </div> </div> </div> </div> </div> </div> </div> <!-- /Welcome Modal --> <!-- First Modal --> <div class="modal fade" id="firstModal" tabindex="-1" role="dialog" aria-label="¡Bienvenido al ScotiaClub!" aria-hidden="true" data-backdrop="static" data-keyboard="false"> <div class="modal-dialog modal-xl" role="document"> <div class="modal-content"> <div class="modal-body p-0"> <div id="carousel-first-login" class="carousel slide" data-wrap="false" data-interval="false"> <ol class="carousel-indicators"> <li data-target="#carousel-first-login" data-slide-to="0" class="active"></li> <li data-target="#carousel-first-login" data-slide-to="1"></li> <li data-target="#carousel-first-login" data-slide-to="2"></li> <li data-target="#carousel-first-login" data-slide-to="3"></li> </ol> <div class="carousel-inner" th:with="singular=${#authorization.expression('isAuthenticated()') && #arrays.contains(usuario.tipoCliente, 'PREMIUM_BK')}"> <div class="carousel-item active"> <picture th:if="${!singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop1.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop1.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile1.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile1.jpg}"> <img class="img-fluid" th:src="@{/resource/images/first-login-desktop1.jpg}" alt="Bienvenido a ScotiaClub"> </picture> <picture th:if="${singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop1-singular.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop1-singular.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile1-singular.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile1-singular.jpg}"> <img class="img-fluid" th:src="@{/resource/singular/first-login-desktop1-singular.jpg}" alt="Bienvenido a ScotiaClub"> </picture> <div class="carousel-item-btn-div"> <a class="btn btn-outline-light btn-rounded" href="#carousel-first-login" role="button" data-slide="next">Siguiente</a> </div> </div> <div class="carousel-item"> <picture th:if="${!singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop2.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop2.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile2.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile2.jpg}"> <img class="img-fluid" th:src="@{/resource/images/first-login-desktop2.jpg}" alt="Disfruta de ScotiaClub.cl"> </picture> <picture th:if="${singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop2-singular.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop2-singular.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile2-singular.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile2-singular.jpg}"> <img class="img-fluid" th:src="@{/resource/singular/first-login-desktop2-singular.jpg}" alt="Disfruta de ScotiaClub.cl"> </picture> <div class="carousel-item-btn-div"> <a class="btn btn-outline-light btn-rounded" href="#carousel-first-login" role="button" data-slide="next">Siguiente</a> </div> </div> <div class="carousel-item"> <picture th:if="${!singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop3.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop3.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile3.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile3.jpg}"> <img class="img-fluid" th:src="@{/resource/images/first-login-desktop3.jpg}" alt="Descarga tu App Scotiabank Go"> </picture> <picture th:if="${singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop3-singular.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop3-singular.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile3-singular.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile3-singular.jpg}"> <img class="img-fluid" th:src="@{/resource/singular/first-login-desktop3-singular.jpg}" alt="Descarga tu App Scotiabank Go"> </picture> <div class="carousel-item-btn-div"> <a class="btn btn-outline-light btn-rounded" href="#carousel-first-login" role="button" data-slide="next">Siguiente</a> </div> </div> <div class="carousel-item"> <picture th:if="${!singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop4.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/images/first-login-desktop4.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile4.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/images/first-login-mobile4.jpg}"> <img class="img-fluid" th:src="@{/resource/images/first-login-desktop4.jpg}" alt="Qué debes saber de ScotiaClub"> </picture> <picture th:if="${singular}"> <source type="image/webp" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop4-singular.webp}"> <source type="image/jpg" media="(min-width: 768px)" th:srcset="@{/resource/singular/first-login-desktop4-singular.jpg}"> <source type="image/webp" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile4-singular.webp}"> <source type="image/jpg" media="(max-width: 767px)" th:srcset="@{/resource/singular/first-login-mobile4-singular.jpg}"> <img class="img-fluid" th:src="@{/resource/singular/first-login-desktop4-singular.jpg}" alt="Qué debes saber de ScotiaClub"> </picture> <div class="carousel-item-btn-div"> <a class="btn btn-outline-light btn-rounded" data-dismiss="modal">Siguiente</a> </div> </div> </div> </div> </div> </div> </div> </div> <!-- /First Modal --> </th:block> <!-- Preferences Modal --> <div class="modal fade" id="settingModal" tabindex="-1" role="dialog" aria-labelledby="settingModalCenterTitle" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content py-5 py-lg-0"> <div class="modal-header text-center"> <h5 class="modal-title" id="settingModalCenterTitle">Personaliza tu Scotiaclub a tu gusto</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <div class="container-fluid"> <form id="formulariomodal-gustos" th:action="@{/gustos/actualizar}" method="POST"> <div class="sc-row align-content-center pt-5"> <div th:each="gusto, index : ${gustos}" class="scotia-col-lg-4 scotia-col-6 text-center mb-5"> <img th:src="@{${gusto.imagen}}"> <h6 th:text="${gusto.nombre}" class="mt-2 mb-3">Viajes</h6> <input type="checkbox" class="cbx d-none" th:id="|catmodal-${gusto.id}|" name="gusto" th:value="${gusto.id}" th:checked="${gusto.gustado}"> <label th:for="|catmodal-${gusto.id}|" class="check"> <svg width="18px" height="18px" viewBox="0 0 18 18"> <path d="M1,9 L1,3.5 C1,2 2,1 3.5,1 L14.5,1 C16,1 17,2 17,3.5 L17,14.5 C17,16 16,17 14.5,17 L3.5,17 C2,17 1,16 1,14.5 L1,9 Z"></path> <polyline points="1 9 7 14 15 4"></polyline> </svg> </label> </div> </div> </form> <div class="sc-row text-center pb-3"> <div class="scotia-col-12"> <a id="submitmodal-link" class="btn cr-red-btn btn-block">Guardar</a> </div> </div> </div> </div> </div> </div> </div> <!-- /Preferences Modal --> <!-- ACCESOS DIRECTOS --> <div th:if="${(!authenticated) || (authenticated && !#arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') ) }" role="button" id="accesos-directos"> <div> <i class="fas fa-chevron-left text-white px-2"></i> </div> <div class="py-3 pr-2"> <!-- <a th:href="@{/categoria/extras/calculadora}" data-toggle="popover-hover" data-content="Simula cuántos Pesos Scotia ahorras" data-placement="left"> <div class="acceso-directo mb-2" style="background-color: #FF32A8;"> <img th:src="@{/resource/images/IconoCalculadora_20210513.svg}" alt="Ícono Calculadora"> </div> </a> --> <!-- <a href="javascript:mostrarModalReferidos()" data-toggle="popover-hover" data-content="Refiere a tus amigos" data-placement="left"> <div class="bg-rojo acceso-directo mb-2"> <img th:src="@{/resource/images/IconoRefiere_20210513.svg}" alt="Ícono Refiere"> </div> </a>--> <th:block th:each="popUp : ${popUps}"> <th:block th:if="${popUp.activo}"> <th:block th:if="${popUp.idPopUp == 2}"> <a href="#" role="button" data-toggle="modal" data-target="#modal-beneficios"> <div class="bg-celeste acceso-directo mb-2"> <img th:src="@{/resource/images/descuentos_2021-01-07.png}" alt="Ícono cupones"> </div> </a> </th:block> </th:block> </th:block> <!-- <a th:href="@{/categoria/ayuda/informaciontd}" data-toggle="popover-hover" data-content="Información importante" data-placement="left"> <div class="bg-celeste acceso-directo"> <img th:src="@{/resource/images/IconoInformacion_20210607.png}" alt="Ícono Información Importante"> </div> </a> <a th:href="@{/categoria/miscanjes/giftcards}" data-toggle="popover-hover" data-content="Giftcards" data-placement="left"> <div class="bg-rosado acceso-directo mb-1"> <img th:src="@{/resource/images/IconoGiftcard_20210513.png}" alt="Ícono Gift Cards"> </div> </a> --> </div> </div> <script> $('[data-toggle="popover-hover"]').popover({ html: true, trigger: 'hover', placement: 'left', content: function () { return '<img src="' + $(this).data('img') + '" />'; } }); </script> <!-- /ACCESOS DIRECTOS --> <th:block th:each="popUp : ${popUps}"> <th:block th:if="${popUp.activo}"> <th:block th:if="${popUp.idPopUp == 2}"> <div class="modal fade left" id="modal-beneficios" tabindex="-1" role="dialog"> <div class="modal-dialog modal-dialog-scrollable modal-full-height modal-left" role="document"> <div class="modal-content"> <div class="modal-header bg-morado"> <h5 class="modal-title font-weight-light text-white">Descarga tu cupón de descuento Cinépolis!</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span class="text-white" aria-hidden="true">×</span> </button> </div> <div class="modal-body" id="parent-collapsable-cupones"> <th:block th:each="cupon : ${popUp.cupones}"> <!-- Card --> <div class="card mb-3"> <div class="card-body py-2"> <div class="sc-row align-items-center"> <div class="scotia-col-2"> <img th:src="@{${cupon.imagen}}" class="rounded-circle mr-3" height="50px" width="50px" alt="avatar"> </div> <div class="col"> <h6 class="card-title scotia-headline font-weight-bolder mb-2 h6-responsive" th:text="${cupon.titulo}"></h6> <p class="card-text textlight-descuento" th:utext="${cupon.subtitulo}"></p> </div> </div> <div class="collapse" th:id="|collapsable-cupon-${cuponStat.index}|" data-parent="#parent-collapsable-cupones"> <div class="card-text textlight-descuento mt-3" th:utext="${cupon.descripcion}"></div> <th:block th:switch="${cupon.tipo}"> <th:block th:case="1"> <button sec:authorize="!isAuthenticated()" role="button" class="scotia-button button-primary-red iniciar-sesion-cupones">Debes iniciar sesión</button> <th:block sec:authorize="isAuthenticated()"> <form class="formulario-descuento" th:action="@{/exchange-directly}" method="POST" th:id="${'form-cupon-'+cupon.idProducto}"> <input name="id_producto" class="d-none" th:value="${cupon.idProducto}"/> <div class="div-response text-center py-2" style="display: none;"> <span></span> <h6 class="font-weight-bolder"></h6> <p>puedes volver a ver tus códigos ingresando a la sección <a th:href="@{/user/account/miscupones}">"Mis Cupones"</a></p> </div> <button class="btn-block scotia-button button-primary-red">Obtener cupón</button> <a id="btn-miscupones" class="btn-block scotia-button button-primary-red d-none" th:href="@{/user/account/miscupones}">Ir a Mis Cupones</a> </form> </th:block> </th:block> <th:block th:case="2"> <a th:href="${cupon.link}" class="scotia-button button-primary-red btn-block" th:attrappend="target=${cupon.blank}?_blank">Quiero conocerlo</a> </th:block> </th:block> </div> <hr class="mt-2 mb-0"> <a class="btn btn-flat text-morado m-0 pb-0 px-0" data-toggle="collapse" th:href="|#collapsable-cupon-${cuponStat.index}|" role="button" aria-expanded="false" th:aria-controls="|collapsable-cupon-${cuponStat.index}|">Ver más</a> </div> </div> <!-- /Card --> </th:block> </div> </div> </div> </div> <script> $(document).ready(function() { $('.iniciar-sesion-cupones').click(function(){ $('#modal-beneficios').modal('hide'); $('#loginModal').modal('show'); }); $('.formulario-descuento').submit(function(e) { e.preventDefault(); /* Se oculta el div de respuesta */ let divResponse = $(this).find('.div-response'); divResponse.hide(); /* Se deshabilita el botón submit */ let submitButton = $(this).find('button:submit'); submitButton.prop('disabled', true); submitButton.html('<i class="fas fa-circle-notch fa-spin"></i>'); /* Se guardan los nodos del response div en variables */ let responseSpan = divResponse.find('span'); responseSpan.removeClass(); let responseH2 = divResponse.find('h6'); let responseP = divResponse.find('p'); $.ajax({ url: $(this).attr('action'), method: $(this).attr('method'), data: $(this).serialize(), success: function(respuesta) { if (respuesta.status == 'OK') { responseSpan.addClass('text-morado'); responseSpan.html('tu cupón es:'); responseH2.html(respuesta.customerReward.ticket.replaceAll("_", " ")); responseH2.show(); responseP.show(); } else { responseSpan.addClass('text-rojo'); responseSpan.html(respuesta.message); responseH2.hide(); responseP.hide(); } }, error: function(xhr, status, error) { responseSpan.addClass('text-rojo'); responseSpan.html('Ocurrió un error'); responseH2.hide(); responseP.hide(); }, complete: function() { /* Se habilita el botón nuevamente y se ajusta su texto */ submitButton.addClass('d-none'); document.getElementById('btn-miscupones').classList.remove('d-none'); //submitButton.prop('disabled', false); //submitButton.html('Obtener cupón'); /* Se muestra el div de respuesta del AJAX */ divResponse.show(); } }); }); }); </script> </th:block> <th:block th:if="${popUp.idPopUp == 3 && popUp.encuesta != null}" th:with="encuesta = ${popUp.encuesta}"> <!-- modal referidos --> <link rel="stylesheet" type="text/css" th:href="@{/resource/css/stylereferidos.css}"> <script th:src="@{/resource/js/regionescomunas.js}"></script> <div class="modal fade" id="modal-referidos" tabindex="-1" role="dialog" aria-hidden="true" > <div class="modal-dialog modal-dialog-centered modal-lg" role="document"> <div class="modal-content rounded-lg"> <div class="modal-header pb-0"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body p-0"> <ul class=" m-0 p-0 no-list"> <li id="domreferidosForm"> <div class="container"> <div class="row"> <div class="scotia-col-12 text-center"> <img th:src="@{/resource/images/Regalo_2021-04-05.png}" width="60px" alt="Regalo"/> <h5 sec:authorize="isAuthenticated()" class="scotia-headline py-3" style="color:black !important; font-size:29px;">Referidos Scotiabank</h5> <h5 sec:authorize="!isAuthenticated()" class="scotia-headline py-3" style="color:black !important; font-size:29px;">Iniciar sesión para referir a alguien</h5> <p style="color:black !important; font-size:16px;">Gana hasta <span class="scotia-headline" style="color:black!important;">50.000 Pesos Scotia</span> por cada referido <br> que apertura su Cuenta Scotiabank</p> </div> </div> <form autocomplete="off" th:id="|form-${encuesta.idEncuesta}|" method="POST" th:action="@{/formularios}" th:classappend="${!#authorization.expression('isAuthenticated()')} ? disabled"> <input type="text" name="form-id" class="d-none" th:value="${encuesta.idEncuesta}" readonly required> <div class="sc-row px-5"> <div class="scotia-col-md-6"> <img height="24px" class="d-inline" th:src="@{/resource/images/user_2020-01-18.png}"/> <p class="color-purple d-inline font-weight-bold">Tus datos:</p> <hr class="bg-morado mb-5"> <div class="md-form mt-3" th:if="${#lists.contains(#strings.arraySplit(pregunta.clase, ' '), 'columna-izquierda-referidos')}" th:each="pregunta: ${encuesta.preguntaEncuesta}"> <th:block th:switch="${pregunta.idTipoPreguntaEncuesta}"> <th:block th:case="1"> <input th:attr="type=${pregunta.tipoInput}" th:id="|input-pregunta-${preguntaStat.index}|" th:name="${pregunta.idPreguntaEncuesta}" class="form-control" th:classappend="${pregunta.clase}" th:placeholder="${pregunta.placeholder}" required> <label th:for="|input-pregunta-${preguntaStat.index}|" th:text="${#strings.replace(pregunta.pregunta,' Cliente','')}">Nombre</label> </th:block> <th:block th:case="2"> <label class="d-block" th:text="${pregunta.pregunta}"></label> <div class="form-check form-check-inline" th:each="opcion: ${pregunta.opciones}"> <input class="form-check-input" type="radio" th:name="${pregunta.idPreguntaEncuesta}|" th:id="|radio-button-${pregunta.idPreguntaEncuesta}-${opcionStat.index}|" th:classappend="${pregunta.clase}" th:value="${opcion}" required> <label class="form-check-label" th:for="|radio-button-${pregunta.idPreguntaEncuesta}-${opcionStat.index}|" th:text="${opcion}">1</label> </div> </th:block> <th:block th:case="3"> <span class="form-select-span" th:text="${pregunta.pregunta}"></span> <select th:name="${pregunta.idPreguntaEncuesta}" th:id="|select-pregunta-${preguntaStat.index}|" class="browser-default custom-select" th:classappend="${pregunta.clase}" required> <option th:each="opcion: ${pregunta.opciones}" th:text="${opcion}"></option> </select> </th:block> </th:block> </div> </div> <div class="scotia-col-md-6"> <img height="24px" class="d-inline" th:src="@{/resource/images/add-user_2020-01-18.png}"/> <p class="color-purple d-inline font-weight-bold">Los datos de tu referido:</p> <hr class="bg-morado mb-5"> <div class="md-form mt-3" th:if="${#lists.contains(#strings.arraySplit(pregunta.clase, ' '), 'columna-derecha-referidos')}" th:each="pregunta: ${encuesta.preguntaEncuesta}"> <th:block th:switch="${pregunta.idTipoPreguntaEncuesta}"> <th:block th:case="1"> <input th:attr="type=${pregunta.tipoInput}" th:id="|input-pregunta-${preguntaStat.index}|" th:name="${pregunta.idPreguntaEncuesta}" class="form-control" th:classappend="${pregunta.clase}" th:placeholder="${pregunta.placeholder}" required> <label th:for="|input-pregunta-${preguntaStat.index}|" th:text="${#strings.replace(pregunta.pregunta,' Referido','')}">Nombre</label> </th:block> <th:block th:case="2"> <label class="d-block" th:text="${pregunta.pregunta}"></label> <div class="form-check form-check-inline" th:each="opcion: ${pregunta.opciones}"> <input class="form-check-input" type="radio" th:name="${pregunta.idPreguntaEncuesta}|" th:id="|radio-button-${pregunta.idPreguntaEncuesta}-${opcionStat.index}|" th:classappend="${pregunta.clase}" th:value="${opcion}" required> <label class="form-check-label" th:for="|radio-button-${pregunta.idPreguntaEncuesta}-${opcionStat.index}|" th:text="${opcion}">1</label> </div> </th:block> <th:block th:case="3"> <span class="form-select-span" th:text="${pregunta.pregunta}"></span> <select th:name="${pregunta.idPreguntaEncuesta}" th:id="|select-pregunta-${preguntaStat.index}|" class="browser-default custom-select" th:classappend="${pregunta.clase}" required> <option th:each="opcion: ${pregunta.opciones}" th:text="${opcion}"></option> </select> </th:block> </th:block> </div> </div> <th:block th:if="${#lists.contains(#strings.arraySplit(pregunta.clase, ' '), 'columna-checkbox')}" th:each="pregunta: ${encuesta.preguntaEncuesta}"> <div th:if="${#lists.contains(#strings.arraySplit(pregunta.clase, ' '), 'acepto-acuerdo-privacidad')}" class="scotia-col-12 mb-3"> <div class="form-check"> <input class="form-check-input" type="checkbox" th:name="${pregunta.idPreguntaEncuesta}" value="true" id="acepto-condiciones-referidos" data-open="false" required/> <label class="form-check-label" for="acepto-condiciones-referidos"> Acepto expresamente el <strong class="font-weight-bold">Acuerdo de privacidad</strong> de Scotiabank Chile y sus Filiales. Debes revisar nuestro acuerdo de privacidad <a class="font-weight-bold" href="https://www.scotiaclub.cl/scclubfront/resource/pdf/Acuerdo-de-Privacidad.pdf" target="_blank">acá.</a> </label> </div> </div> <div th:if="${#lists.contains(#strings.arraySplit(pregunta.clase, ' '), 'autorizo-contacto')}" class="scotia-col-12 mb-3"> <div class="form-check"> <input class="form-check-input" type="checkbox" th:name="${pregunta.idPreguntaEncuesta}" value="true" id="autorizo-datos-personales2" required/> <label class="form-check-label" for="autorizo-datos-personales2"> Soy responsable y autorizo el uso de los datos personales del referido ingresados en módulo de scotiaclub.cl, los cuales serán utilizados exclusivamente para la gestión de contacto entre Scotiabank y el referido. </label> </div> </div> </th:block> </div> </form> <div class="sc-row px-5"> <div class="alert alert-info text-body" role="alert"> <ul class="no-list"> <li>(1) Promoción válida del 01 al 31 de enero para el cliente Scotiabank identificado en el formulario, quien deberá contar con Tarjeta de Crédito Scotiabank vigente y utilizable, para acceder a los Pesos Scotia correspondientes. En caso que cliente no tenga Tarjeta de Crédito vigente y utilizable el abono se realizará mediante abono directo en su Cuenta Corriente, para esto debe contar con Cuenta Corriente vigente a la fecha del abono. El abono se realizará el mes siguiente a la contratación del respectivo Plan de Cuenta Corriente por parte del referido. El monto de Pesos Scotia a abonar será de 30.000 Pesos Scotia si el referido contrata un Plan ScotiaLight o ScotiaZero y de 50.000 Pesos Scotia si el referido contrata un Plan Medium o Plan Full. El tope de Abono por cliente es de 150.000 Pesos Scotia al mes, considerando como periodo válido de contratación del Plan de Cuenta Corriente Scotiabank hasta el mes siguiente de haber referido. La aprobación y otorgamiento de un plan de cuenta corriente Scotiabank está sujeto a la evaluación del referido y al cumplimiento de las políticas de Riesgo y Comerciales del Banco. Quedan excluidos de la promoción los trabajadores de Scotiabank Chile y de sus filiales, asi como los clientes que al momento del abono tengan la calidad de trabajadores de alguna de dichas instituciones.</li> <li>(2) Promoción válida del 01 al 31 de enero para el cliente Scotiabank identificado en el formulario, quien debe contar con Cuenta Corriente Scotiabank para acceder al cash back correspondiente. En caso que cliente no tenga cuenta corriente vigente para realizar el abono correspondiente, y tenga Tarjeta de Crédito vigente y utilizable al momento del abono, el premio se realizará mediante abono de Pesos Scotia. El abono se realizará el mes siguiente a la contratación del respectivo Plan de Cuenta Corriente por parte del referido. El monto será de $30.000 si el referido contrata un Plan ScotiaLight o ScotiaZero y de $50.000 si el referido contrata un Plan Medium o Plan Full. El tope de Abono por cliente es de $150.000 al mes, considerando como periodo válido de contratación del Plan de Cuenta Corriente Scotiabank hasta el mes siguiente de haber referido. La aprobación y otorgamiento de un plan de cuenta corriente Scotiabank está sujeto a la evaluación del referido y al cumplimiento de las políticas de Riesgo y Comerciales del Banco. Quedan excluidos de la promoción los trabajadores de Scotiabank Chile y de sus filiales, así como los clientes que al momento del abono tengan la calidad de trabajadores de alguna de dichas instituciones.</li> <li>(3) Infórmese sobre la garantía estatal de los depósitos en su banco o en www . cmfchile . cl. ® Marca registrada de The Bank of Nova Scotia, utilizada bajo licencia.</li> </ul> </div> </div> <div class="text-center mb-4"> <button sec:authorize="isAuthenticated()" type="submit" class="scotia-button button-primary-red" th:form="|form-${encuesta.idEncuesta}|" id="submitReferido2">Enviar</button> <button sec:authorize="!isAuthenticated()" type="button" class="scotia-button button-primary-red" disabled>Debes iniciar sesión</button> </div> </div> </li> <li id="referidosExito" style="display: none;"> <div class="text-center"> <img th:src="@{/resource/images/Regalo_2021-04-05.png}" width="60px" alt="Regalo"/> </div> <h3 class="title-card text-center h3-responsive scotia-headline mb-3 mt-4" style="color:black!important;font-size:29px;">Haz agregado con éxito a tu referido</h3> <h6 class="text-center mb-3" style="color:black!important;">Recuerda, una vez activada la cuenta, tus puntos se te abonarán a tu cuenta.</h6> <div class="d-flex justify-content-center"> <button class="scotia-button button-primary-red" id="btn-referir-otro" type="button">Referir a Otro</button> <button class="scotia-button button-primary-red" type="button" data-dismiss="modal">Cerrar ventana</button> </div> </li> <li id="referidosError" style="display: none;"> <div class="mt-4"> <div class="text-center color-purple"> <span class="far fa-frown fa-3x"></span> </div> <h3 class="title-card text-center h3-responsive scotia-headline mb-3 mt-4" style="color:black!important;">Ha ocurrido un error</h3> <h6 class="text-center mb-3" style="color:black!important;">Ha ocurrio un error, intenta más tarde.</h6> <div class="d-flex justify-content-center"> <button class="scotia-button button-primary-red" id="btn-intentar-nuevamente" type="button">Intentar de Nuevo</button> <button class="scotia-button button-primary-red" type="button" data-dismiss="modal">Cerrar ventana</button> </div> </div> </li> </ul> </div> </div> </div> </div> <script th:inline="javascript"> function mostrarModalReferidos() { $('#modal-referidos').modal('show'); } $(document).ready(function() { $('#acepto-condiciones-referidos').on('change', function() { const open = $(this).data('open'); if (!open) { window.open('https://www.scotiaclub.cl/scclubfront/resource/pdf/Acuerdo-de-Privacidad.pdf', '_blank'); $(this).data('open', true); } }); $('#modal-referidos .telefono').each(function() { $(this).attr('minlength', '9'); $(this).attr('maxlength', '9'); }); const formularioEncuesta = $([[|#form-${encuesta.idEncuesta}|]]); formularioEncuesta.on('submit',function(e){ e.preventDefault(); let form = $(this); $('#submitReferido2').attr('disabled', true); $.ajax({ type: form.attr('method'), url: form.attr('action'), data: form.serialize(), // serializes the form's elements. success: function(data) { $("#domreferidosForm").slideUp(); $('#referidosExito').show(); }, error: function(error) { $('#domreferidosForm').slideUp(); $('#referidosError').show(); } }); }); $('#btn-referir-otro, #btn-intentar-nuevamente').on('click', function() { if ($(this).attr('id') == 'btn-referir-otro') { formularioEncuesta[0].reset(); } $('#submitReferido2').attr('disabled', false); $("#domreferidosForm").slideDown(); $("#referidosExito").hide(); }); }); </script> <!-- / modal referidos --> </th:block> </th:block> </th:block> <!-- validación js de autenticación --> <script th:inline="javascript"> var autenticado = [[${authenticated}]]; function estaLogeado(){ if(autenticado){ return true; }else{ return false; } } </script> <!-- / validación js de autenticación --> <script> document.addEventListener("DOMContentLoaded", function () { document.querySelectorAll('.nav-item.dropdown > .nav-link').forEach(function (link) { link.addEventListener('click', function (e) { const parent = this.parentElement; const menu = parent.querySelector('.dropdown-menu'); // Si no tiene submenú, permitir navegación normal if (!menu) return; // Interrumpir el comportamiento por defecto solo si es dropdown e.preventDefault(); const isAlreadyOpen = parent.classList.contains('show'); // Cerrar todos document.querySelectorAll('.nav-item.dropdown').forEach(function (item) { item.classList.remove('show'); const submenu = item.querySelector('.dropdown-menu'); if (submenu) submenu.classList.remove('show'); }); // Si no estaba abierto, lo abrimos if (!isAlreadyOpen) { parent.classList.add('show'); menu.classList.add('show'); } }); }); // Cierra si haces clic fuera del menú document.addEventListener('click', function (e) { if (!e.target.closest('.nav-item.dropdown')) { document.querySelectorAll('.nav-item.dropdown').forEach(function (item) { item.classList.remove('show'); const menu = item.querySelector('.dropdown-menu'); if (menu) menu.classList.remove('show'); }); } }); }); </script> <!-- CAMBIO DE NOMBRE --> <script> (() => { // ======================== // CONFIGURACIÓN INICIAL // ======================== const initialRules = [ // from, to, wordBoundary, preserveCase { from: "Beneficios Scotia", to: "ScotiaRewards", wordBoundary: false, preserveCase: false }, { from: "Pesos Scotia", to: "ScotiaPesos", wordBoundary: false, preserveCase: false }, { from: "beneficios.scotiabank.cl", to: "www.scotiarewards.cl", wordBoundary: false, preserveCase: false }, { from: "Peso Scotia", to: "ScotiaPeso", wordBoundary: false, preserveCase: false }, ]; const SKIP_TAGS = new Set(["SCRIPT", "STYLE", "NOSCRIPT", "CODE", "PRE", "TEXTAREA", "INPUT"]); // ======================== // PATHS EXCLUIDOS // ======================== /** * Paths que NO deben verse afectados por el script. * - Exactos: "/ruta/completa" * - Prefijo con "*": "/ruta/padre/*" */ const EXCLUDED_PATHS = [ "/scclubfront/categoria/sorteos/sorteoscotia", "/scclubfront/categoria/sorteos/*", ]; function isPathExcluded(pathname) { return EXCLUDED_PATHS.some(pattern => { if (pattern.endsWith("*")) { const base = pattern.slice(0, -1); return pathname.startsWith(base); } return pathname === pattern; }); } const currentPath = window.location.pathname || "/"; // Si la URL actual está excluida, no hacer nada y salir del IIFE if (isPathExcluded(currentPath)) { return; } // ======================== // UTILIDADES // ======================== function isAllUpper(s) { return /[A-Z]/.test(s) && s === s.toUpperCase(); } function isAllLower(s) { return s === s.toLowerCase(); } function isTitleCase(s) { // Considera "Title Case" si cada palabra inicia en mayúscula y lo demás en minúscula return s.split(/\s+/).every(w => w && w[0] === w[0].toUpperCase() && w.slice(1) === w.slice(1).toLowerCase()); } function toTitleCase(s) { return s.replace(/\p{L}[\p{L}\p{M}]*/gu, w => w[0].toUpperCase() + w.slice(1).toLowerCase()); } // Aplica estilo de mayúsculas del match al replacement (si preserveCase=true) function applyCase(match, replacement, preserve) { if (!preserve) return replacement; // fuerza exactamente el 'to' if (isAllUpper(match)) return replacement.toUpperCase(); if (isAllLower(match)) return replacement.toLowerCase(); if (isTitleCase(match)) return toTitleCase(replacement); // Caso mixto raro ? no intentes mapear carácter a carácter (evita "rewARds") return replacement; } // Compila reglas a RegExp seguras (con espacios flexibles) function compileRules(rules) { const escape = s => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); const toFlexible = s => s.trim().split(/\s+/).map(escape).join("[\\s\\u00A0]+"); // espacios/saltos/nbsp flexibles return rules.map(r => { const core = toFlexible(r.from); // Límites de palabra “Unicode-friendly” cuando se pida wordBoundary const pattern = r.wordBoundary ? `(?<![\\p{L}\\p{N}])${core}(?![\\p{L}\\p{N}])` : core; // Nota: bandera 'u' para Unicode (necesaria por \p{L}\p{N}) + 'gi' return { ...r, re: new RegExp(pattern, "giu") }; }); } function replaceInTextNode(node, compiledRules) { if (!node || !node.nodeValue) return; const parent = node.parentElement; if (parent && SKIP_TAGS.has(parent.tagName)) return; let txt = node.nodeValue; let changed = false; for (const rule of compiledRules) { txt = txt.replace(rule.re, m => { changed = true; return applyCase(m, rule.to, rule.preserveCase !== false); }); } if (changed) node.nodeValue = txt; } function walkAndReplace(root, compiledRules) { const tw = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { acceptNode(node) { const p = node.parentElement; if (p && SKIP_TAGS.has(p.tagName)) return NodeFilter.FILTER_REJECT; return /\S/.test(node.nodeValue) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT; } }); const batch = []; while (tw.nextNode()) batch.push(tw.currentNode); for (const n of batch) replaceInTextNode(n, compiledRules); } function processShadowRoots(compiledRules) { const elements = document.querySelectorAll("*"); elements.forEach(el => { if (el.shadowRoot) { walkAndReplace(el.shadowRoot, compiledRules); observe(el.shadowRoot, compiledRules); } }); } (function patchAttachShadow() { const orig = Element.prototype.attachShadow; if (!orig) return; Element.prototype.attachShadow = function (init) { const sr = orig.call(this, init); queueMicrotask(() => { walkAndReplace(sr, compiledCompiledRules); observe(sr, compiledCompiledRules); }); return sr; }; })(); function observe(root, compiledRules) { const obs = new MutationObserver(muts => { const textNodes = new Set(); for (const m of muts) { if (m.type === "characterData" && m.target.nodeType === Node.TEXT_NODE) { textNodes.add(m.target); } if (m.type === "childList") { m.addedNodes && m.addedNodes.forEach(node => { if (node.nodeType === Node.TEXT_NODE) { textNodes.add(node); } else if (node.nodeType === Node.ELEMENT_NODE) { walkAndReplace(node, compiledRules); if (node.shadowRoot) { walkAndReplace(node.shadowRoot, compiledRules); observe(node.shadowRoot, compiledRules); } } }); } } textNodes.forEach(n => replaceInTextNode(n, compiledRules)); }); obs.observe(root, { subtree: true, childList: true, characterData: true }); return obs; } // ======================== // INICIALIZACIÓN // ======================== let compiledCompiledRules = compileRules(initialRules); walkAndReplace(document.documentElement, compiledCompiledRules); processShadowRoots(compiledCompiledRules); observe(document.documentElement, compiledCompiledRules); // ======================== // API PÚBLICA (global) // ======================== window.TextReplacer = { add(from, to, { wordBoundary = false, preserveCase = true } = {}) { const rule = { from, to, wordBoundary, preserveCase }; const compiled = compileRules([rule])[0]; compiledCompiledRules.push(compiled); walkAndReplace(document.documentElement, [compiled]); processShadowRoots(compiled); return this; }, addMany(list) { const compiled = compileRules(list); compiledCompiledRules.push(...compiled); walkAndReplace(document.documentElement, compiled); processShadowRoots(compiled); return this; }, remove(from) { const lower = String(from).toLowerCase(); compiledCompiledRules = compiledCompiledRules.filter(r => r.from.toLowerCase() !== lower); return this; }, clear() { compiledCompiledRules = []; return this; }, list() { return compiledCompiledRules.map(({ from, to, wordBoundary, preserveCase }) => ({ from, to, wordBoundary, preserveCase })); } }; })(); </script> <!-- FIN CAMBIO DE NOMBRE --> </th:block> <!--/* FIN th:block DATA AUTENTICATE */--> <style th:inline="text"> .text-white-off { color: #ffffff73 !important; } .bg-submenu { background:[[${submenuurl.color}]] !important; } .bg-submenu-caja { background-color:[[${submenuurl.color_borde}]] !important; } .category-container { display: flex; align-items: center; gap: 16px; padding: 0 10px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth; scroll-snap-type: x mandatory; } .category-item { flex: 0 0 auto; text-decoration: none !important; scroll-snap-align: start; } .carousel-wrapper { position: relative; display: flex; align-items: center; width: 100%; } .carousel-arrow { cursor: pointer; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; z-index: 10; background: transparent; border: none; outline: none !important; } .carousel-arrow i { font-size: 24px; color: #2c328c; } .carousel-arrow.disabled { opacity: 0.3; cursor: default; pointer-events: none; } .category-card { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 155px; height: 125px; border-radius: 20px; transition: all 0.2s ease-in-out; padding: 15px; border: 1px solid #e2e4e8; background-color: #fff; } .category-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.05); } .category-card.active { background-color: #cbcfef; border-color: transparent; } .category-card .category-name { font-size: 16px; font-weight: 500; color: #434343; text-align: center; margin-top: 10px; line-height: 1.2; } .category-card.active .category-name { color: #302d6999; font-weight: 600; } .category-card img { width: 38px; height: 38px; object-fit: contain; margin-bottom: 4px; } .category-card.active img { filter: none; } .arrow-next { display: none; } /* Estilos de _respaldo.html aplicados al carrusel, sin cambiar su funcionalidad. */ .scotia-black-bg { width: 100%; background-color: #333333; } .carousel-wrapper { width: 100%; max-width: 1000px; margin-left: auto; margin-right: auto; box-sizing: border-box; background-color: transparent; padding: 0 16px; } .category-container { align-items: stretch; gap: 4px; min-width: 0; padding: 10px 0; scroll-snap-type: x proximity; } .category-item { flex: 0 0 140px; min-width: 0; scroll-snap-align: start; } .carousel-arrow { flex: 0 0 32px; width: 32px; height: 42px; padding: 0; color: #fff; } .carousel-arrow i { font-size: 18px; color: inherit; } .carousel-arrow:hover, .carousel-arrow:focus { color: #fff; background-color: rgba(255, 255, 255, .1); } .category-card { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 42px; height: auto; padding: 6px 8px; border: 0; border-radius: 4px; background-color: transparent; line-height: 1.25; text-align: center; white-space: normal; word-break: normal; overflow-wrap: break-word; transition: background-color .2s ease, color .2s ease; } .category-card:hover, .category-card:focus { color: #fff !important; background-color: rgba(255, 255, 255, .1); text-decoration: none; box-shadow: none; } .category-card.active { background-color: rgba(255, 255, 255, .14); border-color: transparent; } .category-card .category-name { font-size: 14px !important; font-weight: 400; color: #ffffff73; text-align: center; margin-top: 0; line-height: 1.25; } .category-card.active .category-name { color: #fff; font-weight: 600; } @media (max-width: 767px) { .carousel-wrapper { display: none; padding: 0 8px; } .category-container { gap: 4px; } .category-item { flex-basis: 145px; } .carousel-arrow { flex-basis: 32px; width: 32px; } } </style> <th:block th:with="authenticated=${#authorization.expression('isAuthenticated()')}"><th:block th:if="${(authenticated && #arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') )}"><style>#menu-saboristas { background-image: url([[${submenuurl.nombre} == 'Mi cartola' ? '/scclubfront/resource/sections/beneficios1655740431.jpg' : @{${submenuurl.imagen}}]]); background-repeat: no-repeat; background-position: top; } </style> </th:block> <style> .category-container { justify-content: center; } .category-container.is-overflowing { justify-content: flex-start; } .carousel-arrow { display: none; } .carousel-wrapper.has-overflow .carousel-arrow { display: flex; } </style> <section class="scotia-black-bg"> <div class="sc-container"> <div class="carousel-wrapper"> <!-- FLECHA IZQUIERDA --> <button type="button" class="carousel-arrow prev-arrow" id="prevBtn" aria-label="Ver categorías anteriores"> <i class="fas fa-chevron-left"></i> </button> <div class="category-container flex-grow-1" id="categoryScroll" tabindex="0"> <!-- CATEGORÍAS PRINCIPALES --> <th:block th:each="submenu, stat : ${menuurl.submenues}" th:if="${(stat.first || menuurl.submenues[stat.index-1].nombre != submenu.nombre) && submenu.visibleTop}"> <a class="category-item category-card" th:href="@{|${menuurl.link}${submenu.link}|}" th:classappend="${submenu.link == submenuurl.link} ? 'active' : ''"> <div class="category-name" th:text="${submenu.nombre}">Nombre</div> </a> </th:block> </div> <!-- FLECHA DERECHA --> <button type="button" class="carousel-arrow next-arrow" id="nextBtn" aria-label="Ver más categorías"> <i class="fas fa-chevron-right"></i> </button> </div> </div> </section> <div class="modal right fade" id="myModal2" tabindex="-1" role="dialog"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header" style="border-bottom: none;"> <div class="headline-small pb-0"> Todas las categorías: </div> <button type="button" class="close" data-dismiss="modal"> <span>&times;</span> </button> </div> <div class="modal-body px-30"> <div class="category-list"> <!-- TODAS LAS CATEGORÍAS EN LISTADO --> <th:block th:each="submenu : ${menuurl.submenues}"> <a th:href="@{|${menuurl.link}${submenu.link}|}" class="category-list-item d-flex align-items-center py-12"> <img th:src="@{${submenu.icono}}" width="24px" class="mr-16"> <span class="body-1 text-dark" th:text="${submenu.nombre}">Nombre</span> <i class="fas fa-chevron-right ml-auto scotia-plum-color" style="font-size: 12px;"></i> </a> <hr class="my-0" style="border-color: #f0f0f0;"> </th:block> </div> </div> </div> </div> </div> <script th:inline="javascript"> /*<![CDATA[*/ const menus = [[${ menuurl.submenues }]]; const initializeCarousel = function() { const container = document.getElementById('categoryScroll'); const prevBtn = document.getElementById('prevBtn'); const nextBtn = document.getElementById('nextBtn'); if (container && prevBtn && nextBtn) { const scrollAmount = 300; const carouselWrapper = container.closest('.carousel-wrapper'); const updateArrows = () => { const hasOverflow = container.scrollWidth > container.clientWidth + 5; const isAtStart = container.scrollLeft <= 5; const isAtEnd = container.scrollLeft + container.clientWidth >= container.scrollWidth - 5; container.classList.toggle('is-overflowing', hasOverflow); if (carouselWrapper) { carouselWrapper.classList.toggle('has-overflow', hasOverflow); } prevBtn.classList.toggle('disabled', !hasOverflow || isAtStart); nextBtn.classList.toggle('disabled', !hasOverflow || isAtEnd); }; nextBtn.addEventListener('click', () => { container.scrollBy({ left: scrollAmount, behavior: 'smooth' }); }); prevBtn.addEventListener('click', () => { container.scrollBy({ left: -scrollAmount, behavior: 'smooth' }); }); container.addEventListener('scroll', updateArrows); window.addEventListener('resize', updateArrows); updateArrows(); // Scroll to active category on load const activeItem = container.querySelector('.category-card.active'); if (activeItem) { const itemOffset = activeItem.offsetLeft - (container.clientWidth / 2) + (activeItem.clientWidth / 2); container.scrollTo({ left: itemOffset, behavior: 'auto' }); } } }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initializeCarousel); } else { initializeCarousel(); } /*]]>*/ </script> </th:block> <style> .category-list-item { text-decoration: none !important; transition: background 0.2s; border-radius: 8px; margin: 4px 0; } .category-list-item:hover { background-color: #f0f0f7; } .category-list-item span { font-weight: 500; color: #333; } .category-list-item img { opacity: 0.8; } .category-list-item:hover img { opacity: 1; } .list, .list li { list-style: initial !important; font-size: .8rem !important; color: #333 !important; } </style> <style> .list, .list li{ list-style: initial!important; font-size:.8rem!important; color:#333!important; } .escoje-monto input:checked~.checkmark { background-color: #ec111a; border: 1px solid #ec111a; } </style> <th:block th:switch="${submenuurl.tipo}" th:with="authenticated=${#authorization.expression('isAuthenticated()')}" > <x th:case="1" th:remove="tag"> <section id="que-saborista"> <div class="container pt-5 pb-5"> <div class="row"> <div class="col-md-6"> <h2 class="cr-supertitle"><span th:text="${submenuurl.informationsubmenu.titulo}">titulo</span><span th:text="${submenuurl.informationsubmenu.subtitulo}">suntitulo</span></h2> <h5 class="pr-5" th:text="${submenuurl.informationsubmenu.descripcion}">descripcion</h5> <a target="_blank" th:href="@{${submenuurl.informationsubmenu.link}}"><button type="button" class="btn cr-red-btn btn-crezco mt-4 mb-5" th:text="${submenuurl.informationsubmenu.textoLink}">texto link</button></a> <div class="col-md-12 pt-2"> <p th:utext="${submenuurl.informationsubmenu.condiciones}"></p> </div> </div> <div class="col-md-6 m"> <img class="cr-fit-img" th:src="@{${submenuurl.informationsubmenu.imagen}}" /> </div> <div class="col-md-6"></div> </div> </div> </section> <script> $(document).ready(function(){ var parent = $('#que-saborista ul').parent(); var content = parent.html(); content = content.replace(/<ul>/g, '').replace(/<\/ul>/g, ''); content = content.replace(/<li>/g, '<p class="cr-tips">').replace(/<\/li>/g, '</p>'); parent.html(content); }); </script> </x> <x th:case="2" th:remove="tag"> <section id="que-saborista"> <div class="container pt-5 pb-5"> <div class="row"> <div class="col-sm-6 col-md-4 col-lg-4 pb-3" th:each="productoLikeLista : ${submenuurl.productosLikeLista}" > <div class="cr-caja-summary"> <div class="cr-ruta-img"> <img th:src="@{${productoLikeLista.imagen}}" /> </div> <div class="text-center p-2 cr-blue-bg rounded cr-discount" th:style="|background-color: ${submenuurl.color}|"> <h1 class="font-weight-bold" th:text="${productoLikeLista.porcentajeInfo}">porcentajeInfo</h1> </div> <div class="row align-items-center"> <div class="col-8"> <div class="p-3"> <h4 th:text="${productoLikeLista.titulo}">titulo</h4> <p> <span th:text="${productoLikeLista.subtitulo}">subtitulo</span><br> <span th:text="${productoLikeLista.direcciones}">direccionTxt1</span> </p> </div> </div> <div class="col-4"> <div class="cr-like text-center color-purple pt-4 pb-4"> <i id="mg_199" name="mg_199" class="far fa-heart fa-3x" onclick="like(199);"></i> <br>Me gusta<br> <span th:text="${productoLikeLista.like}">likes</span> </div> </div> </div> </div> </div> </div> </div> </section> </x> <!-- Tipo 4 --> <x th:case="4" th:remove="tag"> <section id="que-saborista"> <div class="container pt-5 pb-5"> <div class="row"> <div class="col-sm-6 col-md-4 col-lg-3 pb-3" th:each="producto : ${productos}"> <div class="cr-caja-summary"> <x th:if="${producto.stock == 0}" th:remove="tag"> <div class="ribbon"> <span>Agotado</span> </div> </x> <div class="cr-product-img"> <img th:src="@{${producto.imagen}}"/> </div> <div class="cr-product-contenido"> <h6 class="mb-0">CineHoyts Parque Arauco</h6> <h6 th:text="${producto.subtitulo}" class="mb-0"></h6> <h6 th:text="${producto.porcentajeInfo}">21:00 hrs</h6> <h4 class="font-weight-bold" th:text="|${#numbers.formatInteger(producto.precio,0,'POINT')} Pesos Scotia|"></h4> <h6>Entrada válida para 1 persona</h6> <table class="tablanueva shadow-sm" border="1" width="100%"> <thead> <tr> <td>STOCK</td> <td>CANJEADOS</td> </tr> </thead> <tbody> <tr> <td th:text="${producto.stock}">x</td> <td th:text="${producto.canjeados}">x</td> </tr> </tbody> </table> <x th:if="${producto.stock != 0}" th:remove="tag"> <a th:href="@{|${menuurl.link}${submenuurl.link}/detalle/${producto.idProducto}|}" class="btn cr-purple-btn">Canjear</a> </x> <x th:if="${producto.stock == 0}" th:remove="tag"> <a href="#" class="btn cr-purple-btn disabled">Agotado</a> </x> </div> </div> </div> </div> </div> </section> </x> <!-- /Tipo 4 --> <!-- Tipo 5 --> <th:block th:case="5"> <th:block th:if="${verProductosCategoria == null}"> <section th:id="|section-submenu-${submenuurl.id}|"> <div class="item" th:if="${submenuurl.id == 6657}" th:with="parametros=${#strings.arraySplit(submenuurl.descripcion, '|')}"> <div class="sc-container-fluid sc-d-sm-block sc-d-md-block sc-d-lg-flex sc-flex-sm-row-reverse sc-align-items-center pb-xs-30 p-0 bg-banner scotia-charcoal"> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-6 p-0"> <img th:src="@{${submenuurl.imagen}}" class="img-fluid w-100 sc-max-height"> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-5 py-xs-12"> <div class="sc-box-bannerhero p-30 p-xs-24 m-xs-12"> <div th:if="${#lists.size(parametros) >= 1}" th:text="${parametros[0]}" class="status-badge-outlined badge-outlined-light mb-12" th:style="'background-color: ' + (${#strings.toLowerCase(parametros[0]) == 'agotado'} ? '#ec111a' : 'inherit')"> </div> <h2 th:if="${#lists.size(parametros) >= 2}" th:text="${parametros[1]}" class="subtitle-1 scotia-light pb-12"> </h2> <h1 th:if="${#lists.size(parametros) >= 3}" th:text="${parametros[2]}" class="headline-medium scotia-light pb-12"> </h1> <p th:if="${#lists.size(parametros) >= 4}" th:text="${parametros[3]}" class="body-2 scotia-light pb-36"> </p> <div class="sc-d-block sc-d-sm-block sc-d-md-flex sc-d-lg-flex"> <a th:if="${#strings.toLowerCase(parametros[0]) != 'agotado'}" href="#entradas" class="sc-d-block sc-d-sm-block text-center scotia-button pill-primary-button mt-xs-12"> Quiero Canjear </a> </div> </div> </div> </div> </div> <div class="item" th:if="${submenuurl.id != 6657}"> <div class="sc-container-fluid sc-d-sm-block sc-d-md-block sc-d-lg-flex sc-flex-sm-row-reverse sc-align-items-center pb-xs-30 p-0 bg-banner scotia-charcoal"> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-6 p-0"> <img th:src="@{${submenuurl.imagen}}" class="img-fluid w-100 sc-max-height"> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-5 py-xs-12"> <div class="sc-box-bannerhero p-30 p-xs-24 m-xs-12"> <h1 class="headline-medium scotia-light pb-12" th:text="${submenuurl.descripcion}"> Canjea tus Pesos Scotia por las mejores Gift Cards y Entradas </h1> </div> </div> </div> </div> <div class="container py-5"> <div class="row justify-content-center mt-4" id="js-productos-tipo5-row"> <th:block th:each="categoria : ${categorias}"> <div class="col-sm-6 col-md-4 col-lg-3 pb-3" th:each="producto : ${categoria.productos}" th:classappend="${#strings.toLowerCase(producto.codigo) == 'x'} ? 'd-none' : ''"> <div class="cr-caja-summary h-100 d-flex flex-column"> <div class="cr-product-img"> <img th:src="@{${submenuurl.id == 6657 ? producto.imagen : categoria.imagen}}" th:alt="${producto.titulo}"> <div th:if="${producto.stock == 0}" class="full-ribbon"> <span>AGOTADO</span> </div> </div> <div class="cr-product-contenido flex-grow-1 d-flex flex-column"> <div> <h6 class="scotia-headline text-uppercase" th:text="${producto.titulo}">NOMBRE PRODUCTO</h6> <h6 class="small mb-2 text-muted d-none" th:text="${categoria.nombre}">MARCA</h6> <h6 class="scotia-headline text-danger mt-3"> <span th:text="${#numbers.formatInteger(producto.precio, 0, 'POINT')}">3.000</span> ScotiaPesos </h6> </div> <table class="tablanueva shadow-sm mt-3 mb-4" border="1" width="100%"> <thead> <tr> <td>STOCK</td> <td>DISPONIBLE</td> </tr> </thead> <tbody> <tr> <td th:text="${producto.stock}">0</td> <!-- si tiene stock disponible si no agotado --> <td> <th:block th:if="${producto.stock != 0}">SI</th:block> <th:block th:if="${producto.stock == 0}">NO</th:block> </td> </tr> </tbody> </table> <div class="mt-auto"> <a th:href="@{|${menuurl.link}${submenuurl.link}/productos/${categoria.strIndex}/?gc=${producto.idProducto}|}" class="scotia-button button-primary-red btn-block text-center" th:classappend="${producto.stock == 0} ? 'disabled' : ''"> Canjear </a> </div> </div> </div> </div> </div> </div> <script th:inline="javascript"> $(document).ready(function() { var $container = $('#js-productos-tipo5-row'); if ($container.length) { var $products = $container.children('.col-sm-6.col-md-4.col-lg-3.pb-3'); $products.sort(function(a, b) { var aHasStock = $(a).find('.full-ribbon').length === 0; var bHasStock = $(b).find('.full-ribbon').length === 0; if (aHasStock && !bHasStock) { return -1; } else if (!aHasStock && bHasStock) { return 1; } return 0; }); $container.append($products); } }); </script> </section> </th:block> <th:block th:if="${verProductosCategoria == true}"> <section th:id="|section-submenu-${submenuurl.id}|"> <div class="container-fluid mt-2 mb-5"> <div class="row align-items-center justify-content-center"> <div class="col-md-10"> <th:block th:if="${param.gc == null or param.gc[0] == null or !param.gc[0].matches('[0-9]+')}"> <script th:inline="javascript"> /*<![CDATA[*/ window.location.href = '/scclubfront/error/404'; /*]]>*/ </script> </th:block> <!-- Producto seleccionado (obtenido desde param.idSel en la URL) --> <th:block th:each="prod : ${categoria.productos}" th:if="${prod.idProducto == T(java.lang.Long).parseLong(param.gc[0])}"> <form id="formulario-canje-giftcard" class="prevent-multiple-submit" autocomplete="off" th:action="@{|${menuurl.link}${submenuurl.link}/canje|}" th:object="${producto}" method="POST"> <input type="hidden" name="idProducto" th:value="${prod.idProducto}" th:data-requiere-validar-tarjeta="${prod.requiereValidarTarjetas}" th:data-requiere-validacion-sms="${prod.requiereValidacionSms}" id="input-producto-seleccionado"> <div class="card shadow-sm cr-grey-bg"> <div class="card-body"> <div class="row"> <!-- Columna izquierda: Imagen, Stock, Términos y Botones --> <div class="col-md-6"> <div class="text-center"> <img th:src="@{${prod.imagen}}" class="img-fluid" alt=""> </div> <hr> <div class="row justify-content-center"> <div class="col-5 col-sm-4 col-md-6 col-lg-5 col-xl-3 px-1"> <div class="contenedor-cantidades p-1"> <h5 class="mb-0" th:text="${prod.stock}">0</h5> <p class="mb-0">STOCK</p> </div> </div> <div class="col-5 col-sm-4 col-md-6 col-lg-5 col-xl-3 px-1 d-none"> <div class="contenedor-cantidades p-1"> <h5 class="mb-0" th:text="${prod.canjeados}">0</h5> <p class="mb-0">CANJEADOS</p> </div> </div> </div> <hr> <!-- Botones --> <div class="row"> <div class="col-md-6"> <a th:href="@{|${menuurl.link}${submenuurl.link}|}" class="scotia-button scotia-secundary-red btn btn-block rounded btn-sm mt-2">Volver</a> </div> <div class="col-md-6"> <button sec:authorize="!isAuthenticated()" type="button" class="scotia-button button-primary-red btn btn-block rounded mb-2 btn-sm mt-2" data-toggle="modal" data-target="#loginModal" id="btn-inicia-sesion">Debes iniciar sesión</button> <button sec:authorize="isAuthenticated()" id="btn-submit-canje-gc" type="button" class="scotia-button button-primary-red btn btn-block rounded mb-2 btn-sm mt-2" disabled>Canjear ahora</button> </div> </div> </div> <!-- Columna derecha: Detalles del producto --> <div class="col-md-6"> <h5>Estás a punto de canjear <span class="scotia-headline" th:text="${#numbers.formatInteger(prod.precio,0,'POINT')}">0</span> <span class="scotia-headline">ScotiaPesos</span></h5> <h4 class="scotia-headline mb-0 pt-2" th:text="${prod.titulo}">Título del producto</h4> <h6 class="pt-2" th:utext="${#strings.replace(prod.tituloTipo1,'<ul>','<ul class=''list pl-3''>')}"></h6> <!-- <p class="text-muted text-justify" th:utext="${#strings.replace(prod.tituloTipo2,'<ul>','<ul class=''list pl-3''>')}"></p> --> <hr> <!-- Datos nominativos si aplica --> <th:block th:if="${categoria.nominativa}"> <p>Datos de quien usará la Giftcard</p> <div class="row mb-3"> <div class="col-md-6 pb-2"> <input class="form-control small-input" type="text" name="nombreAsociado" placeholder="Nombre" id="input-nombre" required pattern="[a-zA-ZÀ-ž\s]+"> </div> <div class="col-md-6 pb-2"> <input class="form-control small-input input-rut" id="input-rut" type="text" name="rutAsociado" placeholder="RUT" title="Sin puntos, con guión" required autocomplete="off" oninput="validarRutGift(this)" minlenght="9" maxlength="10" pattern="^\d{8}-(\d|k|K)$"> </div> </div> </th:block> <!-- Validar tarjeta si aplica --> <div id="div-validar-tarjeta" style="display: none;"> <div class="form-group row"> <label for="digitos-tarjeta" class="col-sm-7 col-form-label">Ingrese los últimos 4 dígitos de su tarjeta de crédito:</label> <div class="col-sm-5"> <input class="form-control" maxlength="4" id="digitos-tarjeta" name="digitosTarjeta" placeholder="XXXX"> </div> </div> </div> <!-- Alerta si está agotado --> <div th:if="${prod.stock == 0}" class="alert alert-warning mt-3"> <strong>Producto agotado</strong> - No hay stock disponible para este producto. </div> <!-- Términos y condiciones --> <div class="my-4 d-flex align-items-center"> <div style="margin-top: -15px;"> <input type="checkbox" class="cbx" id="cat-viajes" required disabled> <label for="cat-viajes" class="check mb-4 d-none"> <svg width="18px" height="18px" viewBox="0 0 18 18"> <path d="M1,9 L1,3.5 C1,2 2,1 3.5,1 L14.5,1 C16,1 17,2 17,3.5 L17,14.5 C17,16 16,17 14.5,17 L3.5,17 C2,17 1,16 1,14.5 L1,9 Z"></path> <polyline points="1 9 7 14 15 4"></polyline> </svg> </label> </div> <a class="collapsed" data-toggle="collapse" data-parent="#accordionEx2" href="#collapseTwo2" aria-expanded="false" aria-controls="collapseTwo2" id="btn-acept-termconds"> <h6 class="scotia-headline ml-2"> Acepto los términos y condiciones<i class="fas fa-angle-down rotate-icon ml-2"></i> </h6> <h6 class="small">(Desplegar términos y condiciones)</h6> </a> </div> <div class="accordion md-accordion my-2" id="accordionEx2" role="tablist" aria-multiselectable="true"> <div id="collapseTwo2" class="collapse" role="tabpanel" aria-labelledby="headingTwo2" data-parent="#accordionEx2"> <div th:utext="${#strings.replace(prod.condicionesComercio,'<ul>','<ul class=''list pl-3''>')}"></div> </div> </div> </div> </div> </div> </div> </form> </th:block> <form th:action="@{/sms/send}" id="form-sms" style="display: none;" method="POST"></form> </div> </div> </div> <div th:if="${categoria.idCategoria == 67}" class="modal fade" id="cinepolisModal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content rounded-lg" style="border-radius: 20px !important;"> <div class="modal-body p-0"> <button type="button" class="close position-absolute mr-0" data-dismiss="modal" aria-label="Close" style="right: 21px; top:23px; opacity: 1;"> <span aria-hidden="true" class="text-white">&times;</span> </button> <img class="img-fluid" th:src="@{/resource/images/avisocinepolis.png}" id="banner-modal-img" alt="Imagen de Pop Up"/> <div class="d-flex justify-content-center position-absolute w-100" style="bottom: 12px;"> <a id="banner-modal-btn" class="btn" data-dismiss="modal" role="button" style="border-radius: 32px; min-width: 160px;">Entendido</a> </div> </div> </div> </div> </div> </section> <script th:inline="javascript"> [# sec:authorize="!isAuthenticated()"] $("#input-nombre" ).focus(function() { $("#btn-inicia-sesion").click(); $("#input-nombre").blur(); }); $("#input-rut" ).focus(function() { $("#btn-inicia-sesion").click(); $("#input-rut").blur(); }); [/] !function(a,b){"function"==typeof define&&define.amd?define(function(){return a.Rut=b()}):"object"==typeof exports?module.exports=b():a.Rut=b()}(this,function(){var a;return a=function(){function a(a,b){this.setRut(a,b)}var b,c,d;return a.prototype.setRut=function(a,c){if(null==c&&(c=!1),"string"!=typeof a)throw new Error("rut tiene que ser string");this.rut=c?b(a):b(a.substr(0,a.length-1)),this.checkDigit=c?d(a):a.substr(a.length-1).toUpperCase(),this.isValid=this.validate()},a.prototype.validate=function(){var a;return/([0-9]|k)/i.test(this.checkDigit)?(a=d(this.rut),this.checkDigit.toLowerCase()===a.toLowerCase()):!1},a.prototype.getCleanRut=function(){return this.rut+""+this.checkDigit},a.prototype.getNiceRut=function(a){return null==a&&(a=!0),a?c(this.rut)+"-"+this.checkDigit:this.rut+"-"+this.checkDigit},b=function(a){return a.replace(/(\.|\-)/g,"")},d=function(a){var b,c,d,e;for(e=0,b=a.length,c=2;--b>=0;)e+=a.charAt(b)*c,8===++c&&(c=2);return d=e%11,1===d?"K":0===d?"0":String(11-d)},c=function(a){return a.split("").reverse().reduce(function(a,b,c){return a=0===c%3?b+"."+a:b+""+a})},a}()}); let rutsNoValidos = ['00000000','0000000','0000000','00000','0000','000','00','0','-0','0-0','00-0','000-0','0000-0','00000-0','000000-0','0000000000-0','000000000','0000000-0','0000000-0','000000000-0', '00000000-0', '0000000-0', '11111111-1', '22222222-2', '33333333-3', '44444444-4', '55555555-5', '66666666-6', '77777777-7', '88888888-8', '99999999-9']; function validarRutGift(rutgift){ var rut = new Rut(rutgift.value); if ( rut.isValid ) { for (let num of rutsNoValidos){ if(num === rutgift.value){ rutgift.setCustomValidity("RUT No válido"); return false; console.log("error rut no valido"); } } rutgift.setCustomValidity(''); return true; } else { rutgift.setCustomValidity("RUT No válido"); return false; } } $(document).ready(function() { var $inputProducto = $('#input-producto-seleccionado'); var $inputRut = document.getElementById('input-rut'); // Verificar validaciones del producto seleccionado al cargar if ($inputProducto.data('requiere-validar-tarjeta')) { $('#div-validar-tarjeta').show(); $('#digitos-tarjeta').prop('disabled', false); } // Habilitar checkbox al desplegar términos y condiciones $("#btn-acept-termconds").click(function() { document.getElementById('cat-viajes').disabled = false; }); // Habilitar/deshabilitar botón de canjear según checkbox $(".cbx").change(function() { if (this.checked) { document.getElementById('btn-submit-canje-gc').disabled = false; } else { document.getElementById('btn-submit-canje-gc').disabled = true; } }); $('#btn-submit-canje-gc').click(function() { let validForm = $('#formulario-canje-giftcard')[0].reportValidity(); let validRut = $inputRut ? validarRutGift($inputRut) : true; if (validForm && validRut) { if ($inputProducto.data('requiere-validacion-sms')) { $('#codigo-sms').attr('required', ''); /* SI EL BOTÓN ESTÁN DESHABILITADO, YA SE ENVIÓ EL SMS Y NO DEBE ENVIARSE DE NUEVO */ if (!$('#enviar-codigo-sms').prop('disabled')) { $('#enviar-codigo-sms').click(); } $('#exampleModal').modal('show'); } else { $(this).addClass('disabled'); $(this).html('<i class="fas fa-circle-notch fa-spin"></i>'); $('#formulario-canje-giftcard').submit(); } } }); $('#exampleModal').on('hidden.bs.modal', function (e) { $('#codigo-sms').removeAttr('required'); $('#enviar-codigo-sms').hide(); }); $('#enviar-codigo-sms').click(function() { $(this).hide(); $(this).prop('disabled', true); let form = $('#form-sms'); $.ajax({ url: form.attr('action'), method: form.attr('method'), data: form.serialize(), success: function(respuesta) { $('#codigo-sms').removeClass('readonly'); $('#small-msj-codigo').slideDown(); let counter = 120; // 120 segundos let timer = setInterval(function() { counter--; if (counter == 0) { clearInterval(timer); $('#enviar-codigo-sms').show(); $('#enviar-codigo-sms').prop('disabled', false); } let newTime = new Date(counter * 1000); $('#contador-reenviar-sms').html(newTime.toLocaleTimeString().substring(3, 8)); }, 1000); }, error: function() { alert('Error enviando código'); } }); }); }); </script> </th:block> </th:block> <!-- /Tipo 5 --> <!-- Tipo 6 --> <th:block th:case="6"> <x th:if="${verProductosCategoria == null}" th:remove="tag"> <section th:id="|section-submenu-${submenuurl.id}|"> <div class="container pt-5 pb-5"> <div class="row"> <div class="col-md-12 mb-4"> <h5 class="mb-1">Abona tus Pesos Scotia a tu Tarjeta de Crédito y úsalos donde quieras</h5> <h5 class="mb-1 font-weight-bold text-morado">Válido solo para compras nacionales</h5> <a class="btn btn-sm btn-morado rounded ml-0" th:href="@{/resource/documentos/ManualAbonoPesosScotia.pdf}" target="_blank">Revisa cómo canjear <i class="fas fa-file-download ml-2"></i></a> </div> <div class="col-lg-2 col-xl-3"></div> <div class="col-sm-12 col-md-12 col-lg-8 col-xl-6 mt-3"> <div class="cr-caja-progreso"> <div class="cr-progreso-number cr-progreso-active"><p>1</p></div> <p>Escoge una Categoría</p> <hr class="style1"> <div class="cr-progreso-number"><p>2</p></div> <p>Elige un monto</p> <hr class="style1"> <div class="cr-progreso-number"><p>3</p></div> <p>Canjea</p> </div> </div> <div class="col-lg-2 col-xl-3"></div> </div> <div class="row mt-5"> <div class="col-sm-6 col-md-4 col-lg-3 col-xl-2" th:each="categoria : ${submenuurl.categoriaProductoLista}"> <div th:class="|cr-caja-categoria canje-caja-cat yeah-hover ${categoria.colorHover}|"> <img class="soy-hover" th:src="@{${categoria.imagen}}" style="max-width: 50px;"> <img class="soy-nohover" th:src="@{${categoria.imagen}}" style="max-width: 50px;"> <th:block sec:authorize="isAuthenticated()"> <div th:if="${(#arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') && categoria.id == 24) || (#arrays.contains(usuario.tipoCliente, 'SINGULAR'))}" class="rubro-x2"><p>x2</p></div> </th:block> <p th:text="${categoria.nombre}">Nombre</p> <a class="link-rubro" th:href="@{|${menuurl.link}${submenuurl.link}/productos/${categoria.strIndex}|}"></a> </div> </div> </div> <th:block sec:authorize="isAuthenticated()"> <div th:if="${usuario.tipoCliente == 'SINGULAR'}" class="row mt-5"> <div class="col-12 text-center"> <h3>Recuerda que tus Pesos Scotia valen el doble en todas tus compras nacionales.</h3> </div> </div> </th:block> </div> </section> <!-- Modal --> <div class="modal fade" id="modal-confirmar-inscripcion" tabindex="-1" role="dialog" aria-label="Información Importante" aria-modal="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <button type="button" class="close" data-dismiss="modal" aria-label="Cerrar" style="position: absolute; right: 20px;"> <span aria-hidden="true">×</span> </button> <div class="text-center mb-3"> <img th:src="@{/resource/images/exclamation_2020-10-21.svg}" class="animated heartBeat infinite slow" height="60" alt="¡Importante!"> </div> <h4 class="h4-responsive font-weight-bolder text-center scotia-headline">Información importante</h4> <p class="text-center">Antes de inscribir toma en cuenta lo siguiente:</p><br><br> <p class="mb-2"><strong class="font-weight-bold scotia-headline">1.</strong> Tu abono es válido solo para compras nacionales.</p> <p class="mb-2 font-weight-bold"><strong class="scotia-headline">2.</strong> La compra debe ser realizada posterior a la inscripción.</p> <p class="mb-2"><strong class="font-weight-bold scotia-headline">3.</strong> Puedes abonar el monto que quieras. No requiere usar el total de Pesos Scotia.</p> <p class="mb-2"><strong class="font-weight-bold scotia-headline">4.</strong> El abono de la compra estará disponible hasta 7 días hábiles.</p> <p class="mb-2"><strong class="font-weight-bold scotia-headline">5.</strong> Los Pesos Scotia que no utilices se liberan en hasta 10 días hábiles.</p> <th:block sec:authorize="isAuthenticated()"> <p th:if="${usuario.tipoCliente == 'SINGULAR'}" class="mb-2"><strong class="font-weight-bold scotia-headline">6.</strong> Tus Pesos Scotia valen en doble en compras nacionales.</p> </th:block> </div> <div class="modal-footer" th:classappend="${#authorization.expression('isAuthenticated()') ? 'justify-content-between' : 'justify-content-center'}"> <button id="btn-inscripcion-iniciar-sesion" sec:authorize="!isAuthenticated()" type="button" class="btn btn-morado rounded">inicia sesión</button> <th:block sec:authorize="isAuthenticated()"> <div class="form-check"> <input type="checkbox" class="form-check-input" id="checkbox-aceptar-inscripcion"> <label class="form-check-label" for="checkbox-aceptar-inscripcion">Acepto los términos y condiciones<label> </div> <a id="btn-aceptar-inscripcion" class="btn btn-morado rounded disabled">Aceptar</a> </th:block> </div> </div> </div> </div> <script> $(document).ready(function() { $('.link-rubro').click(function(e) { e.preventDefault(); $('#btn-aceptar-inscripcion').attr('href', $(this).attr('href')); $('#modal-confirmar-inscripcion').modal('show'); }); $('#checkbox-aceptar-inscripcion').on('change', function() { if ($(this).prop('checked')) { $('#btn-aceptar-inscripcion').removeClass('disabled'); } else { $('#btn-aceptar-inscripcion').addClass('disabled'); } }); $('#btn-inscripcion-iniciar-sesion').on('click', function() { $('#modal-confirmar-inscripcion').modal('hide'); $('#loginModal').modal('show'); }); $('#checkbox-aceptar-inscripcion').trigger('change'); }); </script> </x> <x th:if="${verProductosCategoria == true}" th:remove="tag"> <section th:id="|section-submenu-${submenuurl.id}|"> <div class="container pt-5 pb-5"> <div class="row"> <div class="col-md-12 mb-4"> <h5 class="mb-1">Abona tus Pesos Scotia a tu Tarjeta de Crédito y úsalos donde quieras</h5> <h5 class="mb-1 font-weight-bold text-morado">Válido solo para compras nacionales</h5> <h6 class="mb-1 text-purple" th:if="${!#strings.isEmpty(submenuurl.productosLikeLista[0].subtitulo)}"> <b th:text="${submenuurl.productosLikeLista[0].subtitulo}"></b> </h6> <a class="btn btn-sm btn-morado rounded ml-0" th:href="@{/resource/documentos/ManualAbonoPesosScotia.pdf}" target="_blank">Revisa cómo canjear <i class="fas fa-file-download ml-2"></i></a> </div> <div class="col-lg-2 col-xl-3"></div> <div class="col-sm-12 col-md-12 col-lg-8 col-xl-6 mt-3"> <div class="cr-caja-progreso"> <div class="cr-progreso-number cr-progreso-check"><p><i class="fa fa-check"></i></p></div> <p>Escoge una Categoría</p> <hr class="style1"> <div class="cr-progreso-number cr-progreso-active"><p>2</p></div> <p>Elige un monto</p> <hr class="style1"> <div class="cr-progreso-number"><p>3</p></div> <p>Canjea</p> </div> </div> <div class="col-lg-2 col-xl-3"></div> </div> <div class="row mt-5"> <div class="col-md-2 col-lg-3"></div> <div class="col-md-8 col-lg-6 shadow cr-grey-bg p-5"> <th:block th:if="${inscripcionVigente}"> <h5 th:inline="text">Lo sentimos, pero no puedes realizar otra inscripción de canje en este rubro, porque ya tienes una inscripción activa por [[${#numbers.formatInteger(inscripcion.registeredPoints, 0, 'POINT')}]] Pesos Scotia en el rubro seleccionado, que estará vigente hasta el [[${inscripcion.unregisterDate}]]. Luego de esta fecha, puedes volver a inscribir.</h5> <h5>Mientras tanto, puedes seguir inscribiendo en los otros rubros disponibles.</h5> <div class="text-center mt-3"> <a th:href="@{|${menuurl.link}${submenuurl.link}|}" class="btn cr-red-btn">Volver</a> </div> </th:block> <th:block th:if="${!inscripcionVigente}"> <h4 class="pb-4" th:text="|Tienes ${puntosDisponibles} Pesos Scotia disponibles|">Tienes - Pesos Scotia disponibles</h4> <th:block th:if="${#strings.length(submenuurl.productosLikeLista[0].condicionesComercio) > 10}"> <div class="container mb-4"> <div class="row"> <div class="col-12 text-center"> <div class="card p-3" style="background-color: #f2f2f2;"> <p class="mb-0">Antes de confirmar tu canje, verifica que tu comercio se encuentra disponible <button class="btn btn-morado btn-sm text-white rounded font-weight-bold" data-target="#modal-comerciones-inscripciones" data-toggle="modal">aquí</button></p> </div> </div> </div> </div> <!-- MODAL --> <div id="modal-comerciones-inscripciones" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header bg-morado text-white"> <h5 class="modal-title">Comercios Asociados</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body" th:utext="${submenuurl.productosLikeLista[0].condicionesComercio}"></div> <div class="modal-footer"> <button type="button" class="btn cr-red-btn" data-dismiss="modal">Cerrar</button> </div> </div> </div> </div> </th:block> <form class="prevent-multiple-submit" id="inscription-form" autocomplete="off" th:action="@{|${menuurl.link}${submenuurl.link}/canje|}" th:object="${producto}" method="post"> <input type="hidden" name="idProducto" th:value="${submenuurl.productosLikeLista[0].id}"> <div class="form-group "> <label for="exampleInputEmail1">Selecciona la Tarjeta de Crédito con que realizarás la compra</label> <select id="card-key" class="form-control" name="cardKey" style="display:block !important;"> <option th:each="tarjeta : ${submenuurl.tarjetasCliente}" th:value="${tarjeta.key}" th:text="${tarjeta.numero}">Tarjetas</option> </select> </div> <div class="form-group "> <label for="exampleInputEmail1">Ingresa el monto que deseas abonar a tu Tarjeta de Crédito</label> <div class="form-group row align-items-center simple-form"> <input min="1" th:max="${#strings.replace(puntosDisponibles,'.','')}" class="col-md-6 simple-input form-control number-input ml-3" type="number" name="monto" placeholder="monto" th:value="*{monto}"> <div class="col-md-3"> <h6>Pesos Scotia</h6> </div> </div> </div> <div class="text-center pt-3"> <div class="row"> <div class="col-lg-1"></div> <div class="col-12 col-md-6 col-lg-5 order-md-1"> <button type="submit" class="btn btn-block btn-morado rounded">Quiero canjear</button> </div> <div class="col-12 col-md-6 col-lg-5 mt-2 mt-md-0"> <a th:href="@{|${menuurl.link}${submenuurl.link}|}" class="btn btn-block btn-outline-morado rounded">Volver</a> </div> <div class="col-lg-1 order-md-2"></div> </div> </div> </form> </th:block> </div> <div class="col-md-2 col-lg-3"></div> </div> </div> </section> <script> $('#inscription-form').submit(function() { var cardNumber = $("#card-key option:selected" ).text(); var t1 = '<input type="hidden" name="cardNumber" value="'; var t2 = '" /> '; $(this).append(t1.concat(cardNumber).concat(t2)); }); </script> </x> </th:block> <!-- /Tipo 6 --> <x th:case="7" th:remove="tag"> <section id="scotipesos"> <div class="container pt-5 pb-5"> <div class="row mt-3"> <div class="col-md-2 col-lg-3"></div> <div class="col-md-8 col-lg-6 p-4 border rounded shadow cr-grey-bg"> <div class="row"> <div class="col-12 text-center mb-5"> <h5>Completa los siguientes datos</h5> </div> <div class="col-12"> <div class="row"> <div class="col-md-6"> <div class="form-group cr-acces-form"> <label for="exampleInputEmail1">Nombre</label> <input type="text" class="form-control" id="Nombre" aria-describedby="emailHelp" placeholder="Ingresa tu nombre completo"> </div> <div class="form-group cr-acces-form"> <label for="exampleInputEmail1">Rut</label> <input type="number" class="form-control" id="Nombre" aria-describedby="emailHelp" placeholder="Sin puntos ni guión"> </div> </div> <div class="col-md-6"> <div class="form-group cr-acces-form"> <label for="exampleInputEmail1">Selecciona tu tarjeta</label> <select class="form-control" id="exampleFormControlSelect1"> <option th:each="tarjeta : ${submenuurl.tarjetasCliente}" th:value="${tarjeta.key}" th:text="${tarjeta.numero}">Tarjetas</option> </select> </div> <div class="form-group cr-acces-form"> <label for="exampleInputEmail1">Cantidad</label> <input type="number" class="form-control" id="Nombre" aria-describedby="emailHelp" placeholder="Ej: $4.000"> </div> </div> <div class="col-12 mt-4 text-center"> <button type="submit" href="" class="btn cr-red-btn mt-3" >Quiero canjear</button> </div> </div> </div> </div> </div> <div class="col-md-2 col-lg-3"></div> </div> </div> </section> </x> <!-- fin tipo 7 --> <!-- Tipo 8 --> <th:block th:case="8"> <style> .scotia-access-blue-bg, .scotia-purple-bg{ background:#005A85!important; } </style> <script> class Descuento { constructor (id, nombre,imagen, codigo, titulo, subtitulo, descuento, descripcion, acceder, condicionesComercio, direcciones, terminosYCondiciones, generaCanje, tags) { this.id = id; this.nombre = nombre; this.imagen = imagen; this.codigo = codigo; this.titulo = titulo; this.subtitulo = subtitulo; this.descuento = descuento; this.descripcion = descripcion; this.acceder = acceder; this.condicionesComercio = condicionesComercio; this.direcciones = direcciones; this.terminosYCondiciones = terminosYCondiciones; this.generaCanje = generaCanje; this.tags = tags; } } class Tag { constructor (id, nombre, icono) { this.id = id; this.nombre = nombre; this.icono = icono } } /* crea los elementos HTML de los descuentos o beneficios y su estilo */ function crearBeneficio(item, estilo){ var cardElement = document.createElement('div'); switch(estilo){ case 'singular': cardElement.classList.add('col-md-4' ,'mb-4', 'descuento', 'animated', 'fadeIn'); cardElement.setAttribute("data-titulo", item.titulo); cardElement.setAttribute("data-descuento", item.descuento); /* se crean atributos clases de los tags del descuento */ for (var i = 0; i<=item.tags.length; i++){ if(typeof item.tags[i] != 'undefined'){ var tag = item.tags[i]; var nombreClass=tag.nombre.replace(' ','-'); nombreClass=nombreClass.replace(' ','-'); nombreClass=nombreClass.replace(' ','-'); nombreClass=nombreClass.replace(' ','-'); cardElement.classList.add(nombreClass.toLowerCase()); } } var elementChildOne = document.createElement('div'); elementChildOne.classList.add('card', 'hoverable', 'hvr-grow"', 'card-beneficio'); /* se crea la imagen */ var imageElement = document.createElement('img'); imageElement.classList.add('img-fluid'); imageElement.src=item.imagen; imageElement.setAttribute("alt", item.titulo); imageElement.setAttribute("id", 'img-'+item.id); /* se crea el body */ var cardBodyElement = document.createElement('div'); cardBodyElement.classList.add('card-body', 'py-4', 'pt-4'); /* se crea el titulo */ var titleElement = document.createElement('h5'); titleElement.classList.add('scotia-headline', 'h5-responsive'); titleElement.innerText=item.titulo; var descuentoElement = document.createElement('p'); descuentoElement.classList.add('text-muted', 'text-beneficio'); descuentoElement.innerText= item.subtitulo; /* se crea contenedor del footer */ var containerButtonElement= document.createElement('div'); containerButtonElement.classList.add('d-flex', 'justify-content-end', 'align-items-center'); /* se crea el btn flecha */ var buttonElement = document.createElement('a'); buttonElement.classList.add('text-right', 'mr-3', 'my-3', 'btn-modal-descuento'); buttonElement.setAttribute("data-id-producto", item.id); var iconCompartir = document.createElement('i'); iconCompartir.classList.add('fas', 'fa-arrow-right', 'fa-2x'); buttonElement.appendChild(iconCompartir); /* se coloca el botón en su contenedor*/ containerButtonElement.appendChild(buttonElement); /* se colocan los elementos dentro del card body */ cardBodyElement.appendChild(titleElement); cardBodyElement.appendChild(descuentoElement); /* se arma la card */ elementChildOne.appendChild(imageElement); elementChildOne.appendChild(cardBodyElement); elementChildOne.appendChild(containerButtonElement); cardElement.appendChild(elementChildOne); break; case 'masivo': cardElement.classList.add('scotia-col-12', 'scotia-col-sm-12', 'scotia-col-md-6', 'scotia-col-lg-4', 'marketing-card','mb-3', 'h-100', 'descuento', 'animated', 'fadeIn'); cardElement.setAttribute("data-titulo", item.titulo); cardElement.setAttribute("data-descuento", item.descuento); cardElement.setAttribute("data-id", item.id); cardElement.setAttribute("onclick", "verDetalles("+item.id+", 'sinnombre')"); /* se crean atributos clases de los tags del descuento */ for (var i = 0; i<=item.tags.length; i++){ if(typeof item.tags[i] != 'undefined'){ var tag = item.tags[i]; var nombreClass=tag.nombre.replace(' ','-'); nombreClass=nombreClass.replace(' ','-'); nombreClass=nombreClass.replace(' ','-'); nombreClass=nombreClass.replace(' ','-'); cardElement.classList.add(nombreClass.toLowerCase()); } } /* se valida si es un beneficios access para dar estilo */ let direccionesLimpio = item.direcciones.replaceAll('<p>', ''); direccionesLimpio = direccionesLimpio.replaceAll('</p>', ''); let parametrosDirecciones = direccionesLimpio.split('|'); var elementChildOne = document.createElement('div'); elementChildOne.classList.add('scotia-box-float', 'h-100'); elementChildOne.style.overflow = 'hidden'; /* se crea la caja de la imagen */ var elementImagen = document.createElement('div'); elementImagen.classList.add('img-card', 'img-context'); /* se crea la imagen */ var imageElement = document.createElement('img'); imageElement.classList.add('m-auto', 'sc-d-block', 'align-center', 'img-fluid'); imageElement.src=item.imagen; imageElement.setAttribute("alt", item.titulo); imageElement.setAttribute("id", 'img-'+item.id); elementImagen.appendChild(imageElement); /* se crea la franja */ var elementFranja = document.createElement('div'); let claseFranja = 'scotia-ocean'; elementFranja.classList.add('text-center', 'sc-d-flex', 'py-2', 'justify-content-center', 'text-white', 'align-items-center'); if(parametrosDirecciones.length >= 2){ let clase = parametrosDirecciones[1]; let clasestring = clase.replace(/\s/g, ''); if(clasestring.length === 0){ elementFranja.classList.add('scotia-ocean'); }else{ elementFranja.classList.add(clasestring); } }else{ elementFranja.classList.add('scotia-ocean'); } /* se crea icono de la franja */ var iconoFranja = document.createElement('span'); iconoFranja.classList.add('iconcanvas-icon-calendar'); /* se crea texto de la franja */ var textoFranja = document.createElement('h6'); textoFranja.classList.add('subtitle-2', 'ml-3'); textoFranja.textContent = item.descuento; /* se arma la franja */ elementFranja.appendChild(iconoFranja); elementFranja.appendChild(textoFranja); /* se crea el body */ var cardBodyElement = document.createElement('div'); cardBodyElement.classList.add('p-30', 'scotia-light-bg'); /* se crea el titulo */ var titleElement = document.createElement('h3'); titleElement.classList.add('subtitle-1', 'pb-2', 'scotia-black-tint'); titleElement.innerText=item.titulo; var descuentoElement = document.createElement('div'); descuentoElement.classList.add('headline-small', 'pb-48'); descuentoElement.innerText= item.subtitulo; /* se crea contenedor del btn */ var containerButtonElement= document.createElement('span'); containerButtonElement.classList.add('sc-d-block', 'text-right'); /* se crea el btn */ var buttonElement = document.createElement('i'); buttonElement.classList.add('iconcanvas-icon-arrowright', 'scotia-black'); buttonElement.setAttribute("data-id-producto", item.id); var btnCompartir = document.createElement('div'); btnCompartir.classList.add('d-flex', 'justify-content-center', 'align-items-center'); var abtnElement = document.createElement('a'); abtnElement.setAttribute('onclick', 'verLinks('+item.id+')'); abtnElement.classList.add('d-flex', 'mr-2'); var iconCompartir = document.createElement('i'); iconCompartir.classList.add('fas', 'fa-share-alt', 'text-muted'); var h6CompartirElement = document.createElement('h6'); h6CompartirElement.classList.add('m-0', 'ml-2', 'small'); h6CompartirElement.textContent = 'Compartir'; //abtnElement.appendChild(iconCompartir); //abtnElement.appendChild(h6CompartirElement); /* se coloca el btn en su contenedor*/ containerButtonElement.appendChild(buttonElement); //containerButtonElement.appendChild(abtnElement); /* se colocan los elementos dentro del card body */ cardBodyElement.appendChild(titleElement); cardBodyElement.appendChild(descuentoElement); cardBodyElement.appendChild(containerButtonElement); /* se arma la card */ elementChildOne.appendChild(elementImagen); elementChildOne.appendChild(elementFranja); elementChildOne.appendChild(cardBodyElement); cardElement.appendChild(elementChildOne); break; } return cardElement; } /* crea los elementos HTML categorias de los descuentos y sus opciones de estilo */ function crearEtiqueta(item, estilo){ var labelElement=document.createElement('div'); switch(estilo){ case 'singular': labelElement.classList.add('etiqueta', 'col-md-2', 'color-etiquetas', 'py-4'); let nombre = item.nombre.replaceAll(' ', '-'); labelElement.setAttribute('data-nombre', nombre.toLowerCase()); var elementChildOne = document.createElement('a'); var elementSpan = document.createElement('div'); elementSpan.classList.add('text-center', 'mb-2'); var nombreElement = document.createElement('h6'); nombreElement.classList.add( 'text-center' , 'nombre'); nombreElement.innerText=item.nombre; var iconElement = document.createElement('i'); var tagIcono = item.icono; var fAwesome; if(tagIcono.includes('fas')){ fAwesome='fas'; tagIcono=tagIcono.replace('fas', ''); } if(tagIcono.includes('fab')){ fAwesome='fab'; tagIcono=tagIcono.replace('fab', ''); } tagIcono=tagIcono.replace('fa-2x', ''); tagIcono=tagIcono.replace(' ', ''); tagIcono=tagIcono.replace(' ', ''); tagIcono=tagIcono.replace(' ', ''); iconElement.classList.add(fAwesome, tagIcono, 'fa-2x'); elementSpan.appendChild(iconElement); elementChildOne.appendChild(elementSpan); elementChildOne.appendChild(nombreElement); labelElement.appendChild(elementChildOne); break; case 'masivo': labelElement=document.createElement('a'); labelElement.classList.add('etiqueta'); labelElement.setAttribute('role' , 'button'); labelElement.setAttribute('data-nombre', item.nombre); var elementChildOne = document.createElement('div'); elementChildOne.classList.add('d-flex', 'rounded', 'px-2', 'py-1' , 'mb-1'); var nombreElement = document.createElement('p'); nombreElement.classList.add('ml-3', 'my-0' , 'nombre'); nombreElement.innerText=item.nombre; var iconElement = document.createElement('i'); var tagIcono = item.icono; var fAwesome; if(tagIcono.includes('fas')){ fAwesome='fas'; tagIcono=tagIcono.replace('fas', ''); } if(tagIcono.includes('fab')){ fAwesome='fab'; tagIcono=tagIcono.replace('fab', ''); } tagIcono=tagIcono.replace('fa-2x', ''); tagIcono=tagIcono.replace(' ', ''); tagIcono=tagIcono.replace(' ', ''); tagIcono=tagIcono.replace(' ', ''); iconElement.classList.add(fAwesome, tagIcono); elementChildOne.appendChild(iconElement); elementChildOne.appendChild(nombreElement); labelElement.appendChild(elementChildOne); break; } return labelElement; } function verDetalles(id, nombre) { for (let descuento of descuentos) { let nombreDescuento = descuento.nombre.replaceAll(' ', '-'); if (descuento.id === id || nombreDescuento.toLowerCase() === nombre.toLowerCase()) { const nombreUpper = (descuento.nombre || '').trim().toUpperCase(); if(nombreUpper == 'SALONES2025'){ window.open('../../categoria/mundos/salonesvip', '_blank'); break; } if(nombreUpper == 'CARDENTRETENIMIENTO'){ window.open('../../categoria/miscanjes/entretencion', '_blank'); break; } if(nombreUpper == 'CARDCINE'){ window.open('../../categoria/miscanjes/entradascine', '_blank'); break; } if(nombreUpper == 'CARDCANJE18'){ window.open('../../categoria/todosobrepesosscotia/todosobrepesosscotia', '_blank'); break; } let direccionesLimpio = descuento.direcciones ? descuento.direcciones .replaceAll('<p>', '') .replaceAll('</p>', '') .replaceAll('&nbsp;', '') .replaceAll('\n', '') .replaceAll(';', '') : ''; let parametrosDirecciones = direccionesLimpio.split('|'); let elementoPrincipal = document.getElementById('imagenes-tarjetas'); elementoPrincipal.innerHTML = ''; if (parametrosDirecciones.length >= 3) { let parametrosTarjetas = parametrosDirecciones[2] ? parametrosDirecciones[2].split(',') : []; for (let i = 0; i < parametrosTarjetas.length; i++) { let colElement = document.createElement('div'); colElement.classList.add('col-2', 'p-0', 'pl-1', 'pb-1'); let tarjetaElement = document.createElement('img'); tarjetaElement.classList.add('img-fluid'); tarjetaElement.src = '/scclubfront/resource/tarjetas/' + parametrosTarjetas[i] + '.svg'; colElement.appendChild(tarjetaElement); elementoPrincipal.appendChild(colElement); } } else { let tarjetaElement = document.createElement('img'); tarjetaElement.classList.add('img-fluid', 'm-1'); if (descuento.codigo) { switch (descuento.codigo.toLocaleLowerCase()) { case 'nonpremium': tarjetaElement.src = '/scclubfront/resource/tarjetashd/Nonpremium-Tarjetas_1.png'; break; case 'foco': tarjetaElement.src = '/scclubfront/resource/tarjetashd/Foco-Tarjetas_1.png'; break; case 'focovisa': tarjetaElement.src = '/scclubfront/resource/tarjetashd/Foco-Tarjetas_1.png'; break; case 'credito': tarjetaElement.src = '/scclubfront/resource/tarjetashd/Credito-Tarjetas_1.png'; break; case 'creditovisa': tarjetaElement.src = '/scclubfront/resource/tarjetashd/Credito-Tarjetas_1.png'; break; case 'wealth': tarjetaElement.src = '/scclubfront/resource/tarjetashd/Wealth-Tarjetas.png'; break; case 'especial': tarjetaElement.src = '/scclubfront/resource/imgtarjeta/tarjetacredito170925_1.png'; break; default: tarjetaElement.src = '/scclubfront/resource/tarjetashd/Todas-Tarjetas_2.png'; } } else { tarjetaElement.src = '/scclubfront/resource/tarjetashd/Todas-Tarjetas_2.png'; } elementoPrincipal.appendChild(tarjetaElement); } /* Se setean los parámetros de información */ document.getElementById('detalle-imagen-1').src = descuento.imagen || ''; document.getElementById('detalle-imagen-1').setAttribute('alt', descuento.titulo || ''); document.getElementById('detalle-imagen-2').src = descuento.imagen || ''; document.getElementById('detalle-imagen-2').setAttribute('alt', descuento.titulo || ''); document.getElementById('detalle-titulo').innerHTML = descuento.titulo || ''; document.getElementById('detalle-descuento').innerHTML = descuento.subtitulo || ''; document.getElementById('detalle-dias').innerHTML = parametrosDirecciones[0] || ''; document.getElementById('detalle-descripcion').innerHTML = descuento.descripcion || ''; document.getElementById('detalle-comousar').innerHTML = descuento.acceder || ''; document.getElementById('detalle-terminos').innerHTML = descuento.terminosYCondiciones || ''; document.getElementById('detalle-condiciones').innerHTML = descuento.condicionesComercio || ''; document.getElementById('detalle-direcciones').innerHTML = parametrosDirecciones[0] || ''; $('#id-producto-modal').val(descuento.id); if (descuento.generaCanje === true) { $('.btn-obtener-beneficio').show(); $('#btn-obtener-beneficio').prop('disabled', false); } else { $('.btn-obtener-beneficio').hide(); $('#btn-obtener-beneficio').prop('disabled', true); } /* Se cambia la visualización para ver el detalle */ document.getElementById('descuentos').classList.add('d-none'); const submenuBanner = document.getElementById('submenu-banner'); if (submenuBanner) { submenuBanner.classList.add('d-none'); } document.getElementById('sitios-detalle').classList.remove('d-none'); document.getElementById('sitios-detalle').scrollIntoView(); break; } } } function volver(){ const submenuBanner = document.getElementById('submenu-banner'); if (submenuBanner) { submenuBanner.classList.remove('d-none'); } document.getElementById('sitios-detalle').classList.add('d-none'); document.getElementById('descuentos').classList.remove('d-none'); } function enfocarDetalles(){ document.getElementById('detalles-acordeon').scrollIntoView(); } function removeAll(selectBox) { while (selectBox.options.length > 0) { selectBox.remove(0); } } function poblarSelectCategorias(selectElement){ let todoOption = new Option('Todas las categorías', 'todas'); selectElement.add(todoOption,undefined); for(let etiqueta of tags){ let newOption = new Option(etiqueta.nombre, etiqueta.nombre.toLowerCase()); selectElement.add(newOption,undefined); } } function poblarSelectCategoriasSitios(selectElement){ let todoOption = new Option('Todas las categorías', 'todas'); selectElement.add(todoOption,undefined); for(let etiqueta of tags){ let newOption = new Option(etiqueta.nombre, etiqueta.id); selectElement.add(newOption,undefined); } } function cambiarCategoria(){ let categoria = $('#select-categoria option:selected').val() categoria=categoria.replaceAll(' ','-'); cardSeleccionadas = []; if(categoria != 'todas'){ for(let card of cardsDescuentos){ if(card.classList.contains(categoria.toLowerCase())){ cardSeleccionadas.push(card); } } }else{ cardSeleccionadas = cardsDescuentos; } paginar(cardSeleccionadas); } $(document).ready(function() { var url_string = window.location.href; var url = new URL(url_string); var beneficio = url.searchParams.get("beneficio"); if(beneficio != null){ verDetalles(0, beneficio); } }); </script> <script th:inline="javascript"> function cerrarEIniciarSesion() { $('#modalDescuentos').modal('hide'); $('#loginModal').modal('show'); } var descuentos = []; var tags = []; [# th:each="producto : ${productos}"] var [(|tags_${producto.idProducto}|)] = []; [# th:each="tag : ${producto.tags}"] var [(|tag_${producto.idProducto}_${tag.idTagProducto}|)] = new Tag( [[${tag.idTagProducto}]], [[@{${tag.nombre}}]], [[@{${tag.icono}}]] ); [(|tags_${producto.idProducto}|)].push([(|tag_${producto.idProducto}_${tag.idTagProducto}|)]); var [(|existe_${producto.idProducto}_${tag.idTagProducto}|)] = false; /* Si lista de tags no posee este TAG, se agrega */ for (var i = 0; i < tags.length; i++) { var tag = tags[i]; if (tag.id == [[${tag.idTagProducto}]]) { [(|existe_${producto.idProducto}_${tag.idTagProducto}|)] = true; break; } } if (![(|existe_${producto.idProducto}_${tag.idTagProducto}|)]) { tags.push([(|tag_${producto.idProducto}_${tag.idTagProducto}|)]); } [/] descuentos.push(new Descuento( [[${producto.idProducto}]], [[${producto.nombre}]], [[@{${producto.imagen}}]], [[@{${producto.codigo}}]], [[${producto.titulo}]], [[${producto.subtitulo}]], [[${producto.porcentajeInfo}]], [[${#strings.replace(producto.tituloTipo1,'<ul>','<ul class=''list pl-3''>')}]], [[${#strings.replace(producto.tituloTipo2,'<ul>','<ul class=''list pl-3''>')}]], [[${#strings.replace(producto.condicionesComercio,'<ul>','<ul class=''list pl-3''>')}]], [[${#strings.replace(producto.direcciones,'<ul>','<ul class=''list pl-3''>')}]], [[${producto.condicionesLegales}]], [[${producto.generaCanje}]], [(|tags_${producto.idProducto}|)] )); [/] </script> <!-- TEST_RUTA --> <!-- detalles del sitio --> <script th:inline="javascript"> //SCRIPT DE EXTRACCION FECHAS function extraerVigenciaBeneficio(descuento = {}) { const MESES = { enero: 1, febrero: 2, marzo: 3, abril: 4, mayo: 5, junio: 6, julio: 7, agosto: 8, septiembre: 9, setiembre: 9, octubre: 10, noviembre: 11, diciembre: 12 }; const NOMBRES_MESES = [ '', 'enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre' ]; const PATRON_MESES = Object.keys(MESES).join('|'); /** * Convierte HTML a texto legible y decodifica las entidades HTML. */ function htmlATexto(html) { if (!html) { return ''; } const documento = new DOMParser().parseFromString( String(html), 'text/html' ); return (documento.body.textContent || '') .replace(/\u00a0/g, ' ') .replace(/\s+/g, ' ') .trim(); } /** * Normaliza texto para realizar comparaciones. */ function normalizar(texto) { return String(texto || '') .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') .toLowerCase() .replace(/\u00a0/g, ' ') .replace(/\s+/g, ' ') .trim(); } function terminarConPunto(texto) { const limpio = String(texto || '') .trim() .replace(/[\s,;:]+$/, ''); if (!limpio) { return ''; } return /[.!?]$/.test(limpio) ? limpio : `${limpio}.`; } /** * Divide en oraciones sin cortar: * * $10.000.000 * www.sitio.cl * 31.07.2026 */ function dividirEnFrases(texto) { return String(texto || '') .replace( /([.!?])\s+(?=[A-ZÁÉÍÓÚÑ¿¡])/gu, '$1|||' ) .split('|||') .map(frase => frase.trim()) .filter(Boolean); } function crearFechaISO(anio, mes, dia) { const y = Number(anio); const m = Number(mes); const d = Number(dia); const fecha = new Date( Date.UTC(y, m - 1, d) ); const esValida = fecha.getUTCFullYear() === y && fecha.getUTCMonth() === m - 1 && fecha.getUTCDate() === d; if (!esValida) { return null; } return [ String(y).padStart(4, '0'), String(m).padStart(2, '0'), String(d).padStart(2, '0') ].join('-'); } function ultimoDiaMes(anio, mes) { return new Date( Date.UTC( Number(anio), Number(mes), 0 ) ).getUTCDate(); } function fechaTexto(anio, mes, dia) { return `${Number(dia)} de ${NOMBRES_MESES[Number(mes)]} de ${Number(anio)}`; } /** * Revisa si el backend agrega una fecha directamente en el futuro. */ function parsearFechaDirecta(valor) { if (!valor) { return null; } const texto = String(valor).trim(); /* * 2026-07-31 * 2026-07-31T00:00:00 */ let coincidencia = texto.match( /^(20\d{2})-(\d{2})-(\d{2})(?:[T\s].*)?$/ ); if (coincidencia) { const [, anio, mes, dia] = coincidencia; const iso = crearFechaISO( anio, mes, dia ); if (iso) { return { iso, texto: fechaTexto( anio, mes, dia ) }; } } /* * 31/07/2026 * 31-07-2026 * 31.07.2026 */ coincidencia = texto.match( /^(\d{1,2})[\/.\-](\d{1,2})[\/.\-](20\d{2})$/ ); if (coincidencia) { const [, dia, mes, anio] = coincidencia; const iso = crearFechaISO( anio, mes, dia ); if (iso) { return { iso, texto: fechaTexto( anio, mes, dia ) }; } } return null; } /** * Extrae condiciones como: * * "o hasta agotar fondo promocional de $10.000.000, * lo que ocurra primero" * * No corta el monto en $10. */ function extraerCondicionFondo(frase) { const patronMonto = String.raw` (?:\$\s*)? (?: \d{1,3}(?:\.\d{3})+ | \d+ ) (?:,\d+)? `.replace(/\s+/g, ''); const expresion = new RegExp( String.raw`\b((?:o\s+)?hasta\s+agotar\s+(?:el\s+)?fondo(?:\s+promocional)?(?:\s+(?:de\s+)?(${patronMonto}))?(?:\s+(mensual|en\s+total))?)`, 'i' ); const coincidencia = String(frase || '') .match(expresion); if (!coincidencia) { return { texto: '', indice: -1 }; } let texto = coincidencia[1] .replace(/\s+/g, ' ') .trim(); if ( /lo\s+que\s+ocurra\s+primero/i.test(frase) ) { texto += ', lo que ocurra primero'; } return { texto, indice: coincidencia.index ?? -1 }; } /** * Busca una fecha o periodo dentro de una oración. */ function analizarFrase(frase) { const texto = normalizar(frase); let coincidencia; /* * Rangos: * * desde el 01 al 31 de julio de 2026 * del 01 al 31 de julio de 2026 * entre el 15 y el 21 de junio de 2026 * desde el 20 de junio al 12 de julio de 2026 */ const patronRango = new RegExp( String.raw`\b(?:desde|del|entre)\s+(?:el\s+)?(\d{1,2})(?:\s+de\s+(${PATRON_MESES}))?\s+(?:al|hasta(?:\s+el)?|y)\s+(?:el\s+)?(\d{1,2})\s+de\s+(${PATRON_MESES})\s+(?:de(?:l)?\s+)?(20\d{2})\b`, 'i' ); coincidencia = texto.match( patronRango ); if (coincidencia) { const diaInicio = Number( coincidencia[1] ); const mesFin = MESES[ coincidencia[4] ]; const mesInicio = coincidencia[2] ? MESES[coincidencia[2]] : mesFin; const anio = Number( coincidencia[5] ); const fechaInicio = crearFechaISO( anio, mesInicio, diaInicio ); const fechaFin = crearFechaISO( anio, mesFin, coincidencia[3] ); if (fechaInicio && fechaFin) { return { tipo: 'rango-explicito', fechaInicio, fechaInicioTexto: fechaTexto( anio, mesInicio, diaInicio ), fechaFin, fechaFinTexto: fechaTexto( anio, mesFin, coincidencia[3] ), fechaFinCalculada: null, fechaFinCalculadaTexto: null, confianzaFecha: 'alta' }; } } /* * Fecha de término explícita: * * hasta el 31 de julio de 2026 * hasta el 31 de julio 2026 * hasta del 30 de junio de 2026 */ const patronHasta = new RegExp( String.raw`\bhasta(?:\s+(?:el|del))?\s+(\d{1,2})(?:º|°)?\s+de\s+(${PATRON_MESES})\s+(?:de(?:l)?\s+)?(20\d{2})\b`, 'i' ); coincidencia = texto.match( patronHasta ); if (coincidencia) { const dia = Number( coincidencia[1] ); const mes = MESES[ coincidencia[2] ]; const anio = Number( coincidencia[3] ); const fechaFin = crearFechaISO( anio, mes, dia ); if (fechaFin) { return { tipo: 'fecha-fin-explicita', fechaInicio: null, fechaInicioTexto: null, fechaFin, fechaFinTexto: fechaTexto( anio, mes, dia ), fechaFinCalculada: null, fechaFinCalculadaTexto: null, confianzaFecha: 'alta' }; } } /* * Fecha de inicio sin fecha final: * * Válido desde el viernes 13 de febrero de 2026. */ const patronDesde = new RegExp( String.raw`\bdesde(?:\s+el)?(?:\s+(?:lunes|martes|miercoles|jueves|viernes|sabado|domingo))?\s+(\d{1,2})(?:º|°)?\s+de\s+(${PATRON_MESES})\s+(?:de(?:l)?\s+)?(20\d{2})\b`, 'i' ); coincidencia = texto.match( patronDesde ); if (coincidencia) { const dia = Number( coincidencia[1] ); const mes = MESES[ coincidencia[2] ]; const anio = Number( coincidencia[3] ); const fechaInicio = crearFechaISO( anio, mes, dia ); if (fechaInicio) { return { tipo: 'solo-fecha-inicio', fechaInicio, fechaInicioTexto: fechaTexto( anio, mes, dia ), fechaFin: null, fechaFinTexto: null, fechaFinCalculada: null, fechaFinCalculadaTexto: null, confianzaFecha: 'alta' }; } } /* * Mes completo: * * "Todos los sábados de julio de 2026". * * No se afirma que el texto diga "31 de julio". * Esa fecha queda separada como fecha calculada. */ const patronMesAnio = new RegExp( String.raw`\b(${PATRON_MESES})\s+(?:de(?:l)?\s+)?(20\d{2})\b`, 'gi' ); const mesesEncontrados = [ ...texto.matchAll( patronMesAnio ) ]; if (mesesEncontrados.length) { const ultimo = mesesEncontrados[ mesesEncontrados.length - 1 ]; const mes = MESES[ ultimo[1] ]; const anio = Number( ultimo[2] ); const dia = ultimoDiaMes( anio, mes ); return { tipo: 'mes-completo', fechaInicio: null, fechaInicioTexto: null, /* * No existe fecha final escrita explícitamente. */ fechaFin: null, fechaFinTexto: null, /* * Fecha técnica calculada. */ fechaFinCalculada: crearFechaISO( anio, mes, dia ), fechaFinCalculadaTexto: fechaTexto( anio, mes, dia ), confianzaFecha: 'media' }; } return null; } /** * Puntúa las frases para elegir la vigencia principal. */ function puntuarCandidato({ fuente, frase, posicion, analisis }) { const texto = normalizar(frase); const pesoFuente = { terminosYCondiciones: 1000, descripcion: 350, condicionesComercio: 180, acceder: 100 }; const pesoTipo = { 'rango-explicito': 500, 'fecha-fin-explicita': 480, 'mes-completo': 320, 'solo-fecha-inicio': 180 }; let puntos = (pesoFuente[fuente] || 0) + (pesoTipo[analisis.tipo] || 0); /* * Señales positivas. */ if ( /\bpromocion.{0,100}\bvalida\b/.test(texto) ) { puntos += 220; } if ( /\bbeneficio.{0,100}\bvalido\b/.test(texto) ) { puntos += 170; } if ( /\b(?:compras?|viajes?|reservas?)\s+realizad[ao]s?\b/.test(texto) ) { puntos += 180; } if ( /\bpromocion\s+de\s+devolucion\s+es\s+valida\b/.test(texto) ) { puntos += 180; } if ( /^(?:promocion|beneficio|valido|valida)\b/.test(texto) ) { puntos += 80; } /* * Periodos secundarios que no corresponden * a la vigencia principal. */ if ( /\binscrit[oa]s?|inscripcion|formulario\b/.test(texto) ) { puntos -= 280; } if ( /\bno\s+(?:es\s+)?(?:valido|valida|aplica)|\bexcluye|\bexcepto\b/.test(texto) ) { puntos -= 420; } if ( /\bvacaciones|feriados|festivos|fechas?\s+especiales\b/.test(texto) ) { puntos -= 400; } if ( /\bevento|a\s+realizarse|se\s+celebra\b/.test(texto) ) { puntos -= 380; } if ( /\babono|plazo\s+de|dias\s+habiles\b/.test(texto) ) { puntos -= 180; } /* * Favorece las primeras frases. */ puntos -= posicion * 3; return puntos; } const candidatos = []; const fuentes = [ [ 'terminosYCondiciones', descuento.terminosYCondiciones ], [ 'descripcion', descuento.descripcion ], [ 'condicionesComercio', descuento.condicionesComercio ], [ 'acceder', descuento.acceder ] ]; fuentes.forEach(([fuente, valor]) => { const texto = htmlATexto(valor); dividirEnFrases(texto) .forEach((frase, posicion) => { const analisis = analizarFrase(frase); if (!analisis) { return; } const candidato = { fuente, frase: terminarConPunto(frase), posicion, analisis }; candidato.puntos = puntuarCandidato(candidato); candidatos.push( candidato ); }); }); candidatos.sort((a, b) => { if (b.puntos !== a.puntos) { return b.puntos - a.puntos; } return a.posicion - b.posicion; }); const mejor = candidatos[0] || null; /* * Posibles nombres que podría usar el backend. */ const fechasDirectas = [ ['fecha_fin', descuento.fecha_fin], ['fechaFin', descuento.fechaFin], ['fechaTermino', descuento.fechaTermino], ['vigenciaHasta', descuento.vigenciaHasta], ['endDate', descuento.endDate] ]; let fechaDirecta = null; for (const [campo, valor] of fechasDirectas) { const fecha = parsearFechaDirecta(valor); if (fecha) { fechaDirecta = { ...fecha, campo }; break; } } /* * No se encontró ninguna vigencia. */ if (!mejor && !fechaDirecta) { return { texto: '', textoOriginal: '', resumen: '', condicion: '', fechaInicio: null, fechaInicioTexto: null, fechaFin: null, fechaFinTexto: null, fechaFinCalculada: null, fechaFinCalculadaTexto: null, fechaLimite: null, fechaLimiteTexto: null, fechaLimiteInferida: false, tipo: 'no-encontrada', fuente: null, fuenteFecha: null, confianza: 'baja', confianzaFecha: 'baja', inferida: false }; } /* * Solamente existe una fecha directa del backend. */ if (!mejor && fechaDirecta) { const texto = `Válido hasta el ${fechaDirecta.texto}.`; return { texto, textoOriginal: '', resumen: texto, condicion: '', fechaInicio: null, fechaInicioTexto: null, fechaFin: fechaDirecta.iso, fechaFinTexto: fechaDirecta.texto, fechaFinCalculada: null, fechaFinCalculadaTexto: null, fechaLimite: fechaDirecta.iso, fechaLimiteTexto: fechaDirecta.texto, fechaLimiteInferida: false, tipo: 'campo-fecha-fin', fuente: fechaDirecta.campo, fuenteFecha: fechaDirecta.campo, confianza: 'alta', confianzaFecha: 'alta', inferida: false }; } const condicion = extraerCondicionFondo( mejor.frase ); let textoImpresion = mejor.frase; /* * Reconstruye una frase corta y correcta. * * Esto también evita que Jumbo entregue toda * la distribución de los $106.000.000. */ if (condicion.indice >= 0) { const base = mejor.frase .slice(0, condicion.indice) .replace(/[\s,;:]+$/, '') .trim(); textoImpresion = terminarConPunto( `${base} ${condicion.texto}` ); } else { textoImpresion = terminarConPunto( textoImpresion ); } const analisis = { ...mejor.analisis }; /* * La fecha real del backend tiene prioridad * sobre una fecha calculada desde el texto. */ if (fechaDirecta) { analisis.tipo = 'campo-fecha-fin'; analisis.fechaFin = fechaDirecta.iso; analisis.fechaFinTexto = fechaDirecta.texto; analisis.fechaFinCalculada = null; analisis.fechaFinCalculadaTexto = null; analisis.confianzaFecha = 'alta'; } /* * Fecha técnica que puedes utilizar para ordenar, * filtrar o comparar. */ const fechaLimite = analisis.fechaFin || analisis.fechaFinCalculada || null; const fechaLimiteTexto = analisis.fechaFinTexto || analisis.fechaFinCalculadaTexto || null; const fechaLimiteInferida = !analisis.fechaFin && Boolean( analisis.fechaFinCalculada ); let resumen = textoImpresion; /* * Solo normaliza la redacción cuando la fecha * está escrita explícitamente. */ if ( analisis.tipo === 'fecha-fin-explicita' || analisis.tipo === 'campo-fecha-fin' ) { resumen = `Válido hasta el ${fechaLimiteTexto}`; if (condicion.texto) { resumen += /^o\b/i.test(condicion.texto) ? ` ${condicion.texto}` : ` o ${condicion.texto}`; } resumen = terminarConPunto(resumen); } else if ( analisis.tipo === 'rango-explicito' ) { resumen = `Válido desde el ${analisis.fechaInicioTexto} hasta el ${analisis.fechaFinTexto}`; if (condicion.texto) { resumen += /^o\b/i.test(condicion.texto) ? ` ${condicion.texto}` : ` o ${condicion.texto}`; } resumen = terminarConPunto(resumen); } /* * En un mes completo no cambia la redacción a * "Válido hasta el 31", porque esa fecha fue calculada, * no escrita en los términos. */ return { texto: textoImpresion, textoOriginal: mejor.frase, resumen, condicion: condicion.texto, fechaInicio: analisis.fechaInicio, fechaInicioTexto: analisis.fechaInicioTexto, /* * Solamente contiene una fecha escrita * explícitamente o enviada por el backend. */ fechaFin: analisis.fechaFin, fechaFinTexto: analisis.fechaFinTexto, /* * Se completa solamente cuando la vigencia * indica un mes completo. */ fechaFinCalculada: analisis.fechaFinCalculada, fechaFinCalculadaTexto: analisis.fechaFinCalculadaTexto, /* * Fecha utilizable para programación: * explícita o calculada. */ fechaLimite, fechaLimiteTexto, fechaLimiteInferida, tipo: analisis.tipo, fuente: mejor.fuente, fuenteFecha: fechaDirecta ? fechaDirecta.campo : mejor.fuente, confianza: mejor.puntos >= 1200 ? 'alta' : mejor.puntos >= 700 ? 'media' : 'baja', confianzaFecha: analisis.confianzaFecha, inferida: fechaLimiteInferida }; } //FIN SCRIPT DE EXTRACCION FECHAS const parser = new DOMParser(); var comunas = []; function decodeHTMLEntities(text) { const textarea = document.createElement('textarea'); textarea.innerHTML = text; return textarea.value.trim(); } /*<![CDATA[*/ // const sitiosSantiago = [{"nombre":"Carmine","direccion":"Av Nueva Costanera 3900 - Casacostanera","telefono":"50% Dcto.","web":"https:\/\/carminecucinaitaliana.cl\/","especialidad":"Todos los lunes","imagen":"\/resource\/images\/Carmine1745598838.jpg","descripcion":"<p>V\u0026aacute;lido hasta el 30 de junio de 2025.|50% Dcto. |Vitacura<\/p>\n\n<p>|<\/p>\n\n<ul>\n\t<li>Pagando con tu Tarjeta de Cr\u0026eacute;dito Scotiabank\u0026nbsp;Signature, Infinite, Singular y Wealth Management en el restaurante.<\/li>\n\t<li>Descuento de 50% v\u0026aacute;lido para todos los lunes\u0026nbsp;hasta el\u0026nbsp;30 de junio de 2025.<\/li>\n\t<li>Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web.<\/li>\n\t<li>Promoci\u0026oacute;n v\u0026aacute;lida previa reserva.<\/li>\n\t<li>V\u0026aacute;lido solo para consumo presencial.<\/li>\n\t<li>Solicita el descuento al momento de pagar en el restaurante.<\/li>\n\t<li>Tope de descuento: $50.000 por cuenta y cliente titular.<\/li>\n\t<li>Descuento no acumulable con otras promociones.<\/li>\n\t<li>Restaurante Scotia Pet Friendly, puedes ingresar con tu mascota.|<\/li>\n<\/ul>\n\n<p>Promoci\u0026oacute;n v\u0026aacute;lida todos los lunes\u0026nbsp;de junio\u0026nbsp;de 2025. Promoci\u0026oacute;n consiste en un 50% Dcto.\u0026nbsp;con tope de $50.000 por cliente titular en Carmine\u0026nbsp;ubicado en Av. Nueva Costanera 3900 - Casacostanera, Vitacura. Promoci\u0026oacute;n exclusiva para clientes Scotiabank. Pagando con tus Tarjetas de Cr\u0026eacute;dito Scotiabank Signature, Infinite, Singular y Wealth Management. Descuento v\u0026aacute;lido para consumo presencial y solicit\u0026aacute;ndolo al momento de pagar en restaurante. Promoci\u0026oacute;n v\u0026aacute;lida previa reserva. Descuento no acumulable con otras promociones. Descuento no v\u0026aacute;lido para d\u0026iacute;as feriados y festivos. Se excluyen propinas, cigarrillos, men\u0026uacute;s, eventos dentro del restaurante y otras promociones. Sujeto a disponibilidad de los locales. Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web. Se excluyen de esta promoci\u0026oacute;n las Tarjetas de D\u0026eacute;bito Scotiabank, Visa Scotiabank Gold, Mastercard Scotiabank Gold, Visa Scotiabank Platinum, Mastercard Scotiabank Platinum, Empresariales, Corporativas, Mastercard Business, Visa Business, Visa Enjoy, Visa Movistar, Visa Forum, Visa Congelada, Visa Cr\u0026eacute;dito Express, Visa Bex y Tarjeta Universal, al igual que las Tarjetas de Cr\u0026eacute;dito Cencosud Scotiabank, emitidas por su filial. El pago con tarjetas de cr\u0026eacute;dito puede tener costos asociados. Consulta con el emisor de la tarjeta para mayor informaci\u0026oacute;n.<\/p>\n\n<p>|<\/p>\n\n<p>singular,infinite,signature,wealth<\/p>\n\n<p>|<\/p>\n\n<p>pet-friendly<\/p>\n","id_sitio":416,"id_region":13},{"nombre":"Kunstmann ","direccion":"Av. Italia 1393, Providencia| Jorge Wshington 144, \u00D1u\u00F1oa| Av. Vicu\u00F1a Mackenna Oriente 7110, Mall Plaza La Florida, La Florida","telefono":"50% Dcto.","web":"https:\/\/www.cerveza-kunstmann.cl\/experiencia\/","especialidad":"Todos los lunes","imagen":"\/resource\/images\/thumbnail_Kunstmann1748560393.jpg","descripcion":"<p>V\u0026aacute;lido hasta el 30 de junio\u0026nbsp;de 2025.|50% Dcto.|Providencia, \u0026Ntilde;u\u0026ntilde;oa, La Florida<\/p>\n\n<p>|<\/p>\n\n<ul>\n\t<li>Pagando con tu Tarjeta de Cr\u0026eacute;dito Scotiabank\u0026nbsp;Signature, Infinite, Singular y Wealth Management en el Restaurante.\u0026nbsp;<\/li>\n\t<li>Descuento de 50% v\u0026aacute;lido para todos los lunes\u0026nbsp;hasta el 30 de junio\u0026nbsp;de 2025.<\/li>\n\t<li>Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web.<\/li>\n\t<li>Promoci\u0026oacute;n v\u0026aacute;lida previa reserva.<\/li>\n\t<li>V\u0026aacute;lido s\u0026oacute;lo para consumo presencial.<\/li>\n\t<li>Solicita el descuento al momento de pagar en el restaurante.<\/li>\n\t<li>Tope de descuento\u0026nbsp;$50.000 por cuenta y cliente titular.<\/li>\n\t<li>Descuento no acumulable con otras promociones.<\/li>\n\t<li>Restaurante Scotia Pet Friendly, puedes ingresar con tu mascota.<\/li>\n<\/ul>\n\n<p>|<br \/>\nPromoci\u0026oacute;n v\u0026aacute;lida todos los lunes de junio de 2025. Promoci\u0026oacute;n consiste en un 50% Dcto. con tope de $50.000 por cliente titular en Kunstmann, ubicado en Av. Italia 1393, Providencia. Jorge Wshington 144, \u0026Ntilde;u\u0026ntilde;oa.\u0026nbsp;\u0026nbsp;Av. Vicu\u0026ntilde;a Mackenna Oriente 7110, Mall Plaza La Florida, La Florida.\u0026nbsp;Pagando con tus Tarjetas de Cr\u0026eacute;dito Scotiabank Signature, Infinite, Singular y Wealth Management. Descuento v\u0026aacute;lido para consumo presencial y solicit\u0026aacute;ndolo al momento de pagar en el restaurante. Descuento no acumulable con otras promociones.\u0026nbsp;Descuento no v\u0026aacute;lido para d\u0026iacute;as feriados y festivos.\u0026nbsp;Se excluyen propinas, cigarrillos, men\u0026uacute;s, eventos dentro del restaurante y otras promociones. Sujeto a disponibilidad de los locales.\u0026nbsp;Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web. Promoci\u0026oacute;n\u0026nbsp;v\u0026aacute;lida para Tarjetas emitidas por Scotiabank Chile.\u0026nbsp;Se excluyen de esta promoci\u0026oacute;n las Tarjetas de D\u0026eacute;bito Scotiabank, Visa Scotiabank Gold, Mastercard Scotiabank\u0026nbsp;Gold, Visa Scotiabank Platinum, Mastercard Scotiabank Platinum, Mastercard Scotiabank Black, Empresariales, Corporativas, Mastercard Business, Visa Enjoy, Visa Movistar, Visa Forum, Visa Congelada, Visa Cr\u0026eacute;dito Express, Visa Bex y Tarjeta Universal, al igual que las Tarjetas de Cr\u0026eacute;dito Cencosud Scotiabank, emitidas por su filial. El pago con tarjetas de cr\u0026eacute;dito puede tener costos asociados. Consulta con el emisor de la tarjeta para mayor informaci\u0026oacute;n.<\/p>\n\n<p>|<\/p>\n\n<p>singular,infinite,signature,wealth<\/p>\n\n<p>|<\/p>\n\n<p>pet-friendly<\/p>\n","id_sitio":532,"id_region":13},{"nombre":"Carnal Prime Steakhouse","direccion":"Alonso de C\u00F3rdova 3053","telefono":"50% Dcto.","web":"https:\/\/carnalprime.cl\/","especialidad":"Todos los lunes","imagen":"\/resource\/images\/Carnal-Caluga1745598857.jpg","descripcion":"<p>V\u0026aacute;lido hasta el 30 de junio\u0026nbsp;de 2025.|50% Dcto.|Vitacura<\/p>\n\n<p>|<\/p>\n\n<ul>\n\t<li>Pagando con tu Tarjeta de Cr\u0026eacute;dito Scotiabank\u0026nbsp;Signature, Infinite, Singular y Wealth Management en el Restaurante.\u0026nbsp;<\/li>\n\t<li>Descuento de 50% v\u0026aacute;lido para todos los lunes\u0026nbsp;hasta el 30 de junio\u0026nbsp;de 2025.<\/li>\n\t<li>Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web.<\/li>\n\t<li>Promoci\u0026oacute;n v\u0026aacute;lida previa reserva.<\/li>\n\t<li>V\u0026aacute;lido s\u0026oacute;lo para consumo presencial.<\/li>\n\t<li>Solicita el descuento al momento de pagar en el restaurante.<\/li>\n\t<li>Tope de descuento\u0026nbsp;$50.000 por cuenta y cliente titular.<\/li>\n\t<li>Descuento no acumulable con otras promociones.<\/li>\n\t<li>Restaurante Scotia Pet Friendly, puedes ingresar con tu mascota.<\/li>\n<\/ul>\n\n<p>|<br \/>\nPromoci\u0026oacute;n v\u0026aacute;lida todos los lunes de junio de 2025. Promoci\u0026oacute;n consiste en un 50% Dcto. con tope de $50.000 por cliente titular en Carnal Prime Steakhouse, ubicado en Alonso de C\u0026oacute;rdova 3053, Vitacura.\u0026nbsp;Pagando con tus Tarjetas de Cr\u0026eacute;dito Scotiabank Signature, Infinite, Singular y Wealth Management. Descuento v\u0026aacute;lido para consumo presencial y solicit\u0026aacute;ndolo al momento de pagar en el restaurante. Descuento no acumulable con otras promociones.\u0026nbsp;Descuento no v\u0026aacute;lido para d\u0026iacute;as feriados y festivos.\u0026nbsp;Se excluyen propinas, cigarrillos, men\u0026uacute;s, eventos dentro del restaurante y otras promociones. Sujeto a disponibilidad de los locales.\u0026nbsp;Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web. Promoci\u0026oacute;n\u0026nbsp;v\u0026aacute;lida para Tarjetas emitidas por Scotiabank Chile.\u0026nbsp;Se excluyen de esta promoci\u0026oacute;n las Tarjetas de D\u0026eacute;bito Scotiabank, Visa Scotiabank Gold, Mastercard Scotiabank\u0026nbsp;Gold, Visa Scotiabank Platinum, Mastercard Scotiabank Platinum, Mastercard Scotiabank Black, Empresariales, Corporativas, Mastercard Business, Visa Enjoy, Visa Movistar, Visa Forum, Visa Congelada, Visa Cr\u0026eacute;dito Express, Visa Bex y Tarjeta Universal, al igual que las Tarjetas de Cr\u0026eacute;dito Cencosud Scotiabank, emitidas por su filial. El pago con tarjetas de cr\u0026eacute;dito puede tener costos asociados. Consulta con el emisor de la tarjeta para mayor informaci\u0026oacute;n.<\/p>\n\n<p>|<\/p>\n\n<p>singular,infinite,signature,wealth<\/p>\n\n<p>|<\/p>\n\n<p>pet-friendly<\/p>\n","id_sitio":519,"id_region":13}]; // const sitiosRegiones = [{"nombre":"Dominga Bistr\u00F3","direccion":"Filomena Valenzuela 230, Iquique| Benjam\u00EDn Viel S\/N, lote 2 - Isla Teja (Club Phoenix), Valdivia","telefono":"50% Dcto.","web":"https:\/\/www.domingabistro.cl\/","especialidad":"Todos los jueves","imagen":"\/resource\/images\/DomingaBistro1745884032.jpg","descripcion":"<p>V\u0026aacute;lido hasta el\u0026nbsp;30 de junio de 2025.|50% Dcto. |Iquique<\/p>\n\n<p>|<\/p>\n\n<ul>\n\t<li>Pagando con tu Tarjeta de Cr\u0026eacute;dito Scotiabank\u0026nbsp;Signature, Infinite, Singular y Wealth Management en el Restaurante.<\/li>\n\t<li>Descuento de 50% v\u0026aacute;lido para todos los jueves\u0026nbsp;hasta el 30 de junio de 2025.<\/li>\n\t<li>Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web.<\/li>\n\t<li>Promoci\u0026oacute;n v\u0026aacute;lida previa reserva.<\/li>\n\t<li>V\u0026aacute;lido solo para consumo presencial.<\/li>\n\t<li>Solicita el descuento al momento de pagar en el restaurante.<\/li>\n\t<li>Tope de descuento: $50.000 por cuenta y cliente titular.<\/li>\n\t<li>Descuento no acumulable con otras promociones.<\/li>\n\t<li>Restaurante Scotia Pet Friendly, puedes ingresar con tu mascota.|<\/li>\n<\/ul>\n\n<p>Promoci\u0026oacute;n v\u0026aacute;lida todos los jueves\u0026nbsp;de junio de 2025. Promoci\u0026oacute;n consiste en un 50% Dcto.\u0026nbsp;con tope de $50.000 por cliente titular. Promoci\u0026oacute;n exclusiva para clientes Scotiabank. Pagando con tus Tarjetas de Cr\u0026eacute;dito Scotiabank Signature, Infinite, Singular y Wealth Management. Descuento v\u0026aacute;lido para consumo presencial y solicit\u0026aacute;ndolo al momento de pagar en restaurante. Promoci\u0026oacute;n v\u0026aacute;lida previa reserva. Descuento no acumulable con otras promociones. Descuento no v\u0026aacute;lido para d\u0026iacute;as feriados y festivos. Se excluyen propinas, cigarrillos, men\u0026uacute;s, eventos dentro del restaurante y otras promociones. Sujeto a disponibilidad de los locales.\u0026nbsp;Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web. Promoci\u0026oacute;n v\u0026aacute;lida para Tarjetas emitidas por Scotiabank Chile.\u0026nbsp;Se excluyen de esta promoci\u0026oacute;n las Tarjetas de D\u0026eacute;bito Scotia, Visa Scotia Gold, Mastercard Scotia Gold, Visa Scotia Platinum, Mastercard Scotia Platinum, Mastercard Scotia Black, Empresariales, Corporativas, Mastercard Business, Visa Enjoy, Visa Movistar, Visa Forum, Visa Congelada, Visa Cr\u0026eacute;dito Express, Visa Bex y Tarjeta Universal, al igual que las Tarjetas de Cr\u0026eacute;dito Cencosud Scotiabank, emitidas por su filial. El pago con tarjetas de cr\u0026eacute;dito puede tener costos asociados. Consulta con el emisor de la tarjeta para mayor informaci\u0026oacute;n.<\/p>\n\n<p>|<\/p>\n\n<p>singular,infinite,signature,wealth<\/p>\n\n<p>|<\/p>\n\n<p>pet-friendly<\/p>\n","id_sitio":443,"id_region":1},{"nombre":"zafr\u00E1n","direccion":"Av. Grecia 1730, Antofagasta","telefono":"50% Dcto.","web":"https:\/\/wyndhampettra.com\/zafran-antofagasta-restaurante\/","especialidad":"Todos los viernes","imagen":"\/resource\/images\/Zafran1749230122.jpg","descripcion":"<p>V\u0026aacute;lido hasta del 30 de junio de 2025.|50% Dcto. |Antofagasta<\/p>\n\n<p>|<\/p>\n\n<ul>\n\t<li>Pagando con tu Tarjeta de Cr\u0026eacute;dito Scotiabank Signature, Infinite, Singular y Wealth Management en el Restaurante.<\/li>\n\t<li>Descuento de 50% v\u0026aacute;lido para todos los mi\u0026eacute;rcoles\u0026nbsp;hasta del\u0026nbsp;30 de junio de 2025.<\/li>\n\t<li>Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web.<\/li>\n\t<li>Promoci\u0026oacute;n v\u0026aacute;lida previa reserva.<\/li>\n\t<li>V\u0026aacute;lido solo para consumo presencial.<\/li>\n\t<li>Solicita el descuento al momento de pagar en el restaurante.<\/li>\n\t<li>Tope de descuento: $50.000 por cuenta y cliente titular.<\/li>\n\t<li>Descuento no acumulable con otras promociones.<\/li>\n<\/ul>\n\n<p>|<\/p>\n\n<p>Promoci\u0026oacute;n v\u0026aacute;lida todos los viernes\u0026nbsp;de\u0026nbsp;junio de 2025. Promoci\u0026oacute;n consiste en un 50% Dcto.\u0026nbsp;con tope de $50.000 por cliente titular. Promoci\u0026oacute;n exclusiva para clientes Scotiabank.\u0026nbsp;Pagando con tus Tarjetas de Cr\u0026eacute;dito Scotiabank Signature, Infinite, Singular y Wealth Management. Descuento v\u0026aacute;lido para consumo presencial y solicit\u0026aacute;ndolo al momento de pagar en restaurante. Promoci\u0026oacute;n v\u0026aacute;lida previa reserva. Descuento no acumulable con otras promociones. Descuento no v\u0026aacute;lido para d\u0026iacute;as feriados y festivos. Se excluyen propinas, cigarrillos, men\u0026uacute;s, eventos dentro del restaurante y otras promociones. Sujeto a disponibilidad de los locales.\u0026nbsp;Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web. Promoci\u0026oacute;n v\u0026aacute;lida para Tarjetas emitidas por Scotiabank Chile.\u0026nbsp;Se excluyen de esta promoci\u0026oacute;n las Tarjetas de D\u0026eacute;bito Scotiabank, Visa Scotiabank\u0026nbsp;Gold, Mastercard Scotiabank Gold, Visa Scotiabank Platinum, Mastercard Scotiabank Platinum, Mastercard Scotiabank Black, Empresariales, Corporativas, Mastercard Business, Visa Enjoy, Visa Movistar, Visa Forum, Visa Congelada, Visa Cr\u0026eacute;dito Express, Visa Bex y Tarjeta Universal, al igual que las Tarjetas de Cr\u0026eacute;dito Cencosud Scotiabank, emitidas por su filial. El pago con tarjetas de cr\u0026eacute;dito puede tener costos asociados. Consulta con el emisor de la tarjeta para mayor informaci\u0026oacute;n.<\/p>\n\n<p>|<\/p>\n\n<p>singular,infinite,signature,wealth<\/p>\n\n<p>\u0026nbsp;<\/p>\n","id_sitio":514,"id_region":2},{"nombre":"kunstmann Antofagasta","direccion":"Av. Rep\u00FAblica de Croacia 74, Antofagasta","telefono":"50% Dcto.","web":"https:\/\/www.cerveza-kunstmann.cl\/local\/antofagasta\/","especialidad":"Todos los lunes","imagen":"\/resource\/images\/thumbnail_Kunstmann1748557889.jpg","descripcion":"<p>V\u0026aacute;lido hasta el\u0026nbsp;30 de junio\u0026nbsp;de 2025|50% Dcto. |Antofagasta<\/p>\n\n<p>|<\/p>\n\n<ul>\n\t<li>Pagando con tu Tarjeta de Cr\u0026eacute;dito Scotiabank\u0026nbsp;Visa Signature, Infinite, Singular y Wealth Management en el Restaurante.<\/li>\n\t<li>Descuento de 50% v\u0026aacute;lido para todos los lunes\u0026nbsp;hasta el 30 de junio\u0026nbsp;de 2025.<\/li>\n\t<li>Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web.<\/li>\n\t<li>Promoci\u0026oacute;n v\u0026aacute;lida previa reserva.<\/li>\n\t<li>V\u0026aacute;lido solo para consumo presencial.<\/li>\n\t<li>Solicita el descuento al momento de pagar en el restaurante.<\/li>\n\t<li>Tope de descuento: $50.000 por cuenta y cliente titular.<\/li>\n\t<li>Descuento no acumulable con otras promociones.<\/li>\n\t<li>Se excluyen propinas, cigarrillo, men\u0026uacute;s especiales, Happy Hours, llenado de Growler, Productos de souvenir, tours, catas de ceveceras.<\/li>\n\t<li>Restaurante Scotia Pet Friendly, puedes ingresar con tu mascota.|<\/li>\n<\/ul>\n\n<p>Promoci\u0026oacute;n v\u0026aacute;lida todos los lunes\u0026nbsp;de junio de 2025. Promoci\u0026oacute;n consiste en un 50% Dcto.\u0026nbsp;con tope de $50.000 por cliente titular.\u0026nbsp;Promoci\u0026oacute;n exclusiva para clientes Scotiabank. Pagando con tus Tarjetas de Cr\u0026eacute;dito Scotiabank Signature, Infinite, Singular y Wealth Management. Descuento v\u0026aacute;lido para consumo presencial y solicit\u0026aacute;ndolo al momento de pagar en restaurante. Promoci\u0026oacute;n v\u0026aacute;lida previa reserva. Descuento no acumulable con otras promociones. Descuento no v\u0026aacute;lido para d\u0026iacute;as feriados y festivos. Se excluyen propinas, cigarrillos, men\u0026uacute;s especiales,\u0026nbsp;Happy Hours, llenado de Growler, Productos de souvenir, tours, catas de ceveceras, eventos dentro del restaurante y otras promociones. Sujeto a disponibilidad de los locales.\u0026nbsp;Consultar d\u0026iacute;as y horarios del restaurante en su direcci\u0026oacute;n web. Promoci\u0026oacute;n\u0026nbsp;v\u0026aacute;lida para Tarjetas emitidas por Scotiabank Chile.\u0026nbsp;Se excluyen de esta promoci\u0026oacute;n las Tarjetas de D\u0026eacute;bito Scotiabank, Visa Scotiabank\u0026nbsp;Gold, Mastercard Scotiabank Gold, Visa Scotiabank Platinum, Mastercard Scotiabank Platinum, Mastercard Scotiabank Black, Empresariales, Corporativas, Mastercard Business, Visa Enjoy, Visa Movistar, Visa Forum, Visa Congelada, Visa Cr\u0026eacute;dito Express, Visa Bex y Tarjeta Universal, al igual que las Tarjetas de Cr\u0026eacute;dito Cencosud Scotiabank, emitidas por su filial. El pago con tarjetas de cr\u0026eacute;dito puede tener costos asociados. Consulta con el emisor de la tarjeta para mayor informaci\u0026oacute;n.<\/p>\n\n<p>|<\/p>\n\n<p>singular,infinite,signature,wealth<\/p>\n\n<p>|<\/p>\n\n<p>pet-friendly<\/p>\n","id_sitio":526,"id_region":2}]; console.log('descuento', descuentos); // const sitiosTotales = descuentos.map(descuento => { // return { // // --- Índices mapeados directamente --- // "nombre": descuento.titulo, // "direccion": descuento.direcciones, // Este parece ser el mapeo más lógico // "telefono": descuento.subtitulo, // "web": "", // Agregado como índice vacío // "especialidad": descuento.descuento, // "imagen": descuento.imagen, // "descripcion": descuento.descripcion, // Usamos la descripción principal del objeto Descuento // "descripcion_completa" : descuento.descripcion, // "id_sitio": descuento.id, // "id_region": 13, // Agregado con un valor por defecto, puedes cambiarlo a "" o null // "fecha_fin": descuento.fecha_fin, // // // --- Nuevos índices agregados del objeto 'Descuento' como valores vacíos o por defecto --- // // Estos son los campos que existen en 'Descuento' pero no en tu 'sitiosSantiago' original. // // Los agregamos para tener la estructura completa. // "codigo": descuento.codigo || "", // "acceder": descuento.acceder || "", // "condicionesComercio": descuento.condicionesComercio || "", // "terminosYCondiciones": descuento.terminosYCondiciones || "", // "generaCanje": descuento.generaCanje || null, // "tags": descuento.tags || [], // "nombre_original": descuento.nombre || "" // El 'nombre' original del objeto Descuento // }; // }); /* * MAP COMPLETO PARA PROBARLO EN CONSOLA. * * Uso window.sitiosTotales2 para que puedas volver * a pegar el script sin el error: * * Identifier 'sitiosTotales2' has already been declared. */ const sitiosTotales = descuentos.map(descuento => { const vigencia = extraerVigenciaBeneficio(descuento); return { nombre: descuento.titulo, direccion: descuento.direcciones, telefono: descuento.subtitulo, web: '', especialidad: descuento.descuento, imagen: descuento.imagen, descripcion: descuento.descripcion, descripcion_completa: descuento.descripcion, id_sitio: descuento.id, id_region: 13, /* * Campo compatible con tu implementación actual. * * Puede ser: * - una fecha explícita; * - el último día calculado del mes. */ fecha_fin: vigencia.fechaLimite, fecha_fin_texto: vigencia.fechaLimiteTexto, fecha_fin_inferida: vigencia.fechaLimiteInferida, /* * Fecha realmente escrita en los términos. */ fecha_fin_explicita: vigencia.fechaFin, fecha_fin_explicita_texto: vigencia.fechaFinTexto, /* * Fecha calculada cuando el texto solamente * indica un mes completo. */ fecha_fin_calculada: vigencia.fechaFinCalculada, fecha_fin_calculada_texto: vigencia.fechaFinCalculadaTexto, fecha_inicio: vigencia.fechaInicio, fecha_inicio_texto: vigencia.fechaInicioTexto, /* * Para imprimir utiliza principalmente * vigencia_texto. */ vigencia_texto: vigencia.texto, vigencia_texto_original: vigencia.textoOriginal, vigencia_resumen: vigencia.resumen, vigencia_condicion: vigencia.condicion, vigencia_tipo: vigencia.tipo, vigencia_fuente: vigencia.fuente, vigencia_fuente_fecha: vigencia.fuenteFecha, vigencia_confianza: vigencia.confianza, vigencia_confianza_fecha: vigencia.confianzaFecha, vigencia_inferida: vigencia.inferida, codigo: descuento.codigo || '', acceder: descuento.acceder || '', condicionesComercio: descuento.condicionesComercio || '', terminosYCondiciones: descuento.terminosYCondiciones || '', generaCanje: descuento.generaCanje ?? null, tags: descuento.tags || [], nombre_original: descuento.nombre || '' }; }); /** * VERSIÓN CORREGIDA Y SIMPLIFICADA * * Este código recorre cada 'sitio' del arreglo 'sitiosSantiago' y * REEMPLAZA su campo 'descripcion' con una nueva cadena de texto limpia, * uniendo las diferentes partes solo con el carácter '|'. */ // Suponiendo que tu arreglo original existe // const sitiosSantiago = [...]; sitiosTotales.forEach(sitio => { // --- 1. Definimos las partes para la nueva descripción --- // Posición 0: Vigencia // const parteVigencia = sitio.fecha_fin; // Formatear la fecha 'fecha_fin' a: "Válido hasta el 31 de mayo de 2025" const fechaOriginal = sitio.fecha_fin; const fecha = new Date(fechaOriginal); const opciones = { day: 'numeric', month: 'long', year: 'numeric' }; const fechaFormateada = fecha.toLocaleDateString('es-CL', opciones); //const parteVigencia = sitio.fecha_fin_calculada_texto ? `Válido hasta el ${sitio.fecha_fin_calculada_texto}`: ''; const idsOcultarVigencia = [12396, 12338]; const parteVigencia = (idsOcultarVigencia.includes(Number(sitio.id_sitio)) || !sitio.fecha_fin_texto) ? '' : `Válido hasta el ${sitio.fecha_fin_texto}`; // Posición 1: Texto del Descuento const parteDescuento = sitio.telefono || 'Descuento no especificado'; // Posición 2: Comuna(s) const parteComuna = 'Vitacura'; // Posición 3: Especificaciones (la lista <ul>) const parteEspecificaciones = sitio.condicionesComercio; // Posición 4: Condiciones Legales const parteCondicionesLegales = sitio.terminosYCondiciones; // Posición 5: Tarjetas aplicables const parteTarjetas = sitio.codigo; // const parteTarjetas = 'singular,infinite,signature,wealth'; // Posición 6: Atributo Pet Friendly const partePetFriendly = 'pet-friendly'; // --- 2. Unimos todas las partes con un simple '|' --- const nuevaDescripcion = [ parteVigencia, parteDescuento, parteComuna, parteEspecificaciones, parteCondicionesLegales, parteTarjetas, partePetFriendly ].join('|'); // ¡Este es el cambio clave! // --- 3. Sobrescribimos el campo 'descripcion' del sitio actual --- sitio.descripcion = nuevaDescripcion; }); const procesarDescripcion = (descripcion) => { if (!descripcion) return { textoVigencia: '', textDescuento: '', comuna: '', especificaciones: [], condicionesLegales: '', tarjetas: [], petFriendly: ['pet-friendly', 'no-pets'].includes(secciones[6]?.toLowerCase()) ? secciones[6].toLowerCase() : 'pet-friendly' }; const cleaned = descripcion.replace(/<\/?p>/g, ''); const secciones = cleaned.split('|').map(s => s.trim()); // Parsear especificaciones const liItems = parser.parseFromString(secciones[3] || '', 'text/html') .querySelectorAll('li'); return { textoVigencia: secciones[0] || '', textDescuento: secciones[1] || 'Descuento no especificado', comuna: (secciones[2]?.split(',').map(c => c.trim()) || ['Comuna no disponible']), especificaciones: Array.from(liItems).map(li => li.textContent.trim()), condicionesLegales: secciones[4] || 'Sin condiciones legales', tarjetas: secciones[5]?.split(',').map(t => t.trim()) || [], petFriendly: secciones[6]?.toLowerCase() || 'no-pet-friendly' }; }; window.verDetalles = function(idSitio) { let nombreBeneficio = typeof nombre !== 'undefined' ? nombre : arguments[1]; if (!nombreBeneficio) { const urlParams = new URLSearchParams(window.location.search); nombreBeneficio = urlParams.get('beneficio'); } let desc = typeof descuentos !== 'undefined' ? descuentos.find(d => d.id == idSitio) : null; let sitioTemp = typeof sitiosTotales !== 'undefined' ? sitiosTotales.find(s => s.id_sitio == idSitio) : null; const nombresAComprobar = [ nombreBeneficio, desc?.nombre, sitioTemp?.nombre, sitioTemp?.nombre_original ].filter(Boolean).map(n => n.trim().toUpperCase()); if (nombresAComprobar.includes('SALONES2025')) { window.open('../../categoria/mundos/salonesvip', '_blank'); return; } if (nombresAComprobar.includes('CARDENTRETENIMIENTO')) { window.open('../../categoria/miscanjes/entretencion', '_blank'); return; } if (nombresAComprobar.includes('CARDCINE')) { window.open('../../categoria/miscanjes/entradascine', '_blank'); return; } if (nombresAComprobar.includes('CARDCANJE18')) { window.open('../../categoria/miscanjes/comocanjearscotiapesos', '_blank'); return; } if (nombresAComprobar.includes('MARKETPLACE18')) { window.open('https://scotiamarketplace.cl/', '_blank'); return; } if (nombresAComprobar.includes('RUTADELFUEGO26')) { window.open('../../categoria/platosycomida/rutadelfuego', '_blank'); return; } let sitio = sitiosTotales.find(s => s.id_sitio == idSitio); if (!sitio && nombreBeneficio) { const cleanStr = (str) => (str || '').normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase().replace(/[\s-]+/g, ''); const beneficioNorm = cleanStr(nombreBeneficio); sitio = sitiosTotales.find(s => { return cleanStr(s.nombre) === beneficioNorm || cleanStr(s.nombre_original) === beneficioNorm; }); } if (!sitio) return; //[const sitio = sitiosTotales.find(s => s.id_sitio == idSitio); //if (!sitio) return;] $('#id-producto-modal').val(sitio.id_sitio); if (sitio.generaCanje === true) { $('.btn-obtener-beneficio').show(); $('#btn-obtener-beneficio').prop('disabled', false); } else { $('.btn-obtener-beneficio').hide(); $('#btn-obtener-beneficio').prop('disabled', true); } const detalleContainer = document.getElementById('sitio-detalle'); let { textoVigencia, textDescuento, comuna, especificaciones, condicionesLegales, tarjetas, petFriendly } = procesarDescripcion(sitio.descripcion); if ((!especificaciones || especificaciones.length === 0) && sitio.condicionesComercio) { const condicionesHtml = parser.parseFromString(sitio.condicionesComercio, 'text/html'); const itemsCondiciones = Array.from(condicionesHtml.querySelectorAll('li')) .map(item => item.textContent.trim()) .filter(Boolean); const textoCondiciones = condicionesHtml.body.textContent .split(/\n+/) .map(item => item.trim()) .filter(Boolean); especificaciones = itemsCondiciones.length > 0 ? itemsCondiciones : textoCondiciones; } // Mostrar contenedor document.getElementById('sitios').classList.add('d-none'); detalleContainer.classList.remove('d-none'); if (document.getElementById('section-submenu-6654')) { const submenuBanner = document.getElementById('submenu-banner'); if (submenuBanner) { submenuBanner.classList.add('d-none'); } } //console.log(sitio) // Actualizar imagen principal detalleContainer.querySelector('img.sc-max-height').src = sitio.imagen; // Actualizar título y beneficios document.getElementById('detalle-banner-dcto').textContent = sitio.telefono; const elVigencia = document.getElementById('detalle-vigencia'); if (elVigencia) { elVigencia.textContent = parser.parseFromString(textoVigencia, 'text/html').body.textContent; if (String(sitio.id_sitio) === '12396' || String(idSitio) === '12396') { elVigencia.classList.add('d-none'); } else { elVigencia.classList.remove('d-none'); } } document.getElementById('detalle-banner-nombre').textContent = sitio.nombre; //document.getElementById('detalle-bajada-nombre').textContent = sitio.nombre; document.getElementById('detalle-banner-dias').textContent = sitio.especialidad.toLowerCase(); //document.getElementById('detalle-bajada-dcto').textContent = sitio.telefono; document.getElementById('detalle-bajada-dias').textContent = sitio.nombre; document.getElementById('descripcion_beneficio').innerHTML = sitio.descripcion_completa; //DETALLE DE COMO USAR document.getElementById('detalle_como_usar').innerHTML = sitio.acceder; document.getElementById('detalle_direcciones').innerHTML = sitio.direccion; // Poblar especificaciones dinámicas const especificacionesContainer = detalleContainer.querySelector('#especificaciones'); especificacionesContainer.innerHTML = (especificaciones || []).map(param => ` <div class="row justify-content-center py-12"> <div class="col-2 px-0"> <img src="https://beneficios.scotiabank.cl/scclubfront/resource/ruta/Arrow-Rosa.png" class="img-fluid mx-auto d-flex" width="25px"> </div> <div class="col-10 pl-0"> <p class="caption" style="text-align: left;">${param || 'Información no disponible'}</p> </div> </div> `).join(''); const petMessage = (petFriendly || 'pet-friendly') === 'pet-friendly' ? '<span style="font-weight: normal;"> (Restaurante Scotia Pet Friendly), puedes ingresar con tu mascota.</span>' : ''; if(petFriendly == 'pet-friendly'){ //document.getElementById('detalle-petfriendly').classList.remove('d-none'); }else{ //document.getElementById('detalle-petfriendly').classList.add('d-none'); } detalleContainer.querySelector('[data-website] a').href = sitio.web || 'Sitio web no disponible'; detalleContainer.querySelector('[data-website] a').textContent = sitio.web || 'Sitio web no disponible'; const direccionesContainer = detalleContainer.querySelector('[data-direccion]'); direccionesContainer.innerHTML = ''; const comunas = procesarDescripcion(sitio.descripcion).comuna; const direcciones = sitio.direccion.split("|"); const textarea = document.createElement('textarea'); direcciones.forEach((direccion, index) => { let comuna = comunas[index] || ""; let direccionCompleta = ""; if (comuna && !direccion.toLowerCase().includes(comuna.toLowerCase())) { direccionCompleta = `${direccion}, ${comuna}`; } else { direccionCompleta = `${direccion}`; } const link = document.createElement('a'); link.href = `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(direccionCompleta)}`; link.textContent = direccionCompleta; link.target = "_blank"; link.classList.add('d-block'); direccionesContainer.appendChild(link); }); // Actualizar tarjetas const tarjetasContainer = detalleContainer.querySelector('#tarjetas'); const tarjetasNormalizadas = tarjetas.map(t => normalizarTarjeta(t)).filter(Boolean); const tarjetasValidas = ['singular', 'infinite', 'signature', 'wealth', 'platinum', 'gold', 'debito']; const tarjetasMostrar = tarjetasNormalizadas.length > 0 ? tarjetasNormalizadas.filter(t => tarjetasValidas.includes(t)) : []; tarjetasContainer.innerHTML = renderizarImagenesTarjetas(tarjetasNormalizadas, tarjetasMostrar); // Mostrar texto de tarjetas en span #detalle-texto-tarjetas const tarjetasLower = tarjetasNormalizadas; const contieneTodas = tarjetasLower.includes('todas'); let textoTarjetas = ''; if (contieneTodas) { textoTarjetas = 'Exclusivo con tus Tarjetas Débito o Crédito Scotiabank'; } else { const capitalizar = (str) => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); const nombresTarjetas = tarjetasMostrar.map(t => capitalizar(t.trim())); if (nombresTarjetas.length === 1) { textoTarjetas = nombresTarjetas[0]; } else if (nombresTarjetas.length === 2) { textoTarjetas = `${nombresTarjetas[0]} y ${nombresTarjetas[1]}`; } else if (nombresTarjetas.length > 2) { textoTarjetas = `${nombresTarjetas.slice(0, -1).join(', ')} y ${nombresTarjetas[nombresTarjetas.length - 1]}`; } } detalleContainer.querySelector('#detalle-texto-tarjetas').textContent = 'Exclusivo pagando con tus Tarjetas Scotiabank seleccionadas'; // Scroll a la sección de detalles document.getElementById('sitio-detalle').scrollIntoView({ behavior: 'smooth' }); const condicionesElement = document.getElementById('condiciones-legales'); const decodedContent = parser.parseFromString(condicionesLegales, 'text/html').body.textContent; condicionesElement.textContent = decodedContent; } /*]]>*/ let idRegiones = []; let regiones = []; for(let sitio of sitiosTotales){ idRegiones.push(sitio.id_region); } function volver(){ if (document.getElementById('section-submenu-6654')) { const submenuBanner = document.getElementById('submenu-banner'); if (submenuBanner) { submenuBanner.classList.remove('d-none'); } } document.getElementById('sitio-detalle').classList.add('d-none'); document.getElementById('sitios').classList.remove('d-none'); } function enfocarDetalles(){ document.getElementById('detalles-acordeon').scrollIntoView(); } function removeAll(selectBox) { while (selectBox.options.length > 0) { selectBox.remove(0); } } function poblarSelectRegiones(selectElement){ removeAll(selectElement); let todoOption = new Option('Categorías', '100'); selectElement.add(todoOption,undefined); for(let region of regiones){ let newOption = new Option(region.nombre, region.id); selectElement.add(newOption,undefined); } } function poblarSelectComunas(selectElement, regionId) { removeAll(selectElement); let todoOption = new Option('% de Descuento', 'all'); selectElement.add(todoOption, undefined); const comunasUnicas = new Set(); sitiosTotales.forEach(sitio => { if (regionId === '100' || sitio.id_region == regionId) { const comunasData = procesarDescripcion(sitio.descripcion).comuna; comunasData.forEach(comuna => comunasUnicas.add(comuna)); } }); comunas = []; comunasUnicas.forEach(comuna => { let newOption = new Option(comuna, comuna); selectElement.add(newOption, undefined); comunas.push(comuna); }); } function llenarVartiableComunas(selectElement, regionId) { const comunasUnicas = new Set(); sitiosTotales.forEach(sitio => { if (regionId === '100' || sitio.id_region == regionId) { const comunasdata = procesarDescripcion(sitio.descripcion).comuna; comunasdata.forEach(comuna => comunasUnicas.add(comuna)); } }); comunas = []; comunasUnicas.forEach(comuna => { comunas.push(comuna); }); } function normalizarTarjeta(tarjeta) { return (tarjeta || '').toString().trim().toLowerCase(); } function renderizarImagenesTarjetas(tarjetas, tarjetasMostrar) { const base = 'https://beneficios.scotiabank.cl/scclubfront/resource'; const imagenesPorCodigo = { nonpremium: `${base}/tarjetashd/Nonpremium-Tarjetas_1.png`, foco: `${base}/tarjetashd/Foco-Tarjetas_1.png`, focovisa: `${base}/tarjetashd/Foco-Tarjetas_1.png`, credito: `${base}/tarjetashd/Credito-Tarjetas_1.png`, creditovisa: `${base}/tarjetashd/Credito-Tarjetas_1.png`, wealth: `${base}/tarjetashd/Wealth-Tarjetas.png`, especial: `${base}/imgtarjeta/tarjetacredito170925_1.png`, todas: `${base}/tarjetashd/Todas-Tarjetas_2.png` }; const tarjetasNormalizadas = tarjetas.map(t => normalizarTarjeta(t)).filter(Boolean); const codigoGrupo = tarjetasNormalizadas.find(t => imagenesPorCodigo[t]); if (tarjetasNormalizadas.length === 0 || tarjetasNormalizadas.includes('todas')) { return `<img src="${imagenesPorCodigo.todas}" class="img-fluid m-1" alt="Todas las tarjetas">`; } if (tarjetasNormalizadas.length === 1 && codigoGrupo) { return `<img src="${imagenesPorCodigo[codigoGrupo]}" class="img-fluid m-1" alt="${codigoGrupo}">`; } const tarjetasIndividuales = tarjetasMostrar.length > 0 ? tarjetasMostrar : tarjetasNormalizadas; return tarjetasIndividuales.map(t => { const nombreTarjeta = normalizarTarjeta(t); const src = ['singular', 'infinite', 'signature', 'wealth', 'platinum', 'gold', 'debito'].includes(nombreTarjeta) ? `${base}/tarjetasscotiabank/${nombreTarjeta}.png` : `${base}/tarjetas/${nombreTarjeta}.svg`; return ` <div class="ml-1"> <img src="${src}" class="img-fluid mx-auto d-flex" alt="${nombreTarjeta}"> </div> `; }).join(''); } const filtrosTarjetas = [ { valor: 'signature', nombre: 'Visa Signature', codigos: ['todas', 'foco', 'focovisa','credito','creditovisa'] }, { valor: 'infinite', nombre: 'Visa Infinite Air', codigos: ['todas', 'foco', 'focovisa','credito','creditovisa'] }, { valor: 'infinite', nombre: 'Visa Infinite Wealth Management', codigos: ['todas', 'foco', 'focovisa','credito','creditovisa'] }, { valor: 'ssignature', nombre: 'Visa Singular by Scotiabank Signature', codigos: ['todas', 'foco', 'focovisa','credito','creditovisa'] }, { valor: 'singular', nombre: 'Visa ScotiaSingular', codigos: ['todas', 'foco', 'focovisa','credito','creditovisa'] }, { valor: 'infinite', nombre: 'Visa Singular by Scotiabank Infinite', codigos: ['todas', 'foco', 'focovisa','credito','creditovisa'] }, { valor: 'gold', nombre: 'Visa Gold', codigos: ['todas','credito','creditovisa'] }, { valor: 'platinum', nombre: 'Visa Platinum', codigos: ['todas','credito','creditovisa'] }, { valor: 'mblack', nombre: 'Mastercard Black', codigos: ['foco','credito', 'todas'] }, { valor: 'mplatinum', nombre: 'Mastercard Platinum', codigos: ['todas','credito'] }, { valor: 'mgold', nombre: 'Mastercard Gold', codigos: ['todas','credito'] }, { valor: 'debito', nombre: 'Tarjeta Débito', codigos: ['todas'] } ]; function poblarSelectTarjetas(selectElement) { removeAll(selectElement); selectElement.add(new Option('Todas las tarjetas', 'all'), undefined); filtrosTarjetas.forEach(tarjeta => { selectElement.add(new Option(tarjeta.nombre, tarjeta.valor), undefined); }); } function coincideFiltroTarjeta(tarjetasSitio, filtroSeleccionado) { if (filtroSeleccionado === 'all') { return true; } const filtro = filtrosTarjetas.find(tarjeta => tarjeta.valor === filtroSeleccionado); if (!filtro) { return false; } return tarjetasSitio.includes('todas') || filtro.codigos.some(codigo => tarjetasSitio.includes(codigo)); } class Region { constructor(id, nombre) { this.id = id; this.nombre = nombre; } } $( document ).ready(function() { let idRegionesFiltrados = idRegiones.reduce(function(a,b){ if (a.indexOf(b) < 0 ) a.push(b); return a; },[]); for(let idRegion of idRegionesFiltrados){ let region = new Region(); switch(idRegion){ case 1: region.nombre = 'Tarapacá'; break; case 2: region.nombre = 'Antofagasta'; break; case 3: region.nombre = 'Atacama'; break; case 4: region.nombre = 'Coquimbo'; break; case 5: region.nombre = 'Valparaíso'; break; case 6: region.nombre = "Libertador General Bernardo O'Higgins"; break; case 7: region.nombre = 'Maule'; break; case 8: region.nombre = 'Biobío'; break; case 9: region.nombre = 'La Araucanía'; break; case 10: region.nombre = 'Los Lagos'; break; case 11: region.nombre = 'Aysén del General Carlos Ibáñez del Campo'; break; case 12: region.nombre = 'Magallanes y Antártica Chilena'; break; case 13: region.nombre = 'Metropolitana de Santiago'; break; case 14: region.nombre = 'Los Ríos'; break; case 15: region.nombre = 'Arica y Parinacota'; break; case 16: region.nombre = 'Ñuble'; break; case 17: region.nombre = 'Buenos Aires - Argentina'; break; default: break; } region.id = idRegion; regiones.push(region); } poblarSelectCategoriasSitios(document.getElementById('select-categoria-sitios')); poblarSelectTarjetas(document.getElementById('select-tarjeta')); }); $(document).ready(function() { var url_string = window.location.href; var url = new URL(url_string); var beneficio = url.searchParams.get("beneficio"); if(beneficio != null){ verDetalles(0); } }); </script> <div class="px-0"> <!--CONTENIDO desktop--> <section th:id="|section-submenu-${submenuurl.id}|" class="p-0"> <section class="" id="submenu-banner" th:if="${submenuurl.id == 6654}"> <div class="sc-container-fluid sc-d-sm-block sc-d-md-block sc-d-lg-flex sc-flex-sm-row-reverse sc-align-items-center pb-xs-30 p-0" th:style="|background-color:${submenuurl.color};|"> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-6 p-0"> <img th:src="@{${submenuurl.imagen}}" class="img-fluid w-100 sc-max-height" th:alt="${submenuurl.nombre}"> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-5 py-xs-12"> <div class="sc-box-bannerhero p-24 p-xs-24 m-xs-12" th:with="descripcionPartes=${#strings.arraySplit(submenuurl.descripcion, '|')}"> <span class="" title="Viajes Scotia"> <img id="" src="https://media.staticontent.com/media/pictures/c7448576-4ef8-4167-b3eb-a135ef2bab0a" alt="logo" style="width: 130px;"> </span> <h1 class="status-badge-outlined badge-outlined-light mb-12 d-none" th:text="${descripcionPartes.length > 0 ? descripcionPartes[0] : ''}">Nuevo Scotia Marketplace</h1> <h1 class="headline-medium pb-12 pr-24 scotia-charcoal-color pt-12" th:text="${descripcionPartes.length > 1 ? descripcionPartes[1] : submenuurl.descripcion}"> ScotiaRewards </h1> <p class="body-2 pb-36 scotia-charcoal-color" th:text="${descripcionPartes.length > 2 ? descripcionPartes[2] : ''}">Pueden participar los clientes </p> <div class="sc-d-block sc-d-sm-block sc-d-md-flex sc-d-lg-flex"> <a href="https://scotiabank.despegar.cl/" class="sc-d-block sc-d-sm-block text-center scotia-button pill-primary-button mt-xs-12" style="border-radius: 25px;" target="_blank">Ir a Viajes Scotia</a> </div> </div> </div> </div> </section> <div id="sitios" class="animate__animated animate__fadeIn"> <section class="scotia-white-bg"> <div class="scotia-col-md-10 sc-container pt-36"> <div class="headline-small text-center pb-12" id="titulo-dinamico" th:if="${submenuurl.id != 6654}"> <h4 th:if="${submenuurl.descripcion == null || #strings.isEmpty(submenuurl.descripcion)}" class="scotia-headline h4-responsive text-center m-0">Increíbles beneficios pagando con tus tarjetas Scotiabank</h4> <h4 th:if="${submenuurl.descripcion != null && !#strings.isEmpty(submenuurl.descripcion)}" th:text="${submenuurl.descripcion}" class="scotia-headline h4-responsive text-center m-0"></h4> </div> <div class="headline-small text-center pb-12" th:if="${submenuurl.id == 6654}"> <h4 class="scotia-headline h4-responsive text-center m-0">Además, increíbles beneficios pagando con tus Tarjetas Scotiabank.</h4> </div> <h4 class="text-center pb-30 d-none">Canjea y disfruta de todas nuestras ofertas </h4> </div> </section> <div class="sc-container d-none"> <div class="owl-carousel owl-theme carousel-sitios" id="carousel-sitios"> </div> </div> <section class="sc-container-fluid"> <div class="sc-container"> <div class="sc-row sc-align-items-center py-4"> <div class="scotia-col-md-3 mt-2"> <div class="sc-select" style="position: relative; width: 100%; margin: 0;"> <select class="form-control" id="select-dia" style="display:block!important; width:100%; height:56px; border:1px solid #737373; border-radius:8px; background-color:#fff; color:#333; font-size:18px; line-height:1.2; padding:0 44px 0 24px; box-shadow:none; appearance:none; -webkit-appearance:none; -moz-appearance:none;"> <option value="all" selected>Todos los días</option> <option value="lunes">Lunes</option> <option value="martes">Martes</option> <option value="miércoles">Miércoles</option> <option value="jueves">Jueves</option> <option value="viernes">Viernes</option> <option value="sábado">Sábado</option> <option value="domingo">Domingo</option> </select> <i class="arrow" style="position:absolute; right:18px; top:50%; width:12px; height:12px; border-right:2px solid #333; border-bottom:2px solid #333; pointer-events:none; transform:translateY(-65%) rotate(45deg); border-left: 0px;"></i> </div> </div> <div class="scotia-col-md-3 mt-2"> <div class="sc-select" style="position: relative; width: 100%; margin: 0;"> <select class="form-control form-control-lg" style="display:block!important; width:100%; height:56px; border:1px solid #737373; border-radius:8px; background-color:#fff; color:#333; font-size:18px; line-height:1.2; padding:0 44px 0 24px; box-shadow:none; appearance:none; -webkit-appearance:none; -moz-appearance:none;" id="select-categoria-sitios"> </select> <i class="arrow" style="position:absolute; right:18px; top:50%; width:12px; height:12px; border-right:2px solid #333; border-bottom:2px solid #333; pointer-events:none; transform:translateY(-65%) rotate(45deg); border-left: 0px;"></i> </div> </div> <div class="scotia-col-md-3 mt-2"> <div class="sc-select" style="position: relative; width: 100%; margin: 0;"> <select class="form-control form-control-lg" style="display:block!important; width:100%; height:56px; border:1px solid #737373; border-radius:8px; background-color:#fff; color:#333; font-size:18px; line-height:1.2; padding:0 44px 0 24px; box-shadow:none; appearance:none; -webkit-appearance:none; -moz-appearance:none;" id="select-tarjeta"> </select> <i class="arrow" style="position:absolute; right:18px; top:50%; width:12px; height:12px; border-right:2px solid #333; border-bottom:2px solid #333; pointer-events:none; transform:translateY(-65%) rotate(45deg); border-left: 0px;"></i> </div> </div> <div class="scotia-col-md-3 mt-2"> <div class="input-group" style="position: relative; width: 100%; margin: 0;"> <input id="buscador" type="text" class="form-control" placeholder="Busca tu beneficio aquí..." aria-label="Busca tu beneficio aquí" style="width:100%; height:56px; border:1px solid #737373; border-radius:8px; background-color:#fff; color:#333; font-size:18px; line-height:1.2; padding:0 18px 0 24px; box-shadow:none;"> </div> </div> </div> </div> </section> <div class="sc-container py-42" id="row-sitios"> <div class="sc-row" id="panel-1"> </div> </div> </div> <script th:inline="javascript"> const carousel = document.getElementById("carousel-sitios"); const panel1 = document.getElementById("panel-1"); // Obtener día actual en español const diasSemana = ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']; const fechaHoy = new Date(); const diaActual = diasSemana[fechaHoy.getDay()]; const diaActualFormateado = diaActual.charAt(0).toUpperCase() + diaActual.slice(1); // Actualizar título del carrusel //document.getElementById('titulo-dinamico').textContent = `Accede cada día a descuentos exclusivos y disfruta de lo mejor de nuestras ofertas.`; // document.getElementById('titulo-dinamico').textContent = `${diaActualFormateado} Gourmet hasta 50% Dcto. en los mejores restaurantes`; sitiosTotales.forEach(sitio => { const { comuna, petFriendly, tarjetas } = procesarDescripcion(sitio.descripcion); const tarjetasData = tarjetas.map(t => normalizarTarjeta(t)).filter(Boolean).join(','); const categoriasData = (sitio.tags || []).map(tag => tag.id).join(','); //agregar texto extra en el campo telefono const partesDescuento = sitio.telefono.split('|'); // 1. NUEVO: Tomamos solo la parte del texto antes del "|" const infoDescuento = partesDescuento[0]; const infoDescuento2 = partesDescuento[1] ? partesDescuento[1].trim() : ''; //validar que el sitio tenga la palabra "Hasta" const tieneHasta = infoDescuento.includes("Hasta"); //validar que tiene % const tienePorcentaje = infoDescuento.toLowerCase().includes("%"); //validar que tiene $ const tieneDolar = infoDescuento.toLowerCase().includes("$"); const descuentoHasta = infoDescuento.replace("Hasta", ""); const descuento = descuentoHasta.replace("%", ""); const descuentoDolar = descuento.replace("$", ""); const descuentofinal = descuentoDolar.replace("Dcto.", ""); const descuentofinal2 = tieneDolar ? '$' + descuentofinal : descuentofinal; const especialidadLower = sitio.especialidad.toLowerCase(); const diasMencionados = especialidadLower.split(/ y |, | todos los |\s+/g).map(d => d.trim()).filter(d => diasSemana.includes(d)); const htmlHasta = tieneHasta ? '<h5 class="headline-small sc-dcto-aon" style="line-height: 1; margin-bottom: -5px;">Hasta</h5>' : ''; const htmltipodescuento = tienePorcentaje ? `<span class="headline-large sc-porcentaje-aon" style="margin-top: 10px;">%</span>` : ''; const htmltipodescuento2 = tieneDolar ? `<span class="headline-large pr-2">&dollar;</span>` : ''; const codigoValido = sitio.nombre_original && sitio.nombre_original.trim().toLowerCase() !== "null" && sitio.nombre_original.trim() !== ""; const htmlCodigoNombre = codigoValido ? `<h6 class="px-2 py-3">${sitio.nombre_original.trim()}</h6>` : ''; const gourpetDiv = ''; if (diasMencionados.includes(diaActual) || especialidadLower.includes("días")) { // Template para Carrusel const carouselCard = ` <div class="item sitio-carusel px-1" data-region="${sitio.id_region}"> <div class="marketing-card mb-3 h-100 animate__animated animate__fadeIn"> <a onclick="verDetalles('${sitio.id_sitio}')"> <div class="scotia-box-float" style="overflow: hidden;"> <div class="scotia-plum-color text-center sc-d-flex py-2 justify-content-center align-items-center text-uppercase"> <h6 class="subtitle-2 ml-3" data-especialidad="${sitio.nombre}">${sitio.nombre}</h6> </div> <div class="scotia-plum text-center sc-d-flex py-2 justify-content-center text-white align-items-center text-white"> <span class="iconcanvas-icon-calendar"></span> <h6 class="subtitle-2 ml-3" data-especialidad="${sitio.especialidad.toLowerCase()}">${sitio.especialidad}</h6> </div> <div class="p-24 scotia-light-bg" style="min-height:240px;display:flex;flex-direction:column;"> ${htmlHasta} <div class="sc-d-flex sc-align-items-center py-12"> <div class="headline-large sc-number-aon sc-align-items-center pr-12"> ${descuentofinal2} </div> <div class="sc-d-flex sc-flex-column">${htmltipodescuento}<span class="headline-small sc-dcto-aon">Dcto.</span></div> </div> ${htmlCodigoNombre} </div> </div> </a> </div> </div>`; carousel.insertAdjacentHTML('beforeend', carouselCard); } // Template para Panel-1 const panelCard = ` <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-6 scotia-col-lg-3 marketing-card mb-3 h-100 animate__animated animate__fadeIn sitio" data-nombre="${sitio.nombre}" data-region="${sitio.id_region}" data-tarjetas="${tarjetasData}" data-categorias="${categoriasData}"> <a onclick="verDetalles('${sitio.id_sitio}')"> <div class="scotia-box-float" style="overflow: hidden;"> <div class="p-0"> <img src="${sitio.imagen}" alt="${sitio.nombre} ${sitio.especialidad}" class="img-fluid"> </div> <div class="scotia-charcoal text-center sc-d-flex py-2 justify-content-center align-items-center text-white"> <span class="iconcanvas-icon-calendar"></span> <h6 class="subtitle-2 ml-3" data-especialidad="${sitio.especialidad.toLowerCase()}">${sitio.especialidad}</h6> </div> <div class="p-24 scotia-light-bg" style="min-height:220px;display:flex;flex-direction:column;"> <h3 class="body-1 pb-12" style="font-weight: bold;">${sitio.nombre}</h3> <h3 class="headline-small pb-12">${sitio.telefono}</h3> <div class="row justify-content-center align-items-center mb-12 d-none"> <div class="col-2 px-2"> <img src="https://beneficios.scotiabank.cl/scclubfront/resource/ruta/Direccion.png" class="img-fluid" width="23px"> </div> <div class="col-10 pl-0"> <p class="body-2" style="text-align: left;"> ${comuna.length > 1 ? 'Sucursales' : comuna[0]} </p> </div> </div> ${gourpetDiv} <span class="sc-d-block text-right" style="margin-top:auto;"> <img src="https://beneficios.scotiabank.cl/scclubfront/resource/ruta/Arrow-Rosa.png" alt="" class="img-fluid align-items-center" width="18px"> </span> </div> </div> </a> </div>`; panel1.insertAdjacentHTML('beforeend', panelCard); }); // Inicializar Owl Carousel $(document).ready(function() { $('.carousel-sitios').owlCarousel({ margin: 0, nav: false, loop: false, dots: true, autoplay: true, autoplayTimeout: 5000, autoplayHoverPause: true, autoHeight: true, responsive: { 0: { items: 1 }, 600: { items: 3 }, 1000: { items: 5 } } }); }); </script> <script> $( document ).ready(function() { // poblarSelectComunas(document.getElementById('select-comuna'), '100'); $("#buscador").on("keyup", function() { filtrarSitios(); }); let sitiosInit = Array.from(document.getElementsByClassName('sitio')); const sitiosHTML = document.createDocumentFragment(); sitiosInit.forEach(sitio => sitiosHTML.appendChild(sitio.cloneNode(true))); // /* filtro por categorias */ $('#select-categoria-sitios').on('change', function() { filtrarSitios(); }); $('#select-dia').on('change', function() { filtrarSitios(); }); $('#select-tarjeta').on('change', function() { filtrarSitios(); }); // $('#select-comuna').on('change', function() { // filtrarSitios(); // }); // Función combinada de filtrado function filtrarSitios() { const diaSeleccionado = $('#select-dia').val().toLowerCase(); const diaSeleccionadoNormalizado = normalizarTexto(diaSeleccionado); const categoriaSeleccionada = $('#select-categoria-sitios').val(); const tarjetaSeleccionada = $('#select-tarjeta').val(); // const comunaSeleccionada = $('#select-comuna').val(); const busqueda = $('#buscador').val().toLowerCase(); const sitiosFiltrados = Array.from(sitiosHTML.children).filter(sitio => { const nombre = sitio.getAttribute('data-nombre').toLowerCase(); const tarjetasSitio = (sitio.getAttribute('data-tarjetas') || '').split(',').map(t => t.trim()).filter(Boolean); const categoriasSitio = (sitio.getAttribute('data-categorias') || '').split(',').map(categoria => categoria.trim()).filter(Boolean); const especialidad = sitio.querySelector('.subtitle-2').textContent.toLowerCase(); const especialidadNormalizada = normalizarTexto(especialidad); const aplicaTodosLosDias = especialidadNormalizada.includes('todos los dias'); const comuna = procesarDescripcion(sitiosTotales.find(s => s.id_sitio == sitio.querySelector('a').onclick.toString().match(/'(\d+)'/)[1]).descripcion).comuna.map(c => c.toLowerCase()); // Filtros const coincideDia = diaSeleccionado === 'all' || aplicaTodosLosDias || especialidadNormalizada.includes(diaSeleccionadoNormalizado); const coincideCategoria = categoriaSeleccionada === 'todas' || categoriasSitio.includes(categoriaSeleccionada); const coincideTarjeta = coincideFiltroTarjeta(tarjetasSitio, tarjetaSeleccionada); const coincideBusqueda = nombre.includes(busqueda) || especialidad.includes(busqueda); return coincideDia && coincideCategoria && coincideTarjeta && coincideBusqueda; }); // Actualizar vista const contenedor = document.getElementById('panel-1'); contenedor.innerHTML = ''; sitiosFiltrados.forEach(sitio => contenedor.appendChild(sitio.cloneNode(true))); } function normalizarTexto(texto) { return (texto || '').normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase(); } }); </script> <div id="sitio-detalle" class="d-none"> <!-- ... mismo contenido inicial ... --> <div class="sc-container-fluid sc-d-sm-block sc-d-md-block sc-d-lg-flex sc-flex-sm-row-reverse sc-align-items-center pb-xs-30 p-0 scotia-charcoal"> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-6"> <img src="../../resource/ruta/Demencia-RutaGourmet-banner.jpg" class="img-fluid w-100 sc-max-height"> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-5 p-24 py-xs-12 text-white"> <div class="sc-box-bannerhero p-xs-24 m-xs-12"> <h1 class="headline-medium pr-36 text-white d-none"> <span id="detalle-banner-nombre"></span> </h1> <h1 class="headline-medium pb-12 pr-36"> <span id="detalle-banner-dcto"> 50% Dcto. </span> <span id="detalle-banner-dias"></span> </h1> <p class="body-2 pb-36" id="detalle-vigencia">*Válido hasta el 31 de marzo de 2025.</p> <div class="sc-d-flex"> <button class="scotia-button pill-primary-button mr-3" onclick="volver()">Volver</button> </div> </div> </div> </div> <section class="scotia-white-bg"> <div class="scotia-col-md-10 sc-container py-36"> <h5 class="headline-medium text-center pt-36 px-54" style="font-weight: bold;"> Con Scotiabank tienes beneficios <br> exclusivos en <span id="detalle-bajada-dias"></span> </h5> </div> </section> <div class="sc-container"> <div class="row justify-content-center scotia-black"> <div class="scotia-col-md-6 mb-36"> <div id="card_horizontal" class="scotia-box-float sc-d-sm-block p-36 scotia-light-bg"> <div > <div class="body-1 pb-12" style="font-weight: bold;">Descripción del beneficio </div> <div class="caption pb-36" id="descripcion_beneficio">No acumulable con otras promociones y/o convenios. En caso de existir un descuento superior, se aplicará el más alto.</div> </div> <div class="scotia-light-bg"> <h6 class="pb-2" style="font-weight: bold;">Detalle del Beneficio </h6> <div id="especificaciones"></div> </div> </div> </div> <div class="scotia-col-md-6 mb-36"> <div id="card_horizontal" class="scotia-box-float sc-d-sm-block sc-d-md-flex sc-d-lg-flex p-36 scotia-light-bg"> <div class="scotia-light-bg"> <div class="row justify-content-center py-12"> <div class="col-2 px-0"><img src="https://beneficios.scotiabank.cl/scclubfront/resource/ruta/Website.png" class="img-fluid mx-auto d-flex" width="30px"></div> <div class="col-10 pl-0"> <div class="body-1 pb-12" style="font-weight: bold;">¿Cómo usar el Beneficio? </div> <div class="caption pb-36" id="detalle_como_usar"> COMO USAR </div> </div> </div> <div class="row justify-content-center py-12 d-none" data-website> <div class="col-2 px-0"> <img src="https://beneficios.scotiabank.cl/scclubfront/resource/ruta/Website.png" class="img-fluid mx-auto d-flex" width="25px"> </div> <div class="col-10 pl-0"> <p class="caption" style="text-align: left; font-weight: bold;"> Website:<br> <a style="font-weight: normal;" href="" target="_blank"></a> </p> </div> </div> <div class="row justify-content-center py-12 d-none"> <div class="col-2 px-0"> <img src="../../resource/ruta/Direccion.png" class="img-fluid mx-auto d-flex" width="25px"> </div> <div class="col-10 pl-0"> <p class="caption" style="text-align: left; font-weight: bold;"> Dirección(es):<br> <span style="font-weight: normal;" data-direccion class="direcciones-container"></span> </p> </div> </div> <div class="row justify-content-center py-12"> <div class="col-2 px-0"> <img src="https://beneficios.scotiabank.cl/scclubfront/resource/ruta/Direccion.png" class="img-fluid mx-auto d-flex" width="25px"> </div> <div class="col-10 pl-0"> <div class="caption" style="text-align: left; font-weight: bold;"> Dirección(es):<br> <div style="font-weight: normal;" id="detalle_direcciones"></div> </div> </div> <script> (function() { const target = document.getElementById('detalle_direcciones'); if (target) { const observer = new MutationObserver(function() { const text = target.textContent.replace(/<[^>]*>/g, '').trim().toLowerCase(); const row = target.closest('.row'); if (row) { if (text === 'x' || text === '') { row.classList.add('d-none'); } else { row.classList.remove('d-none'); } } }); observer.observe(target, { childList: true, characterData: true, subtree: true }); } })(); </script> </div> <div class="row justify-content-center py-18"> <div class="col-12"> <p class="caption" style="text-align: left; font-weight: bold;"> <span id="detalle-texto-tarjetas"></span>. </p> </div> </div> <div class="py-12 d-flex justify-content-start align-items-end" id="tarjetas" style="flex-wrap:wrap;"> </div> <div class="row justify-content-center py-18"> <button sec:authorize="isAuthenticated()" id="btn-obtener-beneficio" style="display:hidden;" type="submit" form="formulario-canje" class="scotia-button button-primary-red btn btn-block mb-2 btn-obtener-beneficio" disabled>Generar cupón</button> <button sec:authorize="!isAuthenticated()" style="display:hidden;" type="button" class="scotia-button button-primary-red btn btn-block mb-2 btn-obtener-beneficio" onclick="cerrarEIniciarSesion()">Inicia sesión para obtener tu cupón</button> </div> </div> </div> </div> </div> </div> <!-- ... resto del contenido ... --> <section class="sc-container-fluid scotia-document"> <div class="sc-container mt-4 py-54"> <h6 class="pb-36" style="font-weight: bold;">Términos y condiciones </h6> <!--aca van las condiciones legales --> <p class="legal mb-24" style="text-align: justify;" id="condiciones-legales"> </p> </div> </section> </div> <!-- /detalles del sitio --> </section> <script> document.addEventListener('DOMContentLoaded', function () { function ajustarTexto(elemento, minFontSize = 10, maxFontSize = 24) { let fontSize = maxFontSize; elemento.style.fontSize = fontSize + 'px'; const parent = elemento.parentElement; while ((elemento.scrollHeight > parent.clientHeight || elemento.scrollWidth > parent.clientWidth) && fontSize > minFontSize) { fontSize -= 0.5; elemento.style.fontSize = fontSize + 'px'; } } document.querySelectorAll('.sc-number-aon').forEach(el => { const contenido = el.textContent.trim(); if (isNaN(contenido)) { // Quitar el bloque de porcentaje const bloquePorcentaje = el.parentElement.querySelector('.sc-flex-column'); if (bloquePorcentaje) bloquePorcentaje.remove(); // Estilos finales el.style.whiteSpace = 'normal'; el.style.wordBreak = 'break-word'; el.style.lineHeight = '1'; // Más compacto el.style.textAlign = 'left'; el.style.display = 'block'; el.style.fontSize = '24px'; // Tamaño inicial más contenido // Ajustar tamaño si es necesario ajustarTexto(el); } }); }); </script> </div> <!-- FIN_TEST_RUTA --> <th:block th:if="${(authenticated && #arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') )}"> <style> .headline-medium { font-size: 24px; font-weight: 700; letter-spacing: 0.5px; } .color-etiquetas { color:#38483f; } .etiqueta:hover { background-color: #38483f !important; color: var(--white) !important; } .etiqueta.active { background-color: #38483f !important; color: var(--white) !important; } .card-beneficio { background-color:#fff; border:1px solid #E2E8EE; box-shadow:0 2px 10px 0 rgb(0 34 91 / 11%); } .text-beneficio { font-size: 18px; height:130px; } </style> <script> var etiquetasDescuentos = []; for (var i = 0; i < tags.length; i++) { var tag = tags[i]; etiquetasDescuentos.push(crearEtiqueta(tag, 'singular')); } var cardsDescuentos = []; for (var i = 0; i < descuentos.length; i++) { var descuento = descuentos[i]; cardsDescuentos.push(crearBeneficio(descuento, 'singular')); } </script> <!-- Beneficios clientes access , singular --> <section th:id="|section-submenu-${submenuurl.id}|" class="descuentos"> <section style="background-color: #38483f;"> <div class="container"> <div class="row justify-content-center py-5"> <div class="col-md-12 text-center"> <h2 class="headline-medium text-center text-white">Revisa todos los beneficios que tenemos para ti</h2> </div> </div> </div> </section> <section style="background-color: #f1f1f1;"> <div class="container-fluid"> <div class="row justify-content-center"> <div class="col-md-12"> <div class="row justify-content-center" id="row-etiquetas"> </div> </div> </div> </div> </section> <div class="container"> <div class="row my-5" id="row-descuentos"> </div> </div> </section> <script> $(document).ready(function() { $('#row-etiquetas').append(etiquetasDescuentos); $('#row-descuentos').append(cardsDescuentos); $('#row-etiquetas').on('click', '.etiqueta', function(event) { document.getElementById('row-descuentos').innerHTML = ''; if($(this).hasClass( "active" )){ $(this).removeClass( "active" ); $(this).children().first().removeClass( "animate__animated animate__fadeInUp" ); $('#row-descuentos').append(cardsDescuentos); }else{ for(let etiqueta of document.getElementsByClassName('etiqueta')){ if(etiqueta.classList.contains('active')){ etiqueta.classList.remove('active'); } } $(this).addClass( "active" ); $(this).children().first().addClass( "animate__animated animate__fadeInUp" ); for(let descuento of cardsDescuentos){ if(descuento.classList.contains($(this).attr('data-nombre'))){ document.getElementById('row-descuentos').appendChild(descuento); } } /* gtag('event', 'etiquetas-descuentos', { event_label: $(this).attr('data-nombre'), event_category: 'ecommerce' }); */ } }); }); </script> <!-- /Beneficios clientes access , singular --> </th:block> <th:block th:if="${(!authenticated) || (authenticated && !#arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') )}"> <style> .etiqueta:hover > div { background-color: #E0E0E0 !important; color: var(--morado) !important; } .etiqueta.active > div { background-color: var(--morado) !important; color: var(--white) !important; } </style> <section th:id="|section-submenu-${submenuurl.id}|" class="descuentos p-0 d-none"> <section class="" id="submenu-banner" th:if="${submenuurl.id == 6654}"> <div class="sc-container-fluid sc-d-sm-block sc-d-md-block sc-d-lg-flex sc-flex-sm-row-reverse sc-align-items-center pb-xs-30 p-0" th:style="|background-color:${submenuurl.color};|"> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-6 p-0"> <img th:src="@{${submenuurl.imagen}}" class="img-fluid w-100 sc-max-height" th:alt="${submenuurl.nombre}"> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-12 scotia-col-lg-5 py-xs-12"> <div class="sc-box-bannerhero p-24 p-xs-24 m-xs-12" th:with="descripcionPartes=${#strings.arraySplit(submenuurl.descripcion, '|')}"> <span class="" title="Viajes Scotia"> <img id="" src="https://media.staticontent.com/media/pictures/c7448576-4ef8-4167-b3eb-a135ef2bab0a" alt="logo" style="width: 130px;"> </span> <h1 class="status-badge-outlined badge-outlined-light mb-12 d-none" th:text="${descripcionPartes.length > 0 ? descripcionPartes[0] : ''}">Nuevo Scotia Marketplace</h1> <h1 class="headline-medium pb-12 pr-24 scotia-charcoal-color pt-12" th:text="${descripcionPartes.length > 1 ? descripcionPartes[1] : submenuurl.descripcion}"> ScotiaRewards </h1> <p class="body-2 pb-36 scotia-charcoal-color" th:text="${descripcionPartes.length > 2 ? descripcionPartes[2] : ''}">Pueden participar los clientes </p> <div class="sc-d-block sc-d-sm-block sc-d-md-flex sc-d-lg-flex"> <a href="https://scotiabank.despegar.cl/" class="sc-d-block sc-d-sm-block text-center scotia-button pill-primary-button mt-xs-12" style="border-radius: 25px;" target="_blank">Ir a Viajes Scotia</a> </div> </div> </div> </div> </section> <div class="sc-container" id="descuentos"> <div class="sc-row justify-content-center pt-5" th:if="${submenuurl.id != 6654}"> <div class="scotia-col-12 col-md-8"> <h4 th:if="${submenuurl.descripcion == null || #strings.isEmpty(submenuurl.descripcion)}" class="scotia-headline h4-responsive text-center m-0">Increíbles beneficios pagando con tus tarjetas Scotiabank</h4> <h4 th:if="${submenuurl.descripcion != null && !#strings.isEmpty(submenuurl.descripcion)}" th:text="${submenuurl.descripcion}" class="scotia-headline h4-responsive text-center m-0"></h4> </div> </div> <div class="sc-row justify-content-center pt-5" th:if="${ submenuurl.id == 6654}"> <div class="scotia-col-12 col-md-8"> <h4 class="scotia-headline h4-responsive text-center m-0">Además, increíbles beneficios pagando con tus Tarjetas Scotiabank.</h4> </div> </div> <div class="sc-container-fluid d-none"> <div class="card border shadow-none"> <div class="card-body"> <div class="accordion" id="accordioncategoria"> <div class="card shadow-none"> <div class="card-header p-0 bg-white" id="headingcategoria"> <h5 class="mb-0"> <button class="btn btn-link p-0 d-flex align-items-center justify-content-between w-100 pr-2 collapsed" style="text-decoration: none;" type="button" data-toggle="collapse" data-target="#collapsecategoria" aria-expanded="false" aria-controls="collapsecategoria"> <h5 class="scotia-headline">Categorías</h5> <i class="fas fa-chevron-down d-flex d-sm-flex d-md-none"></i> </button> </h5> </div> <div id="collapsecategoria" class="collapse show" aria-labelledby="headingcategoria" data-parent="#accordioncategoria"> <div class="card-body px-0" id="etiquetas"></div> </div> </div> </div> </div> </div> </div> <div class="py-3 animate__animated animate__fadeIn"> <!-- filtros, estos son dibujados mediante javascript js/beneficios.js --> <div class="sc-row justify-content-center mb-4"> <div class="scotia-col-md-12"> <div class="sc-container"> <div class="sc-row justify-content-center"> <div class="scotia-col-md-4 mt-2"> <div class="input-group"> <select class="form-control form-control-lg scotia-black-tint" style="display:block!important" id="select-categoria" onclick="cambiarCategoria()"> </select> </div> </div> <div class="scotia-col-md-8 mt-2"> <div class="input-group mb-3"> <input id="buscador" type="text" class="form-control py-4" placeholder="Busca tu beneficio aquí..." aria-label="Busca tu beneficio aquí" style="border-radius: 6px 0px 0px 6px;"> <div class="input-group-append"> <span class="input-group-text scotia-ocean text-white px-4" style="border-radius: 0px 6px 6px 0px;"><i class="fas fa-search" aria-hidden="true"></i></span> </div> </div> </div> </div> </div> </div> </div> <!-- /filtros --> <!-- Descuentos , estos son dibujados mediante javascript js/beneficios.js --> <div id="row-descuentos" class="sc-row"></div> <!-- / Descuentos --> <!-- Paginador --> <div class="container"> <nav aria-label="..." class="mt-4 d-flex flex-row-reverse justify-content-center"> <ul class="pagination justify-content-center d-none" id="paginador-siguiente" onclick="paginarSiguiente()"> <li class="page-item"> <a role="button" class="page-link font-weight-bold btn-morado ml-3 btn-rounded btn-sm text-white" id="btn-paginador-siguiente" aria-disabled="true">Siguiente</a> </li> </ul> <ul class="pagination justify-content-center" id="paginador"></ul> <ul class="pagination justify-content-center d-none" id="paginador-anterior"> <li class="page-item"> <a role="button" class="page-link font-weight-bold btn-morado mr-3 btn-rounded btn-sm text-white" id="btn-paginador-anterior" onclick="paginarAnterior()" >Anterior</a> </li> </ul> </nav> </div> <!-- /Paginador --> <!-- /Descuentos --> </div> <!-- /Calugas --> </div> <!-- detalle del beneficio --> <style th:inline="text"> #sitios-detalle-banner{ background-image:url([[@{/resource/beneficios/DetalleBeneficios.webp}]]); background-repeat:no-repeat; } </style> <div id="sitios-detalle" class="animate__animated animate__fadeIn d-none"> <div class="sc-container-fluid py-42 sc-d-none sc-d-sm-none sc-d-md-none sc-d-lg-block" id="sitios-detalle-banner"> <div class="sc-container"> <div class="sc-row"> <div class="scotia-col-md-7"> <div class="scotia-box-solid p-36 pr-42"> <h6 class="subtitle-1 scotia-black-tint d-none" id="detalle-antetitulo">Válido hasta el 31 de enero de 2023</h6> <h3 class="headline-large scotia-black-tint"><span class="scotia-black" id="detalle-descuento">40% de Dcto.</span> en <span id="detalle-titulo">Cocina de Javier</span></h3> <h6 class="body-1 scotia-black-tint mt-2" id="detalle-dias">Todos los lunes</h6> <div class="mt-42 sc-d-flex"> <button class="scotia-button scotia-outline-black mr-3" onclick="volver()">Volver</button> <button class="scotia-button scotia-fill-red" onclick="enfocarDetalles()">Ver beneficio</button> </div> </div> </div> <div class="scotia-col-md-5 sc-d-flex sc-justify-content-center sc-align-items-center"> <div class="scotia-box-solid p-1"> <img src="" class="img-fluid animate__animated animate__fadeIn" id="detalle-imagen-1"> </div> </div> </div> </div> </div> <div class="sc-container" id="detalles-acordeon"> <div class="sc-row py-42 flex-column-reverse flex-md-row"> <div class="scotia-col-md-8 mt-2"> <div class="scotia-box-solid p-36 mb-3"> <h6 class="headline-small pb-2">Descripción del beneficio</h6> <div id="detalle-descripcion"> </div> </div> <div class="scotia-box-solid p-36"> <h4 class="headline-small scotia-black pb-4">Detalle del Beneficio</h4> <div class="sc-accordion sc-d-block w-100 mb-12"> <div class="sc-card-accordion"> <div class="sc-card-header sc-position-relative py-24 subtitle-1 scotia-black-tint"> ¿Cómo usar el Beneficio ? <i class="iconcanvas-icon-chevrondown scotia-black-tint sc-position-absolute"></i> </div> <div class="sc-card-content py-24"> <p class="body-2 scotia-black" id="detalle-comousar"> </p> </div> </div> <div class="sc-card-accordion"> <div class="sc-card-header sc-position-relative py-24 subtitle-1 scotia-black-tint"> Condiciones <i class="iconcanvas-icon-chevrondown scotia-black-tint sc-position-absolute"></i> </div> <div class="sc-card-content py-24"> <p class="body-2 scotia-black" id="detalle-condiciones"> </p> </div> </div> <div class="sc-card-accordion"> <div class="sc-card-header sc-position-relative py-24 subtitle-1 scotia-black-tint"> Direcciones <i class="iconcanvas-icon-chevrondown scotia-black-tint sc-position-absolute"></i> </div> <div class="sc-card-content py-24"> <p class="body-2 scotia-black" id="detalle-direcciones"> </p> </div> </div> <div class="sc-card-accordion"> <div class="sc-card-header sc-position-relative py-24 subtitle-1 scotia-black-tint"> Términos y Condiciones <i class="iconcanvas-icon-chevrondown scotia-black-tint sc-position-absolute"></i> </div> <div class="sc-card-content py-24"> <p class="body-2 scotia-black" id="detalle-terminos"> </p> </div> </div> </div> </div> </div> <div class="scotia-col-md-4 mt-2"> <div class=""> <img src="" class="img-fluid animate__animated animate__fadeIn" id="detalle-imagen-2"> </div> <button sec:authorize="isAuthenticated()" id="btn-obtener-beneficio" style="display:hidden;" type="submit" form="formulario-canje" class="scotia-button button-primary-red btn btn-block mb-2 btn-obtener-beneficio" disabled>Generar cupón</button> <button sec:authorize="!isAuthenticated()" style="display:hidden;" type="button" class="scotia-button button-primary-red btn btn-block mb-2 btn-obtener-beneficio" onclick="cerrarEIniciarSesion()">Inicia sesión para obtener tu cupón</button> <h6 class="headline-small scotia-black pt-36 pb-2">Exclusivo con tus Tarjetas Scotiabank:</h6> <div id="imagenes-tarjetas" class="row"> <img th:src="@{/resource/tarjetas/Tarjetas2.png}" class="img-fluid" id="detalle-imagen-3"> </div> </div> </div> <div class="sc-container py-2 sc-d-block sc-d-md-none sc-d-lg-none sc-d-sm-block text-center"> <button class="scotia-button scotia-outline-black mr-3" onclick="volver()">Volver</button> </div> </div> </div> <!-- /detalles del beneficio --> </section> <!-- /Modal RRSS --> <div class="modal fade" id="modalredessociales" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" style="display: none;" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content" style="border-radius: 6px;"> <div class="modal-body"> <button type="button" class="close py-2 px-3" data-dismiss="modal" aria-label="Close" style="position:absolute;right:2px;top:10px;background-color:white;color:black;border:1px solid black;border-radius:75%;z-index: 2;"> <i class="fas fa-times black-text" style="font-size:12px;"></i> </button> <br> <h5 class="text-muted my-4 text-left">Comparte este beneficio de Scotiaclub con tus amigos y familia</h5> <div class="row align-items-center my-3 d-none"> <div class="col-md-4 mb-2"> <img id="imagen-desc-link" src="" class="img-fluid rounded" style=""> </div> <div class="col-md-8"> <h6 class="scotia-headline" id="modal-titulo"></h6> <h6 class="" id="modal-subtitulo"></h6> </div> </div> <h6 class="scotia-headline">Redes sociales</h6> <div class="row my-3"> <div class="col-6"> <a id="btn-facebook" type="button" class="d-flex align-items-center justify-content-start btn-redsocial" target="_blank"> <span class="btn-floating btn-fb"><i class="fab fa-facebook-f"></i></span> <h6 class="mt-2 font-weight-bold">Facebook</h6> </a> </div> <div class="col-6"> <a id="btn-twitter" type="button" class="d-flex align-items-center justify-content-start btn-redsocial" target="_blank"> <span class="btn-floating btn-tw"><i class="fab fa-twitter"></i></span> <h6 class="mt-2 font-weight-bold">Twitter</h6> </a> </div> </div> <h6 class="scotia-headline">Mensajería</h6> <div class="row my-3"> <div class="col-6"> <a id="btn-whatsapp" type="button" target="_blank" class="d-flex align-items-center justify-content-start btn-redsocial" title="Ir a Whatsapp"> <span class="btn-floating success-color" type="button" role="button"><i class="fab fa-whatsapp"></i></span> <h6 class="mt-3 font-weight-bold">WhatsApp</h6> </a> </div> <div class="col-6"> </div> </div> </div> </div> </div> </div> <script th:inline="javascript"> /* Se agregan las etiquetas */ var etiquetasDescuentos = []; for (var i = 0; i < tags.length; i++) { var tag = tags[i]; etiquetasDescuentos.push(crearEtiqueta(tag, 'masivo')); } /* Se crean las cards descuentos de esta vista */ var cardsDescuentos = []; for (var i = 0; i < descuentos.length; i++) { var descuento = descuentos[i]; cardsDescuentos.push(crearBeneficio(descuento, 'masivo')); } $('.btn-redsocial').on('click', function () { $('#modalredessociales').modal('hide'); }); function verLinks(id){ var desc; for(let descuento of descuentos){ if(descuento.id == id){ desc = descuento; break; } } gtag('event', 'compartir', { event_label: desc.titulo, event_category: 'ecommerce' }); document.getElementById('imagen-desc-link').setAttribute('src', desc.imagen); document.getElementById('modal-titulo').textContent = desc.titulo; document.getElementById('modal-subtitulo').textContent = desc.descuento; document.getElementById('btn-twitter').setAttribute('href', 'https://twitter.com/share?url=https://scotiaclub.cl/scclubfront'+[[${menuurl.link}]]+[[${submenuurl.link}]]+'/detalle/'+id+'&text=¡Revisa este beneficio o descuento que esta increíble!'); document.getElementById('btn-whatsapp').setAttribute('href', 'https://api.whatsapp.com/send?text=Revisa%20este%20beneficio%20o%20descuento%20que%20esta%20increible!%20https://scotiaclub.cl/scclubfront'+[[${menuurl.link}]]+[[${submenuurl.link}]]+'/detalle/'+id); document.getElementById('btn-facebook').setAttribute('href', 'https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fscotiaclub.cl%2Fscclubfront%2Fcategoria%2F'+[[${menuurl.strIndex}]]+'%2F'+[[${submenuurl.strIndex}]]+'%2F'+'detalle%2F'+id+'&amp;src=sdkpreparse'); $('#modalredessociales').modal('show'); } /* funciones para paginar anterior y siguiente, esto no se esta usando por pedido del banco */ function paginarAnterior(){ var pageButtons= document.querySelectorAll('.boton-paginador'); var arrayPos = 0; for (var p of pageButtons) { if(p.textContent == '1' && p.classList.contains('activo')){ break; } if(p.classList.contains('activo')){ arrayPos--; var position = parseInt(p.textContent); var botonAnterior = pageButtons[arrayPos]; botonAnterior.click(); break; } arrayPos++; } } function paginarSiguiente(){ var pageButtons= document.querySelectorAll('.boton-paginador'); var arrayPos = 0; var maxPos = pageButtons.length; for (var p of pageButtons) { if(parseInt(p.textContent) == maxPos && p.classList.contains('activo')){ break; } if(p.classList.contains('activo')){ arrayPos++; var position = parseInt(p.textContent); var botonSiguiente = pageButtons[arrayPos]; botonSiguiente.click(); break; } arrayPos++; } } /* setup del paginador -true: habilita el paginador y los botones de cada pagina, -false: deshabilita el paginador y sus funciones */ var habilitarPaginador = false; function paginar(listaElementos) { /* Variables generales */ var list_element = document.getElementById('row-descuentos'); var paginador_element = document.getElementById('paginador'); var current_page = 1; var rows = 999; // cantidad de cards x pagina, x defecto muestra todo en una if(habilitarPaginador) { rows = 9; // son 9 cards x pagina paginador_element.classList.remove('d-none'); } else { rows = 999; paginador_element.classList.add('d-none'); } function desplegarLista(items, wrapper, rows_per_page, page){ wrapper.innerHTML=""; page--; var start = rows_per_page * page; var end = start + rows_per_page; var paginatedItems= items.slice(start, end); for(var i = 0; i < paginatedItems.length; i++){ var item = paginatedItems[i]; /* se envia al wrapper */ wrapper.appendChild(item); } } /* función para crear botones del paginador */ function createPaginationButton(page, items){ var button = document.createElement('li'); button.classList.add('page-item'); var aButton= document.createElement('a'); aButton.classList.add('page-link'); aButton.classList.add('boton-paginador'); aButton.setAttribute('role', 'button'); aButton.innerHTML = page; /* vemos si es pagina activa */ if(current_page == page){ aButton.classList.add('btn-morado', 'rounded', 'page-link', 'font-weight-bold', 'text-white', 'activo'); } button.addEventListener('click', function(){ current_page=page; desplegarLista(items, list_element, rows, current_page); var current_btn = document.querySelector('.activo'); current_btn.classList.remove('btn-morado', 'rounded' ,'font-weight-bold', 'text-white', 'animated', 'heartBeat', 'activo'); aButton.classList.add('btn-morado' , 'rounded','font-weight-bold', 'text-white', 'animated', 'heartBeat', 'activo') }) button.appendChild(aButton); return button; } /* funcion para setear el paginador */ function setupPaginador(items, wrapper, rows_per_page){ wrapper.innerHTML=""; var page_count = Math.ceil(items.length / rows_per_page); for (var i= 1; i < page_count + 1; i++){ var btn = createPaginationButton(i , items); wrapper.appendChild(btn); } } desplegarLista(listaElementos, list_element, rows, current_page); setupPaginador(listaElementos, paginador_element, rows) } function mostrarCategorias(){ if(window.innerWidth < 763){ document.getElementById('collapsecategoria').classList.remove('show'); } else { document.getElementById('collapsecategoria').classList.add('show'); } } /* se cierra la sección categoría en mobile */ window.addEventListener("resize", mostrarCategorias()); $(document).ready(function() { var cardSeleccionadas = cardsDescuentos; $('#etiquetas').append(etiquetasDescuentos); poblarSelectCategorias(document.getElementById('select-categoria')); paginar(cardSeleccionadas); $('#buscador').keyup(function () { var cardEncontradas = []; var value = $(this).val().toLowerCase(); for(var i=0; i<= cardSeleccionadas.length; i++){ if(typeof cardSeleccionadas[i] != 'undefined'){ var card = cardSeleccionadas[i]; /* parametrización de la busqueda*/ var information = card.getAttribute('data-titulo').toLocaleLowerCase()+card.getAttribute('data-descuento').toLocaleLowerCase(); var findPosition = information.search(value); if(findPosition > -1) { cardEncontradas.push(card); } } } /* si el buscador esta vacio mostrará todas las cards de la categoría actual */ if(value != '' ){ if(cardEncontradas.length > 0){ paginar(cardEncontradas); }else{ document.getElementById('row-descuentos').innerHTML=""; document.getElementById('paginador').innerHTML=""; var divAviso = document.createElement('div'); divAviso.classList.add('container'); var mensaje = document.createElement('h6'); mensaje.classList.add('font-weight-bolder'); mensaje.textContent='No se encontraron resultados.'; divAviso.appendChild(mensaje); document.getElementById('row-descuentos').appendChild(divAviso); var button = document.createElement('li'); button.classList.add('page-item'); var aButton= document.createElement('a'); aButton.classList.add('page-link'); aButton.classList.add('boton-paginador'); aButton.innerHTML = '0'; button.appendChild(aButton); document.getElementById('paginador').appendChild(button); } }else{ paginar(cardSeleccionadas) } }); /* HAY QUE BORRAR DEL CSS btn.etiqueta */ $(".etiqueta").click(function(){; var etiqueta=$(this).find('.nombre').get(0); if ($(this).hasClass('active')) { $(this).removeClass('active'); etiqueta.classList.remove('animated', 'fadeInLeft'); etiqueta.classList.remove('font-weight-bolder'); cardSeleccionadas=cardsDescuentos; paginar(cardsDescuentos); } else { $(".etiqueta").removeClass('active', 'font-weight-bolder'); $(this).addClass('active'); var lista = document.querySelectorAll('.fadeInLeft'); for(var i= 0; i<=lista.length; i++){ if(typeof lista[i] != 'undefined'){ var noseleccionados = lista[i]; noseleccionados.classList.remove('animated', 'fadeInLeft','font-weight-bolder'); } } etiqueta.classList.add('animated', 'fadeInLeft'); etiqueta.classList.add('font-weight-bolder'); /* Al marcar la opción se registra en Analytics */ gtag('event', 'etiquetas-beneficios', { event_label: $(this).attr('data-nombre'), event_category: 'ecommerce' }); /* se prepara la busqueda de cards */ var nombreEtiqueta = etiqueta.textContent; nombreEtiqueta = nombreEtiqueta.replace(' ','-'); nombreEtiqueta = nombreEtiqueta.replace(' ','-'); nombreEtiqueta = nombreEtiqueta.replace(' ','-'); nombreEtiqueta = nombreEtiqueta.toLowerCase(); cardSeleccionadas = []; for(var i = 0; i<=cardsDescuentos.length; i++){ if(typeof cardsDescuentos[i] != 'undefined'){ var cardDescuento = cardsDescuentos[i]; if(cardDescuento.classList.contains(nombreEtiqueta)){ cardSeleccionadas.push(cardDescuento); } } } paginar(cardSeleccionadas); } }); }); </script> </th:block> <!-- Modal --> <div class="modal fade" id="modalDescuentos" tabindex="-1" role="dialog" aria-label="Descubre tu beneficio" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-body"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <div class="container-fluid pt-5"> <form class="prevent-multiple-submit" autocomplete="off" id="formulario-canje" th:action="@{|${menuurl.link}${submenuurl.link}/canje|}" th:object="${producto}" method="POST"> <input id="id-producto-modal" class="d-none" name="idProducto" required> <div class="row align-items-stretch"> <div class="col-6 pl-0 d-flex flex-column"> <div class="rounded z-depth-1 mb-2 p-3 flex-grow-1 text-center d-flex align-items-center"> <h4 class="mb-0 color-purple text-center font-weight-bold" id="titulo-beneficio-modal"></h4> </div> <div class="bg-morado p-3 text-white text-center rounded z-depth-1"> <h4 class="mb-0 font-weight-bold" id="porcentaje-beneficio-modal"></h4> </div> </div> <div class="col-6 rounded z-depth-1 px-0 d-flex align-items-center"> <img id="imagen-modal" class="img-fluid"> </div> </div> <div class="row pt-3"> <div class="col-12 rounded z-depth-1 mb-3"> <p class="mb-0 py-3" id="descripcion-beneficio-modal"></p> </div> </div> <div class="row"> <div class="col-12 px-0"> <div class="accordion md-accordion" id="accordionEx" role="tablist" aria-multiselectable="true"> <div class="card"> <div class="card-header" role="tab" id="headingOne1"> <a data-toggle="collapse" data-parent="#accordionEx" href="#collapseOne1" aria-expanded="true" aria-controls="collapseOne1"> <h5 class="mb-0 font-weight-bold"> ¿Cómo accedo a este beneficio? <i class="fas fa-angle-down rotate-icon"></i> </h5> </a> </div> <div id="collapseOne1" class="collapse show" role="tabpanel" aria-labelledby="headingOne1" data-parent="#accordionEx"> <div class="card-body" id="acceder-a-beneficio-modal"></div> </div> </div> <div class="card"> <div class="card-header" role="tab" id="headingTwo2"> <a class="collapsed" data-toggle="collapse" data-parent="#accordionEx" href="#collapseTwo2" aria-expanded="false" aria-controls="collapseTwo2"> <h5 class="mb-0 font-weight-bold"> Condiciones <i class="fas fa-angle-down rotate-icon"></i> </h5> </a> </div> <div id="collapseTwo2" class="collapse" role="tabpanel" aria-labelledby="headingTwo2" data-parent="#accordionEx"> <div class="card-body" id="condiciones-comercio-modal"></div> </div> </div> <div class="card"> <div class="card-header" role="tab" id="headingThree3"> <a class="collapsed" data-toggle="collapse" data-parent="#accordionEx" href="#collapseThree3" aria-expanded="false" aria-controls="collapseThree3"> <h5 class="mb-0 font-weight-bold"> Direcciones <i class="fas fa-angle-down rotate-icon"></i> </h5> </a> </div> <div id="collapseThree3" class="collapse" role="tabpanel" aria-labelledby="headingThree3" data-parent="#accordionEx"> <div class="card-body" id="direcciones-modal"></div> </div> </div> <div class="card"> <div class="card-header" role="tab" id="headingFour4"> <a class="collapsed" data-toggle="collapse" data-parent="#accordionEx" href="#collapseFour4" aria-expanded="false" aria-controls="collapseFour4"> <h5 class="mb-0 font-weight-bold"> Términos y condiciones <i class="fas fa-angle-down rotate-icon"></i> </h5> </a> </div> <div id="collapseFour4" class="collapse" role="tabpanel" aria-labelledby="headingFour4" data-parent="#accordionEx"> <div class="card-body" id="terminos-y-condiciones-modal"></div> </div> </div> </div> </div> </div> </form> </div> </div> </div> </div> </div> <!-- /Modal --> <script> $('#row-descuentos').on('click', '.btn-modal-descuento', function() { var id = $(this).data('id-producto'); if(id == 10237){ window.open('https://www.scotiaclub.cl/scclubfront/categoria/tienda/scotiamarket', '_blank'); }else{ for (var i = 0; i < descuentos.length; i++) { var DESCUENTO = descuentos[i]; if (DESCUENTO.id == id) { let direccionesLimpio = DESCUENTO.direcciones.replaceAll('<p>', ''); direccionesLimpio = direccionesLimpio.replaceAll('</p>', ''); let parametrosDirecciones = direccionesLimpio.split('|'); let elementoPrincipal = document.getElementById('imagenes-tarjetas'); elementoPrincipal.innerHTML = ''; if(parametrosDirecciones.length >= 3){ let parametrosTarjetas = parametrosDirecciones[2].split(','); for(let i=0; i<=parametrosTarjetas.lenght; i++){ let tarjetaElement = document.createElement('img'); tarjetaElement.classList.add('img-fluid', 'm-1'); tarjetaElement.src = '/resource/tarjetas/'+parametrosTarjetas[i]+'.svg'; elementoPrincipal.appendChild(tarjetaElement); } }else{ if(DESCUENTO.codigo != null && DESCUENTO.codigo == 'nonpremium'){ let tarjetaElement = document.createElement('img'); tarjetaElement.classList.add('img-fluid', 'm-1'); tarjetaElement.src = '/resource/tarjetas/Tarjetas-Scotia-Simple.webp'; elementoPrincipal.appendChild(tarjetaElement); }else{ let tarjetaElement = document.createElement('img'); tarjetaElement.classList.add('img-fluid', 'm-1'); tarjetaElement.src = '/resource/tarjetas/Tarjetas2.png'; elementoPrincipal.appendChild(tarjetaElement); } } $('#imagen-modal').attr('src', DESCUENTO.imagen); $('#titulo-beneficio-modal').html(DESCUENTO.titulo); $('#descripcion-beneficio-modal').html(DESCUENTO.descripcion); $('#porcentaje-beneficio-modal').html(DESCUENTO.descuento); $('#acceder-a-beneficio-modal').html(DESCUENTO.acceder); $('#condiciones-comercio-modal').html(DESCUENTO.condicionesComercio); $('#direcciones-modal').html(DESCUENTO.direcciones[0]); $('#terminos-y-condiciones-modal').html(DESCUENTO.terminosYCondiciones); $('#id-producto-modal').val(id); if (DESCUENTO.generaCanje) { $('.btn-obtener-beneficio').show(); $('#btn-obtener-beneficio').prop('disabled', false); } else { $('.btn-obtener-beneficio').hide(); $('#btn-obtener-beneficio').prop('disabled', true); } /*gtag('event', 'beneficios', { event_label: DESCUENTO.titulo, event_category: 'ecommerce' }); */ $('#modalDescuentos').modal('show'); break; } } } }); </script> </th:block> <!-- fin tipo 8 --> <x th:case="9" th:remove="tag"> <section th:utext="${submenuurl.informationHtml.html}" id="que-saborista" style="padding: 0%;"></section> </x> <!-- fin tipo 9 --> </th:block> <style type="text/css"> .cr-purple-btn { border-radius: 4px; padding: 8px 2rem; } .tablanueva { border: 1px #d8d6ca1c; margin-bottom: 10px; border-radius: 8px; } </style> <th:block th:with="authenticated=${#authorization.expression('isAuthenticated()')}" > <!--/* VALIDACION CLIENTE NORMAL */--> <th:block th:if="${(!authenticated) || (authenticated && !#arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') ) }" > <style> .scotia-line { width: 100%; border: 1px solid; } .underline { text-decoration: underline; } .sc-link-simple { text-decoration: none; } /* Responsivo */ /* small devices */ @media (min-width: 320px) and (max-width: 480px) {} /* small-medium devices */ @media (min-width: 481px) and (max-width: 767px) {} /* medium devices */ @media (min-width: 768px) and (max-width: 1024px) {} /* large devices */ @media (min-width: 1025px) and (max-width: 1280px) {} /* Xlarge devices */ @media (min-width: 1280px) and (max-width: 2560px) {} </style> <footer> <div class="scotia-line scotia-gris300 mb-120 mb-xs-30"></div> <div class="sc-container"> <div class="sc-row"> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-3 scotia-col-lg-3 mb-xs-42"> <h6 class="body-1 pb-42 scotia-black pb-xs-18 font-weight-bold">Contáctanos</h6> <div class="sc-d-flex"> <i class="iconcanvas-icon-call text-size-24 mr-18"></i> <div class="body-2 scotia-black font-weight-normal">600 600 1100</div> </div> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-3 scotia-col-lg-3 mb-xs-42"> <h6 class="body-1 pb-42 scotia-black pb-xs-18 font-weight-bold">¿Necesitas ayuda?</h6> <ul class="text-left no-list"> <li class="pb-18 font-weight-normal"><a th:href="@{/categoria/todosobrepesosscotia/todosobrepesosscotia}" class="scotia-black clickfollow sc-link-simple caption">Todo sobre ScotiaPesos</a></li> <li class="pb-18 font-weight-normal"><a th:href="@{/categoria/beneficiosscotia/preguntasfrecuentes}" class="scotia-black clickfollow sc-link-simple caption">Preguntas frecuentes</a></li> <li class="pb-18 font-weight-normal"><a th:href="@{https://cdn.aglty.io/scotiabank-chile/scotiabankpdf/PROGRAMA-SCOTIAREWARDS-SCOTIABANK_CHILE.pdf}" target="_blank" class="scotia-black clickfollow sc-link-simple caption">Términos y condiciones</a></li> </ul> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-3 scotia-col-lg-3 mb-xs-42"> <h6 class="body-1 pb-42 scotia-black pb-xs-18 font-weight-bold">Te podría interesar</h6> <ul class="no-list text-left"> <!--<li class="pb-18"><a href="https://www.scotiaclub.cl/scclubfront/categoria/tienda/scotiamarket" class="scotia-black clickfollow sc-link-simple caption">ScotiaMarket</a></li>--> <li class="pb-18 font-weight-normal"><a href="https://www.scotiabankchile.cl/Personas/app-scotia-go" class="scotia-black clickfollow sc-link-simple caption">Descarga App Scotia</a></li> <li class="pb-18 font-weight-normal"><a href="https://banco.scotiabank.cl/mfe/clsales/mfe-onboarding-unico-wpub/" target="_blank" class="scotia-black clickfollow sc-link-simple caption">Hazte Cliente Scotia</a></li> </ul> </div> <div class="scotia-col-12 scotia-col-sm-12 scotia-col-md-3 scotia-col-lg-3 mb-xs-42"> <h6 class="body-1 pb-42 scotia-black font-weight-bold">Nuestras Redes Sociales</h6> <ul class="no-list sc-d-flex sc-justify-content-center"> <li><a target="_blank" href="https://www.facebook.com/ScotiabankCL" rel="noopener"><i class="fab fa-facebook-square scotia-black text-size-24 mr-30"></i></a></li> <li><a target="_blank" href="https://www.instagram.com/scotiabank.cl/" rel="noopener"><i class="fab fa-instagram scotia-black text-size-24 mr-30" aria-hidden="true"></i> </a> </li> <li><a target="_blank" href="https://www.linkedin.com/company/scotiabank" rel="noopener"><i class="fab fa-linkedin scotia-black text-size-24 mr-30" aria-hidden="true"></i></a></li> <li><a target="_blank" href="https://twitter.com/Scotiachile" rel="noopener"> <img src="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/icons/twitter-x.svg" style="width: 25px;" class="mr-30"> </a></li> <li><a target="_blank" href="https://www.youtube.com/user/scotiabankchile" rel="noopener"><i class="fab fa-youtube-square scotia-black text-size-24 mr-30" aria-hidden="true"></i></a></li> <li><a target="_blank" href="https://www.tiktok.com/@scotiaenchile?_t=8etBNDKTrDK&_r=1" rel="noopener"> <img src="https://cdn.aglty.io/scotiabank-chile/frameworks/scotiabankchile/icons/tiktok.svg" style="width: 20px;" class="mr-30"> </a> </li> </ul> </div> </div> </div> <div class="scotia-line scotia-gris300 mt-30"></div> <div class="sc-container sc-d-sm-block sc-d-md-flex sc-d-lg-flex sc-align-items-center py-30"> <img src="https://cdn.aglty.io/scotiabank-chile/2024/header/logo-scotiabank-red.svg" style="width:200px"> <ul class="no-list sc-d-block sc-d-sm-block sc-d-md-flex sc-d-lg-flex ml-auto my-xs-24"> <li class="mr-30 my-xs-12 font-weight-normal"><a class="clickfollow scotia-black caption sc-link-simple" data-ide="hazte cliente footer" data-name="hazte cliente footer" data-creative="footer-personas" data-position="1" href="https://www.scotiaclub.cl/scclubfront/categoria/platosycomida/rutagourmet">Ruta Gourmet</a></li> <li class="mr-30 my-xs-12 font-weight-normal"><a class="clickfollow scotia-black caption sc-link-simple" data-ide="cuenta corriente footer" data-name="cuenta corriente footer" data-creative="footer-personas" data-position="1" href="https://www.scotiaclub.cl/scclubfront/categoria/miscanjes/concursos">Concursos</a></li> <li class="mr-30 my-xs-12 font-weight-normal"><a class="clickfollow scotia-black caption sc-link-simple" data-ide="creditos footer" data-name="creditos footer" data-creative="footer-personas" data-position="1" href="https://www.scotiaclub.cl/scclubfront/categoria/mundos/descuentos">Beneficios</a></li> <li class="mr-30 my-xs-12 font-weight-normal"><a class="clickfollow scotia-black caption sc-link-simple" data-ide="tarjetas footer" data-name="tarjetas footer" data-creative="footer-personas" data-position="1" href="https://beneficios.scotiabank.cl/scclubfront/categoria/mundos/viajes">Viajes</a></li> <!-- <li class="mr-30 my-xs-12"><a class="clickfollow scotia-black caption sc-link-simple" data-ide="seguros footer" data-name="seguros footer" data-creative="footer-personas" data-position="1" href="https://www.scotiaclub.cl/scclubfront/categoria/tienda/scotiamarket">ScotiaMarket</a></li> /--> <li class="mr-30 my-xs-12 font-weight-normal"><a class="clickfollow scotia-black caption sc-link-simple" data-ide="inversiones footer" data-name="inversiones footer" data-creative="footer-personas" data-position="1" href="https://banco.scotiabank.cl/mfe/clsales/mfe-onboarding-unico-wpub/">Hazte Cliente</a></li> </ul> </div> <div class="scotia-line scotia-gris300"></div> <div class="sc-container-fluid legal scotia-gris200-bg scotia-black text-right py-24"> <div class="sc-container font-weight-normal"> Infórmese sobre el límite de garantía estatal a los depósitos en su banco o en www.cmfchile.cl | &copy; 2024 Scotiabank All Rights Reserved</div> </div> </footer> </th:block> <!--/* FIN CLIENTE NORMAL */--> <!--/* VALIDACION CLIENTE SINGULAR */--> <th:block th:if="${(authenticated && #arrays.contains(usuario.tipoCliente, 'PREMIUM_BK') )}" > <section class="fondoSng" id="prefooter"> <div class="container"> <div class="row"> <div class="col-md-4"> <h5>Normativas e Información</h5> <ul class="footer-nav list-unstyled font-weight-normal"> <!-- <li><a th:href="@{/categoria/normativaseinformacion/normativaseinformacion}">Bases legales</a></li> <li><a th:href="@{/categoria/normativaseinformacion/politicasdeprivacidad}">Politicas de privacidad</a></li> --> <li><a th:href="@{/categoria/normativaseinformacion/terminosycondiciones}">Términos y condiciones</a></li> </ul> </div> <div class="col-md-4"> <h5>¿Necesitas ayuda?</h5> <ul class="footer-nav list-unstyled font-weight-normal"> <li><a th:href="@{/categoria/ayuda/acerca}">Acerca de Beneficios Scotia</a></li> <li><a th:href="@{/categoria/ayuda/preguntasfrecuentes}">Preguntas frecuentes</a></li> <li>Contáctanos al 600 600 1100</li> </ul> </div> <div class="col-md-4"></div> </div> <div class="row align-items-end"> <div class="col-md-10"> <p class="tx-chico">Infórmese sobre el límite de garantía estatal a los depósitos en su banco o en www.cmfchile.cl</p> </div> </div> </div> </section> <section id="footer" style="background-color:#38483f"> <div class="container"> <div class="row align-items-end"> <div class="col-md-8"> <h3 style="color:#3d816a ;">Impulsando nuevas posibilidades.<span>®</span></h3> </div> <div class="col-md-4 text-right"> <div class="row align-items-center"> <div class="col"> <img id="img_footx" src="https://cdn.aglty.io/scotiabank-chile/2024/header/logo-scotiabank-red.svg" style="width:200px" alt="Scotiabank"/> </div> </div> </div> </div> </div> </section> <style> #prefooter { background-color: #38483f; color: white; background-image: initial; } .footer-nav>li>a{ color:white } </style> </th:block> <!--/* FIN CLIENTE SINGULAR*/--> </th:block> <!--/* FIN th:block DATA AUTENTICATE */--> <script sec:authorize="isAuthenticated()" type="text/javascript"> function setFirstCookie() { let time = 10*365*24*60*60; /* 10 años */ document.cookie = "first=true; max-age=" + time + "; path=/"; } function setWelcomeCookie() { document.cookie = "welcomex=true; max-age=3600; path=/"; } $(document).ready(function() { if (!getCookie("first")) { //$('#firstModal').modal('show'); setFirstCookie(); setWelcomeCookie(); return; } if (!getCookie("welcomex")) { //$('#welcomeModal').modal('show'); setWelcomeCookie(); } }); </script> <script th:src="@{/resource/js/mdb.min.js}"></script> <script> $(document).ready(function() { //remove disabled attribute from submit button btn-ingresar-head $(".btn-ingresar-head").html("Ingresar"); $(".btn-ingresar-head").removeAttr("disabled"); }); </script> <script> //document.body.innerHTML = document.body.innerHTML.replaceAll('ScotiaPesos', 'Pesos Scotia'); //document.body.innerHTML = document.body.innerHTML.replaceAll('ScotiaClub', 'Beneficios Scotia'); $(document).ready(function() { $('.carouselHomeScotia .carousel-item').first().addClass('active'); $('.carouselHomeScotia .carousel-indicators li').first().addClass('active'); $('#carouselHomeScotia2 .carousel-item').first().addClass('active'); $('#carouselHomeScotia2 .carousel-indicators li').first().addClass('active'); //fix for carousel bullets index reallocating $('.carouselHomeScotia .carousel-indicators li').each(function(index) { $(this).attr('data-slide-to', index); }); $('#carouselHomeScotia2 .carousel-indicators li').each(function(index) { $(this).attr('data-slide-to', index); }); }); </script> <script> document.addEventListener('DOMContentLoaded', function () { var dropdowns = document.querySelectorAll('.dropdown-toggle'); dropdowns.forEach(function (dropdown) { dropdown.addEventListener('click', function () { var currentDropdown = this.closest('.dropdown'); var allDropdowns = document.querySelectorAll('.dropdown.show'); allDropdowns.forEach(function (otherDropdown) { if (otherDropdown !== currentDropdown) { otherDropdown.classList.remove('show'); otherDropdown.querySelector('.dropdown-menu').classList.remove('show'); } }); currentDropdown.classList.toggle('show'); currentDropdown.querySelector('.dropdown-menu').classList.toggle('show'); }); }); }); </script> </body> </html> ")