{"version":3,"sources":["services/UseLocalStorage.js","services/useInterval.js","components/Layout/NavBar.js","components/Layout/Footer.js","components/Layout/Layout.js","components/Visuales/Carousel.js","config/Config.js","services/ControlActions.js","components/Visuales/BannerPublicidad.js","components/Visuales/CarouselSlick.js","images/imagesURL.js","components/Visuales/CarouselClientes.js","images/SpinnerIcon.js","components/Visuales/Spinner.js","components/Visuales/CardProducto.js","components/Visuales/EncabezadoFiguras.js","components/Visuales/PlanesFacturelo.js","components/Errors/AlertMessage.js","pages/LandingPage.js","components/Visuales/EncabezadoDescripcion.js","components/Visuales/ServicioTipoCarrito.js","components/Visuales/ServicioTipoProx.js","pages/Servicios.js","components/Visuales/CardPequenna.js","pages/ServiciosList.js","components/Formularios/ErrorForm.js","components/Formularios/FormSolicitudInfo.js","components/MapaGoogle.js","pages/Contacto.js","pages/Nosotros.js","components/Formularios/ListaDropdown.js","components/Formularios/FormRegistro.js","pages/Registro.js","components/Formularios/FormLogin.js","components/Formularios/FormGenerarContrasenna.js","pages/Login.js","hooks/UseCarritoState.jsx","services/FormatMoney.js","components/Visuales/IconPromo.js","components/Visuales/CardProductoCarrito.js","components/Visuales/CardTotal.js","components/Visuales/CardInfo.js","components/Visuales/CardPromocion.js","components/Carrito.js","pages/CarritoPage.js","hooks/UsePagination.jsx","pages/HistorialPedidos.js","pages/Pedido.js","pages/Distribuidores.js","components/Formularios/FrmDesactivarNotificacion.js","pages/DesactivarNotificacionPage.js","components/Formularios/FormConfirmacionUsuario.js","pages/ConfirmacionUsuario.js","pages/ErrorPage.js","components/Formularios/FormPerfil.js","components/Formularios/FormCambiarContrasenna.js","components/Visuales/WidgetTarjetas.js","pages/PerfilPage.js","components/Formularios/InfoPrivacidad.js","pages/PoliticasPrivacidadPage.js","components/Formularios/InfoTerminosYCondiciones.js","pages/TerminosCondicionesPage.js","components/FilaCarrito.js","components/Visuales/ProductosPago.js","hooks/UseSignalR.jsx","components/Visuales/SeleccionPagoBN.js","pages/PagoPage.js","components/Visuales/SingleFeatures.js","pages/Mantenimientos.js","components/Formularios/BtnBack.js","pages/AdmServicios.js","pages/AdmClientes.js","pages/AdmProductos.js","pages/AdmImagenes.js","pages/AdmPedidos.js","pages/AdmPromociones.js","pages/Planes.js","pages/RegistroPromocion.js","App.js","serviceWorker.js","components/Layout/ScrollToTop.js","index.js"],"names":["setItem","llave","valor","localStorage","JSON","stringify","getItem","parse","useInterval","callback","delay","savedCallback","useRef","useEffect","current","id","setInterval","clearInterval","NavBar","datos","cargando","$","document","ready","on","toggleClass","history","useHistory","useState","recargar","setRecargar","cartNum","setCartNum","pCarritoLong","ProductoCarrito","length","styleLink","color","style","zIndex","className","to","alt","type","data-toggle","data-target","aria-controls","aria-expanded","aria-label","smooth","map","dato","key","titulo","role","arial-labelledby","onClick","push","uTipo","clear","Footer","src","href","target","rel","xmlns","width","height","viewBox","d","Layout","datosServicio","cargandoServicios","children","Carousel","data","data-ride","imagen","index","data-slide-to","urlImagen","data-slide","aria-hidden","ListaHubsSignalR","name","hubConcretarPedido","TEMPLATE_IMAGENES_INFORMATICA","REGEX_VALIDACION_EMAIL","REGEX_VALIDACION_TEL","ERROR_REQUERIDO","ERROR_REGEX_EMAIL","ListaTipoServicios","ListaTipoCedulas","ListaEndpoints","ListaMetodos","MODAL_STYLES","overlay","backgroundColor","overflowY","content","maxWidth","top","marginTop","transform","minHeigh","SweetAlert","title","text","footer","btn","callBack","icono","Swal","mixin","customClass","confirmButton","container","buttonsStyling","fire","icon","confirmButtonText","showCloseButton","then","result","value","SweetAlert2","btn2","callBack2","cancelButton","showCancelButton","cancelButtonText","dismiss","DismissReason","cancel","SwalToast","ms","toast","position","showConfirmButton","timer","timerProgressBar","onOpen","addEventListener","stopTimer","resumeTimer","request","servicio","metodo","tipo","query","token","a","objPeticion","method","body","undefined","headers","credentials","Authorization","fetch","url","catch","error","response","Jreponse","json","Retrieve","GET","Create","POST","PostWithToken","queryObj","URLSearchParams","toString","getToken","UpdateWithToken","PUT","DeleteWithToken","DELETE","GetWithToken","existeToken","tokenUsuario","access_token","BannerPublicidad","setAlert","alert","carouselData","setCarouselData","IMAGEN","res","err","mensaje","e","FlechaIzquierda","props","FlechaDerecha","CarouselSlick","slick1","setSlick1","slick2","setSlick2","diapActiva","setDiapActiva","settingsImages","speed","slidesToShow","slidesToScroll","fade","draggable","asNavFor","arrows","adaptiveHeight","settingsThumbnails","infinite","autoplay","centerMode","focusOnSelect","prevArrow","nextArrow","ref","slider","afterChange","setContadorSlick","cliente","idx","nombre","comentario","imagen1","img_default_info_evento","img_default_servicio","img_default_cliente","clientesJsonEjemplo","posicion","CarouselClientes","clienteData","setClienteData","CLIENTE_FAV","SpinnerIcon","Spinner","prop","visible","setVisible","Modal","setAppElement","withRouter","modalOpen","setModalOpen","spinner","showSpinner","hideSpinner","Object","keys","idDuenno","precio","overflow","fontFamily","descripcionCorta","idProducto","userId","pCa","idCarrito","idCuenta","correoCuenta","cantidad","CARRITO","message","agregarProductoCarrito","contenido","botones","isOpen","shouldCloseOnOverlayClick","onRequestClose","modalLogin","EncabezadoFiguras","PlanesFacturelo","planesData","setPlanesData","SERVICIO","objetosList","slice","cardDato","AlertMessage","data-dismiss","LandingPage","mensajeAlerta","setMensajeAlerta","EncabezadoDescripcion","descripcion","ServicioTipoCarrito","urlImagenBlanca","otroDetalle","otroTitulo","otroDescripcion","telefono","correo","ServicioTipoProx","match","params","setDatos","setCargando","msg","param","PROXIMAMENTE","evaluaComponente","CardPequenna","redireccion","LoadingCard","ServiciosList","ErrorForm","FormSolicitudInfo","asunto","useForm","register","handleSubmit","errors","reset","enviado","setEnviado","consultarAPI","cData","email","CORREO","onSubmit","placeholder","required","pattern","rows","disabled","withScriptjs","withGoogleMap","lati","parseFloat","latitud","longi","longitud","defaultZoom","defaultCenter","lat","lng","isMarkerShown","Contacto","googleMapURL","containerElement","mapElement","loadingElement","Nosotros","ListaDropdown","opciones","opcion","FormRegistro","endpoint","setValue","188","187","paises","setPaises","paisUsuario","mensajeRespuesta","setMensajeRespuesta","seleccionarPais","find","pais","Number","USUARIO","respPaises","listaPaises","codPaisUsuario","objPaisesTemp","paisTemp","pai_isoNum","pai_Nombre","console","errorDescription","obj","Codigo","Email","Nombre","Compannia","Password","Telefono","Pais","Identificacion","UltimoAcceso","moment","utc","toISOString","Pregunta","Respuesta","Actividad","estaConfirmada","Confirmacion","Aplicacion","PasswordConfirm","Comentario","Registro","muestraPagina","accion","mensajeError","setMensajeError","resC","Message","usuario","username","password","FormGenerarContrasenna","idUsuario","login","goBack","action","setAction","UseCarritoState","carritoData","setCarritoData","promocion","setPromocion","carritoTem","fechaModificacion","ListarCarrito","CambiarPromo","promo","log","recargarCarrito","spinnerCarrito","impuesto","FormatMoney","num","toFixed","replace","IconPromo","word","alto","ancho","CardProductoCarrito","descuento","productoData","eliminarProducto","pda","getElementById","Delete","showModal","pdatos","setTimeout","subTotal","SubTotalDescuento","querySelector","idPadre","observacion","modificarProducto","modalModificar","display","alignItems","urlLogoServicio","nombrePro","descripcionPro","total","totalDecuento","totalImpuesto","monto","setMonto","setMensaje","ACCION","ok","idCodigo","setPromo","codigoAplicable","setCodigoAplicable","agregar","setAgregar","CODIGO_APLICABLE","retr","codigo","defaultValue","maxLength","validarCodigo","pdato","CardPromocion","idCodigoAplicable","UsePagination","totalItems","setTotalItems","countItems","setCountItems","pageNum","skip","currentPage","setCurrentPage","pages","setPages","pagesCount","Math","ceil","skips","nextPage","item","getLast","previous","getFirst","pop","Pagination","isTheLast","page","goPage","goFirstPage","listEstados","setListEstados","list","setList","datatable","setDatatable","subtract","format","fechaI","setFechaI","fechaF","setFechaF","estadoSelected","setEstadoSelected","ignorarF","setIgnorarF","initData","recargarLista","destroy","listar","DataTable","scrollX","processing","language","listarEstados","GetColor","i","PEDIDO","count","place","finally","ESTADO_PEDIDO","estadoF","parseInt","estado","checked","onChange","marginLeft","marginRight","val","validate","padding","margin","scope","referenciaFacel","fecha","subTotalDescuento","precioTotal","calculatTotal","borderRadius","estadoString","dataPedido","setDataPedido","table","setTable","ID","TBLID","dom","buttons","extend","filename","exportOptions","columns","dropup","irAtras","pais_nombre","calcularImpuesto","calcularTotal","DetallePedido","Producto","nombreProducto","precioUnidad","Distribuidores","fontSize","FormDesactivarNotificacion","pln","cta","plan","cuenta","pla_num","cta_Cuenta","app_Codigo","pla_NotificacionCobroENviar","pla_NotificacionCobroMotivo","DesactivarNotificacionPage","FrmDesactivarNotificacion","FormConfirmacionUsuario","watch","password2","password1","minLength","ConfirmacionUsuario","FormPerfil","setUsuario","defaultValues","cedula","tipoCedula","direccion","modoEditar","setModoEditar","tipoCedulaSeleccionada","setTipoCedulaSeleccionada","getLabelCedula","TIPOCEDULAS","values","getLongCedula","FISICA","JURIDICA","DIMEX","resU","respUsuario","tipoCed","numCedula","getTipoCedulaPorNumCedula","Direccion","objUsuario","prevState","SELECCIONAR","cta_id","usu_PasswordOld","usu_PasswordNew","usu_PasswordNewConfirmation","window","jQuery","Component","PerfilPage","FormCambiarContrasenna","InfoPrivacidad","lang","PoliticasPrivacidadPage","InfoTerminosYCondiciones","align","border","cellPadding","cellSpacing","TerminosYCondiciones","FilaCarrito","ProductosPago","connectionPagoPedido","hubConnection","hubProxyPagoPedido","createHubProxy","HUB_CONCRETARPEDIDO","SeleccionPagoBN","tokenList","carrito","conexionId","setConexionId","InicializaConexionSignalR","modalPayment","classList","remove","modal","removeChild","location","reload","start","jsonp","done","fail","UseSignalR","enviandoPago","setEnviandoPago","showModelTerminos","setShowModelTerminos","setClickTerminos","checkboxTerminos","setCheckboxTerminos","dataWidget","setDataWidget","apellido","idPedido","objetoUsuario","setObjetoUsuario","mostar","errorObj","setErrorObj","getUsuario","nombres","split","nom","ape","primero","userName","calcularMonto","procederPago","user","PAGO","submit","htmlFor","AcquirerID","CommerceID","NumeroOperacion","MontoVPos","Moneda","PurchaseVerification","PagoPage","clase","BtnBack","duenno","codigoPlanes","idImagen","idImagenBlanca","fileImg","typeImg","fileImg2","typeImg2","objeto","setObjeto","modalAddEdit","setModalAddEdit","edit","setEdit","setTitulo","detalle","setDetalle","change","setImagen","imagen2","setImagen2","order","bool","promise","Promise","getBuffer","promise2","modificar","eliminar","closeModal","showModalEditEstado","fileData","resolve","reader","FileReader","readAsDataURL","onload","arrayBuffer","float","img","showModalAdd","maxHeight","cursor","img2","showModalEdit","showModalDelete","accept","files","URL","createObjectURL","onChangeInputImagen","onChangeInputImagen2","minHeight","tipoObjeto","idObjeto","PRODUCTO","step","min","appCodigo","paisId","pdfMake","vfs","pdfFonts","JSZip","modalEditEstado","setModalEditEstado","modalListEstados","setModalListEstados","concretar","gmail","HistorialEstadoPedido","EstadoPedido","definicion","fechaInicio","fechaFin","descripcionInterna","fechaRegistro","cantidadTotal","cantidadUsadas","add","modalPromo","setModalPromo","TblID","idImagenCorreo","urlImagenCorreo","showModalCorreoMasivo","cod","floor","random","numMes","generarCodigo","idPromo","correos","producto","pla_FechaI","pla_FechaF","setData","App","scrolled","scrollTop","fadeIn","fadeOut","animate","exact","path","component","Servicios","render","TerminosCondicionesPage","CarritoPage","HistorialPedidos","Planes","Pedido","DesactivarNotificacion","Login","Mantenimientos","AdmClientes","AdmImagenes","AdmProductos","AdmServicios","AdmPedidos","RegistroPromocion","AdmPromociones","ErrorPage","Boolean","hostname","ScrollToTop","prevProps","this","hash","scrollTo","ReactDOM","navigator","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.7a025a3b.chunk.js","sourcesContent":["export const setItem=(llave,valor)=>{\r\n localStorage.setItem(llave, JSON.stringify(valor));\r\n}\r\nexport const getItem=(llave)=>{\r\n return JSON.parse(localStorage.getItem(llave));\r\n}\r\n\r\n \r\n","import { useEffect, useRef } from 'react';\r\n\r\nconst useInterval = (callback, delay) => {\r\n const savedCallback = useRef();\r\n\r\n // Remember the latest callback.\r\n useEffect(() => {\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n // Set up the interval.\r\n useEffect(() => {\r\n function tick() {\r\n savedCallback.current();\r\n }\r\n if (delay !== null) {\r\n let id = setInterval(tick, delay);\r\n return () => clearInterval(id);\r\n }\r\n }, [delay]);\r\n}\r\n\r\nexport default useInterval;","import React, { useState } from \"react\";\r\nimport $ from \"jquery\";\r\nimport \"../../css/NavBar.css\";\r\nimport Headroom from \"react-headroom\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { ShoppingCart, ChevronDown } from \"react-feather\";\r\nimport { HashLink } from \"react-router-hash-link\";\r\nimport { getItem } from \"../../services/UseLocalStorage\";\r\nimport useInterval from \"../../services/useInterval\";\r\n\r\nconst NavBar = ({ datos, cargando }) => {\r\n $(document).ready(() => {\r\n $(\".second-button\").on(\"click\", function () {\r\n $(\".animated-icon2\").toggleClass(\"open\");\r\n });\r\n });\r\n\r\n let history = useHistory();\r\n\r\n const [recargar, setRecargar] = useState(true);\r\n const [cartNum, setCartNum] = useState(0);\r\n\r\n useInterval(() => {\r\n if (recargar) {\r\n if (getItem(\"usuario\") !== null) {\r\n setRecargar(false);\r\n }\r\n }\r\n }, 1000);\r\n\r\n useInterval(() => {\r\n if (getItem(\"carrito\")) {\r\n let pCarritoLong = getItem(\"carrito\").ProductoCarrito.length;\r\n if (cartNum !== pCarritoLong) {\r\n setCartNum(pCarritoLong);\r\n }\r\n }\r\n }, 1000);\r\n\r\n const cerrarSesion = () => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n setRecargar(true);\r\n history.push(\"/\");\r\n };\r\n\r\n const irPerfil = () => {\r\n history.push(\"/perfil\");\r\n }; \r\n const irPlanes = () => {\r\n history.push(\"/planes\");\r\n };\r\n\r\n\r\n const irHistorial = () => {\r\n history.push(\"/historialPedidos\");\r\n };\r\n const styleLink = {\r\n color: \"#bc2424\",\r\n }\r\n\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {getItem(\"usuario\") ? (\r\n <>\r\n \r\n \r\n {cartNum}\r\n \r\n\r\n {/* \r\n \r\n {cartNum}\r\n */}\r\n
\r\n \r\n {/*aria-extended=\"true\"*/}\r\n {getItem(\"usuario\")[\"userName\"]} \r\n \r\n\r\n \r\n
  • \r\n irPerfil()}\r\n >\r\n Perfil\r\n
  • \r\n \r\n
  • \r\n irHistorial()}\r\n >\r\n Historial de pedidos\r\n
  • \r\n
  • \r\n irPlanes()}\r\n >\r\n Planes\r\n
  • \r\n \r\n {getItem('usuario').uTipo === \"tp\" ?\r\n
  • \r\n \r\n\r\n Mantenimientos\r\n\r\n\r\n \r\n\r\n\r\n
  • \r\n\r\n : null\r\n }\r\n {getItem('usuario').uTipo === \"sc\" ?\r\n
  • \r\n \r\n\r\n Lista de pedidos\r\n\r\n\r\n \r\n\r\n\r\n
  • \r\n\r\n : null\r\n }\r\n
  • \r\n
    cerrarSesion()}>\r\n Cerrar Sesion\r\n
    \r\n
  • \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Registro\r\n \r\n \r\n Iniciar Sesion\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default NavBar;\r\n","import React from \"react\";\r\n//import Whatsapp from \"../../images/icon_whatsapp.svg\"\r\nimport {\r\n MapPin,\r\n Mail,\r\n PhoneCall,\r\n Facebook,\r\n Instagram,\r\n Linkedin\r\n\r\n} from \"react-feather\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { HashLink } from \"react-router-hash-link\";\r\nconst Footer = () => {\r\n\r\n \r\n return (\r\n \r\n );\r\n};\r\nexport default Footer;\r\n","import React from \"react\";\r\nimport NavBar from \"./NavBar\";\r\nimport Footer from \"./Footer\";\r\nimport \"../../css/particles.css\";\r\n//import Particles from \"react-particles-js\";\r\n//import json from \"./particles.json\";\r\n\r\nconst Layout = ({ datosServicio, cargandoServicios, children }) => {\r\n\r\n return (\r\n
    \r\n
    \r\n {/**/}\r\n
    \r\n \r\n
    {children}
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Layout;\r\n","import React from \"react\";\r\n\r\n\r\nconst Carousel = ({data,id }) => {\r\n\r\n return (\r\n\r\n <>\r\n { data === null ? ( null ) : (\r\n <>\r\n { data.length > 0 ? (\r\n
    \r\n
    \r\n
    \r\n\r\n
      \r\n\r\n {data.map((imagen, index) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n\r\n {data.map((imagen, index) => (\r\n
    \r\n \"...\"\r\n
    \r\n ))}\r\n
    \r\n \r\n \r\n Anterior\r\n \r\n \r\n \r\n Siguiente\r\n \r\n
    \r\n
    \r\n
    \r\n ) : (null)}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\nexport default Carousel;\r\n","// Configuración de Conexión\r\n\r\nexport const PRODUCCION = \"01\";\r\nexport const LOCAL = \"02\";\r\nexport const TEST = \"03\";\r\nexport const ESTADOAPP = PRODUCCION;//CAMBIA ESTO y el link en el html :)\r\n/* _▓▓▓___\r\n _▓▓▓▓▓▓_▓\r\n ▓▓______▓▓\r\n _▓_______▓__▓▓▓▓▓\r\n __________▓_▓▓▓▓▓▓\r\n _________ ▓▓______▓▓\r\n _________ ▓________▓\r\n _________▓ J\r\n __███████████████\r\n ____███████████\r\n _____ ███████\r\n _______█████ */\r\nexport const COD_APLICACION = \"018\";\r\nexport const PUERTO = \"63764\";\r\n\r\nconst url1 = \"https://api.sigmacr.net/\";\r\nconst url2 = `http://localhost:${PUERTO}/`;\r\nconst url3 = `http://apisigma.technosoft.co.cr/`;//test\r\nconst url = ESTADOAPP==PRODUCCION ? url1 : (ESTADOAPP== LOCAL? url2 : url3); \r\nexport const BASEURL = url+\"api/\"; \r\n//signalR\r\nexport const URL_SINGALR = url+\"signalr\"; \r\n\r\nexport class ListaHubsSignalR {\r\n static get HUB_CONCRETARPEDIDO() {\r\n return {\r\n name: \"myHub\",\r\n hubConcretarPedido : \"hubConcretarPedido\"\r\n };\r\n }\r\n \r\n}\r\n\r\n\r\n// Api keys\r\n\r\nexport const GOOGLE_MAP_API_KEY = \"AIzaSyDTnrAn8KpwZnrc25IFmtp6zsyRh0FCps0\";\r\n//export const CLOUDINARY_NAME = \"du4k7xyix\";\r\n//export const CLOUDINARY_KEY = \"983928316169811\";\r\n//export const CLOUDINARY_SECRET_KEY = \"ugb_wGRg30ZevGYXSr9Kbe_BwHE\";\r\n//export const CLOUDINARY_END_POINT = `https://api.cloudinary.com/v1_1/${CLOUDINARY_NAME}/image/upload`;\r\n// Validaciones de formularios\r\n//documentos\r\nexport const DOCUMENTO_DISTRIBUIDORES = \"https://res.cloudinary.com/du4k7xyix/image/upload/v1648567765/Sigma/documentos/Sigma_preciosv3_crp6b2.pdf\";\r\nexport const TEMPLATE_IMAGENES_INFORMATICA = \"https://res.cloudinary.com/du4k7xyix/image/upload/v1613682678/Sigma/imagenes_informativas/template1800x700_d4krq6.png\";\r\n// eslint-disable-next-line no-useless-escape\r\nexport const REGEX_VALIDACION_EMAIL = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\nexport const REGEX_VALIDACION_TEL = /^([0-9])*$/;\r\n\r\nexport const MSG_FORM_CARGANDO = \"Cargando...\";\r\nexport const ERROR_REQUERIDO = \"Campo requerido.\";\r\nexport const ERROR_REGEX_EMAIL = \"Debe ser un correo electrónico válido.\";\r\nexport const ERROR_REGEX_TEL = \"Debe ser un Teléfono válido.\";\r\nexport const LONG_CEDULA_FISICA = 9;\r\nexport const LONG_CEDULA_JURIDICA = 10;\r\nexport const LONG_DIMEX = 12;\r\nexport const LONG_MIN_PASSWORD = 6;\r\nexport const LONG_MAX_PASSWORD = 20;\r\n//Pago\r\nexport const IMPUESTO_VENTA = 0.13;\r\nexport const SIGNO_MONEDA = \"₡\";//₡ - $\r\nexport const MODENA = \"CRC\";//CRC - USD\r\n\r\n// Parametros de eventos de CECAPSI\r\n\r\n// Sirve como parametro para dictar a cuantas horas antes de que ocurra\r\n// el evento, debe bloquearse la posibilidad de reservar espacios.\r\n// Ej: si se pone 2, el evento se bloqueará a 2 horas antes de que\r\n// suceda.\r\nexport const CANT_HORAS_PERMITIDAS_ANTES_DEL_EVENTO = 2;\r\n\r\n// Solucion para enum en JavaScript\r\nexport class ListaTipoServicios {\r\n static get CARRITO() {\r\n return \"carrito\";\r\n }\r\n static get PROXIMAMENTE() {\r\n return \"prox\";\r\n }\r\n\r\n static get CALENDARIO() {\r\n return \"calendario\";\r\n }\r\n}\r\n\r\n//bac\r\nexport class ListaTipoPago {\r\n static get SELECCIONAR_TARJETA() {\r\n return \"1\";\r\n }\r\n static get NUEVO_METODO_PAGO() {\r\n return \"2\";\r\n }\r\n}\r\n\r\nexport class ListaTipoCedulas {\r\n static get SELECCIONAR() {\r\n return 0;\r\n }\r\n\r\n static get FISICA() {\r\n return 1;\r\n }\r\n\r\n static get JURIDICA() {\r\n return 2;\r\n }\r\n\r\n static get DIMEX() {\r\n return 3;\r\n }\r\n}\r\n\r\nexport class ListaEndpoints {\r\n static get SERVICIO() {\r\n return \"Servicio\";\r\n }\r\n static get LOGIN() {\r\n return \"Login\";\r\n }\r\n static get REGISTRO() {\r\n return \"Registro\";\r\n }\r\n static get CARRITO() {\r\n return \"Carrito\";\r\n }\r\n static get CORREO() {\r\n return \"Correo\";\r\n }\r\n static get EVENTO() {\r\n return \"Evento\";\r\n }\r\n static get USUARIO() {\r\n return \"Usuario\";\r\n }\r\n static get PEDIDO() {\r\n return \"Pedido\";\r\n }\r\n static get CLIENTE_FAV() {\r\n return \"ClienteFavorito\";\r\n }\r\n static get PAGO() {\r\n return \"Pago\";\r\n }\r\n static get IMAGEN() {\r\n return \"Imagen\";\r\n }\r\n static get PRODUCTO() {\r\n return \"Producto\";\r\n }\r\n static get ACCION() {\r\n return \"Accion\";\r\n }\r\n static get CODIGO_APLICABLE() {\r\n return \"CodigoAplicable\";\r\n }\r\n static get ESTADO_PEDIDO() {\r\n return \"HistorialEstadoPedido\";\r\n }\r\n}\r\n\r\nexport class ListaMetodos {\r\n static get GET() {\r\n return \"Get\";\r\n }\r\n\r\n static get POST() {\r\n return \"Post\";\r\n }\r\n static get PUT() {\r\n return \"Put\";\r\n }\r\n\r\n static get DELETE() {\r\n return \"Delete\";\r\n }\r\n}\r\n/*\r\nexport const ListaEstadosPedido = [\r\n { val : 0, des : \"Pendiente\" },\r\n { val : 1, des : \"Pagado\" },\r\n { val : 2, des : \"Facturado\" },\r\n { val : 3, des : \"Completado\" },\r\n { val : 4, des : \"Sin Factura\" },\r\n { val : 5, des : \"Incompleto\" },\r\n { val : 6, des : \"Sin correo\" },\r\n { val : 7, des : \"Sin activación\" },\r\n { val : -1, des : \"Procesando\" },\r\n]*/\r\n\r\n\r\nexport const MODAL_STYLES = {\r\n\r\n overlay: {\r\n backgroundColor: \"#0000008c\",\r\n zIndex: 9999,\r\n overflowY: 'scroll'\r\n },\r\n content: {\r\n backgroundColor: \"#bc2424\",\r\n zIndex: 9999,\r\n maxWidth: \"90%\",\r\n top: '0v',\r\n marginTop: \"1%\",\r\n transform: 'translate (-50%, -50%) ',\r\n minHeigh: \"5vh\",\r\n // maxHeight: '5vh ', // <- Esto establece la altura \r\n\r\n\r\n },\r\n\r\n}\r\n","\r\nimport \"datatables.net\";\r\nimport \"datatables.net-bs4\";\r\n//import \"../css/Table.css\";\r\nimport { BASEURL, ListaMetodos } from \"../config/Config\";\r\nimport { getItem } from \"./UseLocalStorage\";\r\nimport Swal from \"sweetalert2\";\r\n\r\nexport const SweetAlert = (type, title, text, footer, btn, callBack) => {\r\n let icono = \"\";\r\n switch (type) {\r\n case 1:\r\n icono = \"warning\";\r\n break;\r\n case 2:\r\n icono = \"success\";\r\n break;\r\n case 3:\r\n icono = \"error\";\r\n break;\r\n case 4:\r\n icono = \"info\";\r\n break;\r\n case 5:\r\n icono = \"question\";\r\n break;\r\n default:\r\n icono = \"\";\r\n break;\r\n }\r\n\r\n const alerta = Swal.mixin({\r\n customClass: {\r\n confirmButton: \"btn btn-primary\",\r\n container: \"zindex\",\r\n },\r\n buttonsStyling: false,\r\n });\r\n alerta\r\n .fire({\r\n icon: icono,\r\n title: title,\r\n text: text,\r\n footer: footer,\r\n confirmButtonText: btn,\r\n showCloseButton: true,\r\n })\r\n .then((result) => {\r\n if (result.value) {\r\n callBack();\r\n }\r\n });\r\n};\r\nexport const SweetAlert2 = (\r\n type,\r\n title,\r\n text,\r\n footer,\r\n btn,\r\n callBack,\r\n btn2,\r\n callBack2\r\n) => {\r\n let icono = \"\";\r\n switch (type) {\r\n case 1:\r\n icono = \"warning\";\r\n break;\r\n case 2:\r\n icono = \"success\";\r\n break;\r\n case 3:\r\n icono = \"error\";\r\n break;\r\n case 4:\r\n icono = \"info\";\r\n break;\r\n case 5:\r\n icono = \"question\";\r\n break;\r\n default:\r\n icono = \"\";\r\n break;\r\n }\r\n\r\n const alerta = Swal.mixin({\r\n customClass: {\r\n confirmButton: \"btn btn-primary m-1\",\r\n cancelButton: \"btn btn-primary m-1\",\r\n container: \"zindex\",\r\n },\r\n buttonsStyling: false,\r\n });\r\n\r\n alerta\r\n .fire({\r\n title: title,\r\n text: text,\r\n icon: icono,\r\n footer: footer,\r\n showCancelButton: true,\r\n confirmButtonText: btn,\r\n cancelButtonText: btn2,\r\n showCloseButton: true,\r\n })\r\n .then((result) => {\r\n if (result.value) {\r\n callBack();\r\n } else if (result.dismiss === Swal.DismissReason.cancel) {\r\n callBack2();\r\n }\r\n });\r\n};\r\nexport const SwalToast = (type, title, callBack, ms) => {\r\n let icono = \"\";\r\n switch (type) {\r\n case 1:\r\n icono = \"warning\";\r\n break;\r\n case 2:\r\n icono = \"success\";\r\n break;\r\n case 3:\r\n icono = \"error\";\r\n break;\r\n case 4:\r\n icono = \"info\";\r\n break;\r\n case 5:\r\n icono = \"question\";\r\n break;\r\n default:\r\n icono = \"\";\r\n break;\r\n }\r\n\r\n const Toast = Swal.mixin({\r\n toast: true,\r\n position: \"top-end\",\r\n showConfirmButton: false,\r\n timer: ms,\r\n timerProgressBar: true,\r\n onOpen: (toast) => {\r\n toast.addEventListener(\"mouseenter\", Swal.stopTimer);\r\n toast.addEventListener(\"mouseleave\", Swal.resumeTimer);\r\n },\r\n customClass: {\r\n container: \"zindex\",\r\n },\r\n });\r\n\r\n Toast.fire({\r\n icon: icono,\r\n title: title,\r\n }).then(() => {\r\n callBack();\r\n });\r\n};\r\nconst request = async (servicio, metodo, tipo, id, data, query, token) => {\r\n try {\r\n let objPeticion = {\r\n method: tipo,\r\n body: data ? JSON.stringify(data) : undefined,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n credentials: \"same-origin\",\r\n };\r\n if (token != null) {\r\n objPeticion.headers.Authorization = `Bearer ${token}`;\r\n }\r\n const response = await fetch(\r\n `${BASEURL}${servicio}/${metodo}${id ? `/${id}` : \"\"}${query ? `?${query}` : \"\"\r\n }`,\r\n objPeticion\r\n ).catch((error) => {\r\n throw error;\r\n });\r\n const Jreponse = response.json();\r\n return Jreponse;\r\n } catch (err) {\r\n // console.log(\"catch de control actions\",err)\r\n throw err;\r\n }\r\n\r\n};\r\n\r\nexport const Retrieve = (servicio, metodo, id) => {\r\n return request(servicio, metodo, ListaMetodos.GET, id);\r\n};\r\nexport const Create = (servicio, metodo, id, data) => {\r\n return request(servicio, metodo, ListaMetodos.POST, id, data);\r\n};\r\nexport const Update = (servicio, metodo, id, data) => {\r\n return request(servicio, metodo, ListaMetodos.PUT, id, data);\r\n};\r\nexport const Delete = (servicio, metodo, id, data) => {\r\n return request(servicio, metodo, ListaMetodos.DELETE, id, data);\r\n};\r\nexport const PostWithToken = (servicio, metodo, id, data, queryObj) => {\r\n let query = null;\r\n\r\n if (queryObj) {\r\n query = new URLSearchParams(queryObj).toString();\r\n }\r\n\r\n return request(\r\n servicio,\r\n metodo,\r\n ListaMetodos.POST,\r\n id,\r\n data,\r\n query,\r\n getToken()\r\n );\r\n};\r\nexport const UpdateWithToken = (servicio, metodo, id, data, queryObj) => {\r\n let query = null;\r\n\r\n if (queryObj) {\r\n query = new URLSearchParams(queryObj).toString();\r\n }\r\n\r\n return request(\r\n servicio,\r\n metodo,\r\n ListaMetodos.PUT,\r\n id,\r\n data,\r\n query,\r\n getToken()\r\n );\r\n};\r\nexport const DeleteWithToken = (servicio, metodo, id, data, queryObj) => {\r\n let query = null;\r\n\r\n if (queryObj) {\r\n query = new URLSearchParams(queryObj).toString();\r\n }\r\n\r\n return request(\r\n servicio,\r\n metodo,\r\n ListaMetodos.DELETE,\r\n id,\r\n data,\r\n query,\r\n getToken()\r\n );\r\n};\r\nexport const GetWithToken = (servicio, metodo, id, data, queryObj) => {\r\n let query = null;\r\n\r\n if (queryObj) {\r\n query = new URLSearchParams(queryObj).toString();\r\n }\r\n\r\n return request(\r\n servicio,\r\n metodo,\r\n ListaMetodos.GET,\r\n id,\r\n data,\r\n query,\r\n getToken()\r\n );\r\n};\r\nexport const existeToken = () => {\r\n if (getToken()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n};\r\nconst getToken = () => {\r\n \r\n let tokenUsuario = getItem(\"usuario\")?.access_token;\r\n\r\n if (tokenUsuario) {\r\n return tokenUsuario;\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Carousel from \"./Carousel\";\r\nimport { ListaEndpoints } from \"../../config/Config\";\r\nimport { Retrieve } from \"../../services/ControlActions\";\r\n\r\nconst BannerPublicidad = ({ setAlert, alert, id }) => {\r\n const [carouselData, setCarouselData] = useState({\r\n data: null,\r\n cargando: true,\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (carouselData.cargando) {\r\n Retrieve(ListaEndpoints.IMAGEN, \"GetImagenesActivas\")\r\n .then((res) => {\r\n if (res.data) {\r\n setCarouselData({ data: res.data, cargando: false });\r\n\r\n } else {\r\n let err = \"-Publicidad: Acción Interrumpida.\\n\" + res.error;\r\n \r\n setAlert({\r\n mensaje: alert.mensaje + err,\r\n error: true,\r\n });\r\n setCarouselData({ data: null, cargando: false });\r\n }\r\n })\r\n .catch((e) => {\r\n let err =\r\n \"-Publicidad: No pudo conectar al servidor, inténtelo de nuevo más tarde.\";\r\n\r\n //console.log(e);\r\n setAlert({\r\n mensaje: alert.mensaje + err,\r\n error: true,\r\n });\r\n setCarouselData({ data: null, cargando: false });\r\n });\r\n }\r\n\r\n\r\n }, [carouselData])\r\n\r\n\r\n\r\n return (\r\n\r\n \r\n\r\n );\r\n}\r\nexport default BannerPublicidad;","import React, { useState } from \"react\";\r\nimport { ArrowLeft, ArrowRight } from \"react-feather\";\r\nimport Slider from \"react-slick\";\r\n\r\nconst FlechaIzquierda = (props) => {\r\n const { onClick } = props;\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst FlechaDerecha = (props) => {\r\n const { onClick } = props;\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst CarouselSlick = (props) => {\r\n\r\n const [slick1, setSlick1] = useState(null);\r\n const [slick2, setSlick2] = useState(null);\r\n const [diapActiva, setDiapActiva] = useState(0)\r\n const setContadorSlick = (current) => {\r\n setDiapActiva(current)\r\n }\r\n let show = 5;\r\n // Validacion para que muestre correctamente el slider, dependiendo de la cantidad de datos disponibles\r\n\r\n if (props.datos.length >= 6) {\r\n show = 5;\r\n } else if (props.datos.length >= 3) {\r\n\r\n show = 3;\r\n } else {\r\n show = props.datos.length\r\n }\r\n const settingsImages = {\r\n speed: 300,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n draggable: true,\r\n asNavFor: slick2,\r\n arrows: false,\r\n adaptiveHeight:true\r\n\r\n };\r\n const settingsThumbnails = {\r\n speed: 300,\r\n slidesToShow: show,\r\n slidesToScroll: 1,\r\n infinite: true,\r\n autoplay: true,\r\n centerMode: true,\r\n draggable: false,\r\n focusOnSelect: true,\r\n asNavFor: slick1,\r\n prevArrow: ,\r\n nextArrow: \r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n (setSlick1(slider))}\r\n afterChange={current => setContadorSlick(current)}\r\n >\r\n {props.datos.map((cliente, idx) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n

    {cliente.nombre}

    \r\n {cliente.titulo}\r\n

    {cliente.comentario}

    \r\n
    \r\n
    \r\n );\r\n })}\r\n \r\n
    \r\n\r\n
    \r\n (setSlick2(slider))}\r\n >\r\n {props.datos.map((cliente, idx) => {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n}\r\nexport default CarouselSlick;","export const shape1 =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082266/Sigma/Shapes/shape1.png\";\r\nexport const shape2 =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082266/Sigma/Shapes/shape2.svg\";\r\nexport const shape3 =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082266/Sigma/Shapes/shape3.svg\";\r\nexport const shape4 =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082266/Sigma/Shapes/shape4.svg\";\r\nexport const shape5 =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082266/Sigma/Shapes/shape5.png\";\r\n\r\nexport const imagen1 =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082280/Sigma/default/1_vm5xgm_n4xton.png\";\r\n\r\nexport const contador_exp =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590086110/Sigma/Logos/logo_express_oscuro_j9wwmf.png\";\r\n\r\nexport const contador_mil =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590086109/Sigma/Logos/logo_contador_oscuro_sx9q3e.png\";\r\n\r\nexport const facturelo =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1703697420/Sigma/Logos/Facturelo_Logo_zjawoq.png\";\r\nexport const facel =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1703696514/Sigma/Logos/logo_facel_oscuro_pauauq.png\";\r\n\r\nexport const img_default_info_evento =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082288/Sigma/default/CECAPSI_u9sg4x_t2kh97.jpg\";\r\nexport const img_default_servicio =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590094101/Sigma/default/img_lxmprq.png\";\r\nexport const img_default_cliente =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590082280/Sigma/default/4_ekrlei_za5pta.jpg\";\r\n\r\n// Servicio CECAPSI\r\n\r\nexport const cecapsi_logo =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1703715920/Sigma/default/imagen_1_ocp7ry.jpg\";\r\n\r\nexport const cecapsi_capacitaciones =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1590774973/Sigma/default/CECAPSI_oet1pt.jpg\";\r\n\r\n// Pag Nosotros\r\nexport const nosotros_logo_sigma =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1703715920/Sigma/default/imagen_1_ocp7ry.jpg\";\r\n\r\nexport const nosotros_mision_vision =\r\n \"https://res.cloudinary.com/du4k7xyix/image/upload/v1703715921/Sigma/default/imagen_2_ovhssv.jpg\";\r\n","import React, { useState,useEffect } from \"react\";\r\nimport CarouselSlick from \"./CarouselSlick\";\r\nimport { img_default_cliente } from \"../../images/imagesURL.js\";\r\nimport { ListaEndpoints } from \"../../config/Config\";\r\nimport { Retrieve } from \"../../services/ControlActions\";\r\nlet clientesJsonEjemplo = [\r\n {\r\n id: 1,\r\n posicion: 1,\r\n nombre: \"Cargando...\",\r\n titulo: \"Cargando...\",\r\n comentario: \"Cargando...\",\r\n urlImagen: img_default_cliente,\r\n },\r\n {\r\n id: 2,\r\n posicion: 2,\r\n nombre: \"Cargando...\",\r\n titulo: \"Cargando...\",\r\n comentario: \"Cargando...\",\r\n urlImagen: img_default_cliente,\r\n },\r\n {\r\n id: 3,\r\n posicion: 3,\r\n nombre: \"Cargando...\",\r\n titulo: \"Cargando...\",\r\n comentario: \"Cargando...\",\r\n urlImagen: img_default_cliente,\r\n },\r\n {\r\n id: 4,\r\n posicion: 4,\r\n nombre: \"Cargando...\",\r\n titulo: \"Cargando...\",\r\n comentario: \"Cargando...\",\r\n urlImagen: img_default_cliente,\r\n },\r\n {\r\n id: 5,\r\n posicion: 5,\r\n nombre: \"Cargando...\",\r\n titulo: \"Cargando...\",\r\n comentario: \"Cargando...\",\r\n urlImagen: img_default_cliente,\r\n },\r\n {\r\n id: 6,\r\n posicion: 6,\r\n nombre: \"Cargando...\",\r\n titulo: \"Cargando...\",\r\n comentario: \"Cargando...\",\r\n urlImagen: img_default_cliente,\r\n },\r\n ];\r\nconst CarouselClientes = ({setAlert, alert}) => {\r\n const [clienteData, setClienteData] = useState({\r\n data: null,\r\n cargando: true,\r\n });\r\n\r\n useEffect(() => {\r\n \r\n if (clienteData.cargando) {\r\n Retrieve(ListaEndpoints.CLIENTE_FAV, \"GetClientesActivos\")\r\n .then((res) => {\r\n if (res.data) {\r\n setClienteData({ data: res.data, cargando: false });\r\n } else {\r\n let err = \"-Clientes: Acción Interrumpida.\\n \" + res.error;\r\n \r\n setAlert({\r\n mensaje: alert.mensaje + err,\r\n error: true,\r\n });\r\n setClienteData({ data: null, cargando: false });\r\n }\r\n }).catch((e) => {\r\n let err =\r\n \"-Clientes: No pudo conectar al servidor, inténtelo de nuevo más tarde. \\n\"\r\n setAlert({\r\n mensaje: alert.mensaje + err,\r\n error: true,\r\n });\r\n setClienteData({ data: null, cargando: false });\r\n });\r\n }\r\n \r\n\r\n }, [clienteData])\r\n \r\n \r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\nexport default CarouselClientes;","import React from 'react';\r\nconst SpinnerIcon = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default SpinnerIcon;","import React, { useState } from 'react';\r\nimport \"../../css/Spinner.css\";\r\nimport SpinnerIcon from '../../images/SpinnerIcon';\r\n\r\n\r\nconst Spinner = prop => {\r\n const [visible, setVisible] = useState(false);\r\n\r\n const showSpinner = () => setVisible(true);\r\n const hideSpinner = () => setVisible(false);\r\n const spinner = visible ? : null;\r\n\r\n return [ spinner, showSpinner, hideSpinner ]\r\n}\r\nexport default Spinner;","import React, { useState } from \"react\";\r\nimport { ListaEndpoints, SIGNO_MONEDA } from \"../../config/Config\";\r\nimport { getItem, setItem } from \"../../services/UseLocalStorage\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport Modal from \"react-modal\";\r\nimport { Create, SweetAlert, SwalToast } from \"../../services/ControlActions\";\r\nimport Spinner from \"./Spinner\";\r\n\r\nModal.setAppElement(\"#root\");\r\nconst CardProducto = (props) => {\r\n let dato = props.dato;\r\n const { history } = props;\r\n const [modalOpen, setModalOpen] = useState(false);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n\r\n if (Object.keys(dato).length === 0) return null;\r\n\r\n const irLogin = () => {\r\n history.push(\"/login\");\r\n };\r\n const agregarProductoCarrito = (idProducto) => {\r\n showSpinner();\r\n if (getItem(\"carrito\")?.id && getItem(\"usuario\")?.userId) {\r\n let pCa = {};\r\n pCa.idCarrito = getItem(\"carrito\").id;\r\n pCa.idProducto = idProducto;\r\n pCa.idCuenta = getItem(\"usuario\").userId;\r\n pCa.correoCuenta = \"\";// getItem(\"usuario\").cta_id;\r\n pCa.cantidad = 1;//siempre será uno y el sistema interpreatá cuaquier numero como uno\r\n\r\n Create(ListaEndpoints.CARRITO, \"CreateProductoCarrito\", \"servicio\", pCa)\r\n .then((res) => {\r\n if (res.data) {\r\n //devuelve el carrito\r\n setModalOpen(false);\r\n setItem(\"carrito\", res.data);\r\n hideSpinner();\r\n SwalToast(\r\n 2,\r\n \"Producto agregado\",\r\n () => {\r\n history.push(\"/carritoPage\");\r\n },\r\n 3000\r\n );\r\n } else {\r\n let err = \"Agregar producto:\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n }\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"-Pagar: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n }\r\n };\r\n\r\n const modalLogin = () => {\r\n let titulo =

    Inicie sesión

    ;\r\n let contenido = (\r\n

    \r\n Para poder comprar alguno de nuestros productos, debes iniciar sesión\r\n con una cuenta\r\n

    \r\n );\r\n let botones = (\r\n <>\r\n irLogin()}\r\n className=\"btn btn-primary \"\r\n >\r\n Iniciar sesión\r\n \r\n setModalOpen(false)}\r\n className=\"btn btn-primary \"\r\n >\r\n {\" \"}\r\n Cancelar{\" \"}\r\n \r\n \r\n );\r\n\r\n return (\r\n setModalOpen(false)}\r\n style={{\r\n overlay: {\r\n backgroundColor: \"#0000008c\",\r\n zIndex: 99990,\r\n },\r\n content: {\r\n backgroundColor: \"#bc2424\",\r\n zIndex: 99990,\r\n color: \"blue\",\r\n },\r\n }}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n setModalOpen(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    {contenido}
    \r\n
    {botones}
    \r\n
    \r\n \r\n );\r\n }; //fin modalLogin\r\n\r\n return (\r\n <>\r\n {spinner}\r\n \r\n
    \r\n
    \r\n

    {dato.nombre}

    \r\n
    \r\n\r\n
    \r\n \r\n {( {SIGNO_MONEDA})}\r\n {`${dato.precio}`}\r\n {`+I.V.A`}\r\n \r\n
    \r\n\r\n
    \r\n
    {dato.descripcionCorta}
    \r\n
    \r\n\r\n
    \r\n {getItem(\"usuario\") ? (\r\n <>\r\n agregarProductoCarrito(dato.id)}\r\n className=\"btn btn-primary\"\r\n >\r\n {\" \"}\r\n Comprar{\" \"}\r\n \r\n \r\n ) : (\r\n <>\r\n setModalOpen(true)}\r\n className=\"btn btn-primary\"\r\n >\r\n {\" \"}\r\n Comprar{\" \"}\r\n \r\n {modalLogin()}\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(CardProducto);\r\n","import React from \"react\";\r\n\r\n\r\nconst EncabezadoFiguras = ({id, titulo }) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {titulo}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default EncabezadoFiguras;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport CardProducto from \"./CardProducto.js\"\r\nimport { Retrieve } from \"../../services/ControlActions\";\r\nimport { ListaEndpoints } from \"../../config/Config.js\";\r\nimport EncabezadoFiguras from \"../Visuales/EncabezadoFiguras\";\r\nconst PlanesFacturelo = () => {\r\n const [planesData, setPlanesData] = useState({\r\n data: [],\r\n cargando: true,\r\n });\r\n\r\n useEffect(() => {\r\n Retrieve(ListaEndpoints.SERVICIO, \"GetServicioActivo\", \"facturelo\").then((res) => {\r\n // console.log(res);\r\n if (res.data) {\r\n setPlanesData({\r\n data: res.data.objetosList.slice(0, 3),\r\n cargando: false,\r\n });\r\n\r\n } else {\r\n // let err = \"-Planes Facturelo: Acción Interrumpida.\\n \" + res.error;\r\n //console.log(err,res)\r\n setPlanesData({\r\n data: null,\r\n cargando: false,\r\n });\r\n }\r\n }).catch((e) => {\r\n // let err = \"-Planes Facturelo: Acción Interrumpida.\\n \" + e.message;\r\n //console.log(err)\r\n setPlanesData({\r\n data: null,\r\n cargando: false,\r\n });\r\n });\r\n\r\n }, [])\r\n\r\n\r\n\r\n return (\r\n <>\r\n {planesData.data != null && planesData.data.length > 0 ?\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Ahora puede comprar y recargar su cuenta de Factura Electrónica desde acá.\r\n

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {planesData.data.map(cardDato => (\r\n\r\n \r\n ))}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n : null\r\n }\r\n );\r\n};\r\n\r\nexport default PlanesFacturelo;","import React from 'react';\r\n\r\nconst AlertMessage = ({ title, message, tipo }) => {\r\n\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n

    {message}

    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default AlertMessage;","import React, { useState } from \"react\";\r\nimport BannerPublicidad from \"../components/Visuales/BannerPublicidad\";\r\nimport CarouselClientes from \"../components/Visuales/CarouselClientes\";\r\n\r\nimport PlanesFacturelo from \"../components/Visuales/PlanesFacturelo\";\r\nimport EncabezadoFiguras from \"../components/Visuales/EncabezadoFiguras\";\r\nimport { PlusCircle } from \"react-feather\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n contador_mil,\r\n facel,\r\n facturelo\r\n} from \"../images/imagesURL\";\r\n//import $ from \"jquery\";\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\n\r\nconst LandingPage = () => {\r\n\r\n /*const [existenEventos, setExistenEventos] = useState({\r\n data: null,\r\n cargando: true,\r\n });*/\r\n const [mensajeAlerta, setMensajeAlerta] = useState({\r\n mensaje: \"\",\r\n error: false,\r\n });\r\n\r\n\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n

    \r\n Facel\r\n

    \r\n

    \r\n Ofrece una solución web que cumple con la normativa vigente en\r\n Costa Rica en cuanto a facturación electrónica se refiere,\r\n dirigida a profesionales independientes y empresas que\r\n utilizan un alto volumen de facturación.\r\n

    \r\n \r\n Más información\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/*
    \r\n
    \r\n
    \r\n \"contmil\"\r\n
    \r\n

    \r\n \r\n Contador Millenium\r\n \r\n

    \r\n

    \r\n Es un sistema contable que a lo largo de los años se ha\r\n convertido en una herramienta estándar necesaria para los\r\n profesionales dedicados a la contabilidad, con la capacidad de\r\n llevar el control de múltiples compañías.\r\n

    \r\n \r\n Más información\r\n \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n
    \r\n \"xpress\"\r\n
    \r\n

    \r\n Facturelo\r\n

    \r\n

    \r\n Planes de facturación a su medida con la cantidad de documentos que requiere.\r\n

    \r\n\r\n \r\n Más información\r\n \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n
    \r\n \"xpress\"\r\n
    \r\n

    \r\n Contador Xpress\r\n

    \r\n

    \r\n Sistema contable en la nube al cual se puede acceder desde\r\n cualquier dispositivo. Cuenta con diferentes módulos internos\r\n con el fin de brindar más facilidad y orden al analizar la\r\n información financiera de la compañía.\r\n

    \r\n\r\n \r\n Más información\r\n \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LandingPage;\r\n\r\n","import React from \"react\";\r\n\r\n\r\n\r\nconst EncabezadoDescripcion = ({ id, titulo, descripcion }) => {\r\n return (\r\n
    \r\n {titulo}\r\n
    \r\n

    {descripcion}

    \r\n\r\n \r\n
    \r\n\r\n );\r\n};\r\n\r\nexport default EncabezadoDescripcion;\r\n","import React from \"react\";\r\nimport EncabezadoDescripcion from './EncabezadoDescripcion';\r\nimport CardProducto from \"./CardProducto.js\"\r\nconst ServicioTipoCarrito = ({ cargando, datos }) => {\r\n\r\n let { objetosList } = datos;\r\n return (\r\n <>\r\n {cargando ? (\r\n
    \r\n
    \r\n
    \r\n

    Servicios

    \r\n
    \r\n

    Lista de servicios

    \r\n
    \r\n

    Cargando...

    \r\n
    \r\n
    \r\n ) : (\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n \"url\"\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {objetosList.map(cardDato => (\r\n \r\n ))}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n
    \r\n { datos.otroDetalle === 1 ? (
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {datos.otroTitulo}

    \r\n
    \r\n

    \r\n {datos.otroDescripcion}\r\n

    \r\n

    \r\n Más información\r\n

    \r\n

    \r\n Telefono: {\" \" + datos.telefono}\r\n

    \r\n

    \r\n Correo: {\" \" + datos.correo}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n ) : null}\r\n \r\n )}\r\n \r\n )\r\n\r\n};\r\n\r\nexport default ServicioTipoCarrito;\r\n","import React from \"react\";\r\nimport EncabezadoDescripcion from \"./EncabezadoDescripcion\";\r\n\r\nconst ServicioTipoProx = () => {\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ServicioTipoProx;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { withRouter, useHistory } from \"react-router-dom\";\r\nimport ServicioTipoCarrito from \"../components/Visuales/ServicioTipoCarrito\";\r\nimport { Retrieve, SweetAlert } from \"../services/ControlActions\";\r\nimport { ListaEndpoints, ListaTipoServicios } from \"../config/Config\";\r\nimport ServicioTipoProx from \"../components/Visuales/ServicioTipoProx\";\r\nimport Spinner from \"../components/Visuales/Spinner\";\r\n\r\nconst Servicios = ({ match }) => {\r\n let id = match.params.id;\r\n let history = useHistory();\r\n const [datos, setDatos] = useState({});\r\n const [cargando, setCargando] = useState(false);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n\r\n const evaluaComponente = (param) => {\r\n if (param === undefined) return null;\r\n switch (param) {\r\n case ListaTipoServicios.CARRITO:\r\n return (\r\n \r\n );\r\n case ListaTipoServicios.PROXIMAMENTE:\r\n return ; \r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setCargando(true);\r\n showSpinner();\r\n Retrieve(ListaEndpoints.SERVICIO, \"GetServicioActivo\", id).then((res) => {\r\n if (res.data) {\r\n setDatos(res.data);\r\n setCargando(false);\r\n } else {\r\n let err = res.msg;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => {\r\n history.push(\"/servicios\");\r\n });\r\n }\r\n hideSpinner();\r\n });\r\n }, [history, id]);\r\n\r\n return (\r\n <>\r\n {spinner}\r\n {cargando ? null : evaluaComponente(datos.tipo)}\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Servicios);\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\nconst CardPequenna = ({ id, titulo, urlImagen, descripcion, redireccion }) => {\r\n\r\n\r\n\r\n return (\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \"shape\"\r\n\r\n
    \r\n\r\n

    {titulo}

    \r\n

    {descripcion}

    \r\n
    \r\n \r\n
    \r\n\r\n )\r\n}\r\n\r\nexport default CardPequenna;","import React, { Fragment } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport CardPequenna from \"../components/Visuales/CardPequenna\";\r\n\r\n\r\nconst LoadingCard = () => { \r\n return(<>\r\n
    \r\n
    \r\n
    \r\n \"logo\"\r\n
    \r\n

    \r\n Cargando...\r\n

    \r\n

    Cargando...

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \"logo\"\r\n
    \r\n

    \r\n Cargando...\r\n

    \r\n

    Cargando...

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"logo\"\r\n
    \r\n

    \r\n Cargando...\r\n

    \r\n

    Cargando...

    \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n\r\nconst ServiciosList = ({ cargando, datos }) => {\r\n let contenido = cargando ? (\r\n \r\n ) : (\r\n <>\r\n {datos.map((dato) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    {contenido}
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\nexport default ServiciosList;\r\n","import React from \"react\";\r\n\r\nconst ErrorForm = ({ mensaje }) => {\r\n return

    {mensaje}

    ;\r\n};\r\n\r\nexport default ErrorForm;\r\n","import React, { useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport { Create, SweetAlert } from \"../../services/ControlActions\";\r\nimport Spinner from \"../Visuales/Spinner\";\r\nimport {\r\n ListaEndpoints,\r\n ERROR_REQUERIDO,\r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL,\r\n} from \"../../config/Config\";\r\n\r\nconst FormSolicitudInfo = ({ titulo, asunto }) => {\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n\r\n const onSubmit = (data) => {\r\n consultarAPI(data);\r\n };\r\n\r\n const consultarAPI = async (data) => {\r\n showSpinner();\r\n\r\n setEnviado(false);\r\n setCargando(true);\r\n\r\n let cData = {};\r\n cData.correo = data.email;\r\n cData.contenido = data.mensaje;\r\n cData.nombre = data.nombre;\r\n cData.telefono = data.telefono;\r\n cData.asunto = asunto;\r\n\r\n Create(ListaEndpoints.CORREO, \"EnviarConsultaUsuario\", \"\", cData)\r\n .then((res) => {\r\n if (res.data) {\r\n\r\n setCargando(false);\r\n setEnviado(true);\r\n reset();\r\n } else {\r\n let err = \"Consulta: \" + res.error;\r\n SweetAlert(\r\n 3,\r\n \"Acción Interrumpida, Intentelo de nuevo más tarde\",\r\n err,\r\n \"\",\r\n \"Entendido\",\r\n () => { }\r\n );\r\n }\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"EnviarConsultaUsuario: No pudo conectar al servidor, inténtelo de nuevo más tarde.\" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {titulo ?

    {titulo}

    : null}\r\n\r\n
    \r\n \r\n\r\n \r\n\r\n {errors.nombre ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.email ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n {errors.telefono ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n {errors.mensaje ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {enviado ? (\r\n

    \r\n Formulario enviado con éxito.En breve un compañero de sigma lo estará contactando\r\n

    \r\n ) : null}\r\n\r\n \r\n Enviar\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FormSolicitudInfo;\r\n","import React from \"react\";\r\nimport { GoogleMap, withScriptjs, withGoogleMap, Marker } from \"react-google-maps\";\r\n\r\nconst MapaGoogle = (props) => {\r\n let lati = parseFloat(props.latitud);\r\n let longi = parseFloat(props.longitud);\r\n\r\n return (\r\n \r\n {props.isMarkerShown && }\r\n \r\n )\r\n\r\n\r\n};\r\nexport default withScriptjs(withGoogleMap(MapaGoogle));\r\n","import React from \"react\";\r\nimport FormSolicitudInfo from \"../components/Formularios/FormSolicitudInfo\";\r\nimport { Mail, MapPin, Phone } from \"react-feather\";\r\nimport { imagen1 } from \"../images/imagesURL\";\r\nimport EncabezadoFiguras from \"../components/Visuales/EncabezadoFiguras\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport MapaGoogle from \"../components/MapaGoogle\";\r\nimport { GOOGLE_MAP_API_KEY } from \"../config/Config\";\r\n\r\nconst Contacto = () => {\r\n let api_key_maps = GOOGLE_MAP_API_KEY;\r\n\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    Escríbanos

    \r\n

    \r\n info@sigmacr.net\r\n

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

    Visítenos

    \r\n

    \r\n San Pedro de Montes de Oca, Barrio la Granja, de la\r\n Embajada de Panamá 25m al este\r\n

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

    Llámenos

    \r\n

    \r\n +506 2291-7170\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n }\r\n mapElement={
    }\r\n loadingElement={

    Cargando Mapa...

    }\r\n latitud=\"9.929151\"\r\n longitud=\"-84.047390\"\r\n isMarkerShown={true}\r\n />\r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \"fondo\"\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Contacto;\r\n","import React from \"react\";\r\nimport EncabezadoFiguras from \"../components/Visuales/EncabezadoFiguras\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport {\r\n nosotros_logo_sigma,\r\n nosotros_mision_vision,\r\n} from \"../images/imagesURL\";\r\n\r\nimport { ThumbsUp, Smile, Users, Briefcase } from \"react-feather\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nconst Nosotros = () => {\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"imagen\"\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n

    Sigma

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

    \r\n Sigma Asesorías Contables S.A, es una empresa de capital\r\n 100% costarricense, surge a finales del año 2017, con la\r\n finalidad de brindar diferentes alternativas en soluciones\r\n digitales.\r\n

    \r\n\r\n

    \r\n Pertenecemos al grupo empresarial Corporación Millenium\r\n conformado por Technosoft, Facel, y más recientemente OLM\r\n Market.\r\n

    \r\n\r\n

    \r\n Trabajamos de la mano con la pequeña y mediana empresa\r\n brindándoles soluciones de acuerdo a sus necesidades.\r\n

    \r\n\r\n

    \r\n Estamos en una constante búsqueda de alternativas como una\r\n solución real a las necesidades de nuestros clientes y del\r\n mercado en general.\r\n

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

    Misión & Visión

    \r\n
    \r\n
    \r\n
    \r\n
    Misión:
    \r\n

    \r\n Facilitar a nuestros clientes la gestión administrativa, por\r\n medio de diferentes herramientas tecnológicas actualizadas.\r\n

    \r\n\r\n
    Visión:
    \r\n

    \r\n Convertirnos en un referente como proveedores de soluciones\r\n digitales.\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \"imagen\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n\r\n {/* */}\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Compromiso\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Respeto\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Colaboración\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Responsabilidad\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n\r\n
    \r\n
    \r\n
    \r\n

    ¿Consultas?

    \r\n

    No dude en contactarnos

    \r\n \r\n Contáctenos\r\n \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n \r\n );\r\n};\r\n\r\nexport default Nosotros;\r\n","import React from \"react\";\r\n\r\nconst ListaDropdown = ({ opciones }) => {\r\n if (opciones === null) return null;\r\n//\r\n return (\r\n <>\r\n \r\n\r\n {opciones.map(opcion => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default ListaDropdown;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport ListaDropdown from \"./ListaDropdown\";\r\nimport moment from \"moment\";\r\nimport {\r\n COD_APLICACION,\r\n ListaEndpoints,\r\n ERROR_REQUERIDO,\r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL,\r\n REGEX_VALIDACION_TEL,\r\n ERROR_REGEX_TEL\r\n} from \"../../config/Config\";\r\nimport { Create, Retrieve } from \"../../services/ControlActions\";\r\nimport { useRef } from \"react\";\r\n\r\nconst FormRegistro = ({ endpoint, titulo, history }) => {\r\n const { register, handleSubmit, errors, reset, setValue } = useForm();\r\n\r\n const [paises, setPaises] = useState([\r\n { 188: \"Costa Rica\" },\r\n { 187: \"Estados Unidos\" },\r\n ]);\r\n\r\n const paisUsuario = useRef(0);\r\n\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [mensajeRespuesta, setMensajeRespuesta] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n // UseEffect para seleccionar pais del usuario\r\n useEffect(() => {\r\n\r\n if (paisUsuario.current !== 0) {\r\n\r\n setValue(\"pais\", seleccionarPais());\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [paises]);\r\n\r\n const seleccionarPais = () => {\r\n\r\n let res = paises.find((pais) => {\r\n return Number(Object.keys(pais)[0]) === paisUsuario.current;\r\n });\r\n\r\n if (res) {\r\n return Object.keys(res)[0];\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n const onSubmit = (data) => {\r\n\r\n let obj = {\r\n Codigo: 0,\r\n Email: data.email,\r\n Nombre: data.nombre || '\"\"',\r\n Compannia: '\"\"',\r\n Password: '\"\"',\r\n Telefono: data.telefono,\r\n Pais: data.pais,\r\n Identificacion: '\"\"',\r\n UltimoAcceso: moment.utc().toISOString(),\r\n Pregunta: '\"\"',\r\n Respuesta: '\"\"',\r\n Actividad: 1,\r\n estaConfirmada: false,\r\n Confirmacion: '\"\"',\r\n Aplicacion: COD_APLICACION,\r\n PasswordConfirm: '\"\"',\r\n Comentario: '\"\"',\r\n };\r\n\r\n\r\n\r\n consultarAPI(obj);\r\n };\r\n\r\n // UseEffect inicial\r\n useEffect(() => {\r\n // Carga Paises\r\n Retrieve(ListaEndpoints.USUARIO, \"GetPaises\").then(\r\n (res) => {\r\n if (res.data) {\r\n // Carga y formatea paises para el dropdown\r\n let respPaises = res.data?.listaPaises;\r\n paisUsuario.current = res.data?.codPaisUsuario\r\n ? res.data?.codPaisUsuario\r\n : 0;\r\n let objPaisesTemp = [];\r\n\r\n for (const pais of respPaises) {\r\n let paisTemp = { [pais.pai_isoNum]: pais.pai_Nombre };\r\n\r\n objPaisesTemp.push(paisTemp);\r\n }\r\n\r\n setPaises(objPaisesTemp);\r\n // fin CargaPaises\r\n } else {\r\n\r\n }\r\n },\r\n (error) => {\r\n // console.error(\"Ha ocurrido un error al traer los países.\", error);\r\n console.error(\"Ha ocurrido un error al traer los países.\");\r\n setCargando(false);\r\n }\r\n );\r\n }, []);\r\n\r\n const consultarAPI = async (data) => {\r\n setEnviado(false);\r\n setCargando(true);\r\n\r\n\r\n\r\n Create(ListaEndpoints.USUARIO, \"Registro\", \"\", data).then(\r\n (res) => {\r\n setEnviado(true);\r\n\r\n if (res.data) {\r\n\r\n setMensajeRespuesta({ error: false, mensaje: res.msg });\r\n reset();\r\n if (paisUsuario.current !== 0) {\r\n\r\n setValue(\"pais\", seleccionarPais());\r\n }\r\n\r\n } else {\r\n\r\n console.error(res.error, res.errorDescription);\r\n setMensajeRespuesta({ error: true, mensaje: res.errorDescription });\r\n setCargando(false);\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Ha ocurrido un error.\", error);\r\n\r\n setCargando(false);\r\n }\r\n );\r\n };\r\n\r\n // TODO: Borrar cuentas\r\n // relmigulmo@enayu.com\r\n // sitribamla@enayu.com\r\n // hospusilma@enayu.com\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {titulo}

    \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.email ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.nombre ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.telefono ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n\r\n {errors.pais ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n {enviado ? (\r\n mensajeRespuesta.error ? (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n )\r\n ) : null}\r\n\r\n \r\n Enviar\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FormRegistro;\r\n","import React, { useState } from \"react\";\r\nimport FormRegistro from \"../components/Formularios/FormRegistro\";\r\nimport { imagen1 } from \"../images/imagesURL\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { existeToken } from \"../services/ControlActions\";\r\n\r\nconst Registro = () => {\r\n let history = useHistory();\r\n\r\n const [muestraPagina] = useState(existeToken());\r\n\r\n if (muestraPagina) {\r\n history.push(\"/\");\r\n alert(\"Sesión iniciada, debe cerrar sesión para registrar otra cuenta\");\r\n }\r\n\r\n return (\r\n <>\r\n {!muestraPagina ? (\r\n <>\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \"\"\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Bienvenido

    \r\n
    \r\n

    \r\n Puede registrarse llenando el formulario que se\r\n encuentra a continuación.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default Registro;\r\n","import React, { useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport { Create, Retrieve, SwalToast, SweetAlert } from \"../../services/ControlActions\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { setItem } from \"../../services/UseLocalStorage\";\r\nimport Spinner from '../Visuales/Spinner';\r\n\r\nconst FormLogin = (props) => {\r\n const { history, accion } = props;\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n\r\n const [mensajeError, setMensajeError] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n const onSubmit = (data) => {\r\n consultarAPI(data);\r\n };\r\n\r\n const consultarAPI = async (data) => {\r\n showSpinner();\r\n setEnviado(false);\r\n setCargando(true);\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n Create(\"usuario\", \"login\", \"\", data).then((res) => {\r\n //console.log(res);\r\n if (res.data) {\r\n Retrieve(\"carrito\", \"GetCarritoByUserId\", res.data.userId).then((resC) => {\r\n // console.log(resC)\r\n if (resC.data != null) {\r\n setEnviado(true);\r\n setCargando(false);\r\n\r\n //ninguno de estos datos se deben guardar\r\n /* if (resC.data.CodigoAplicable != null) {\r\n resC.data.CodigoAplicable.Pedido = null;\r\n resC.data.CodigoAplicable.Carrito = null;\r\n resC.data.CodigoAplicable.RegistroCodigoAplicable = null;\r\n }*/\r\n\r\n\r\n setItem(\"usuario\", res.data);\r\n setItem(\"carrito\", resC.data);\r\n reset();\r\n hideSpinner();\r\n SwalToast(2, \"Bienvenido\", () => { history.push(\"/\"); }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n\r\n } if (resC.Message) {\r\n hideSpinner();\r\n setEnviado(true);\r\n setCargando(false);\r\n setMensajeError({ error: true, mensaje: resC.Message });\r\n } else {\r\n\r\n hideSpinner(); \r\n setCargando(false);\r\n setEnviado(true);\r\n if (resC.error) {\r\n setMensajeError({ error: true, mensaje: resC.error });\r\n console.error(resC.error, resC.errorDescription)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n //console.log(\"error login\", e)\r\n hideSpinner();\r\n setEnviado(true);\r\n setCargando(false);\r\n setMensajeError({ error: true, mensaje: e.message });\r\n let err =\r\n \"Login: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n\r\n } else {\r\n hideSpinner();\r\n setCargando(false);\r\n setEnviado(true);\r\n \r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n\r\n }\r\n },\r\n (error) => {\r\n hideSpinner();\r\n setEnviado(true);\r\n setCargando(false);\r\n if (error.message == \"Failed to fetch\") {\r\n setMensajeError({ error: true, mensaje: \"No se pudo conectar, inténtelo de nuevo más tarde.\" });\r\n } else {\r\n setMensajeError({ error: true, mensaje: error.message });\r\n }\r\n // console.log(\"hola\", error)\r\n // console.error(\"Acción Interrumpida:\", error.message)\r\n\r\n }\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n {errors.username ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n {errors.password ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {enviado ? (\r\n mensajeError.error ? (\r\n
    \r\n {mensajeError.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n Bienvenido\r\n
    \r\n )\r\n ) : null}\r\n \r\n Enviar\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(FormLogin);\r\n","import React, { useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport {\r\n ListaEndpoints,\r\n ERROR_REQUERIDO,\r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL,\r\n} from \"../../config/Config\";\r\nimport { Create, SweetAlert } from \"../../services/ControlActions\";\r\n\r\nconst FormGenerarContrasenna = ({ idUsuario, token, accion }) => {\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [mensajeRespuesta, setMensajeRespuesta] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n\r\n const onSubmit = (data) => {\r\n // console.log(data)\r\n let obj = {\r\n login: data.login\r\n };\r\n\r\n consultarAPI(obj);\r\n };\r\n\r\n const consultarAPI = async (data) => {\r\n setEnviado(false);\r\n setCargando(true);\r\n\r\n Create(ListaEndpoints.USUARIO, \"GenerarContrasenna\", \"\", data).then(\r\n (res) => {\r\n setEnviado(true);\r\n if (res.data) {\r\n setMensajeRespuesta({ error: false, mensaje: res.msg });\r\n reset();\r\n } else {\r\n setMensajeRespuesta({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n setCargando(false);\r\n }\r\n }/*,\r\n (error) => {\r\n let err = \"Usuario: No pudo conectar al servidor, inténtelo de nuevo más tarde. Error: \" + error.message\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n }*/\r\n ).catch((e) => {\r\n\r\n let err = \"Usuario: No pudo conectar al servidor, inténtelo de nuevo más tarde.\" + e.message\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.login ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {enviado ? (\r\n mensajeRespuesta.error ? (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n )\r\n ) : null}\r\n \r\n Enviar\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FormGenerarContrasenna;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport FormLogin from \"../components/Formularios/FormLogin\";\r\nimport FormGenerarContrasenna from \"../components/Formularios/FormGenerarContrasenna\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\n\r\nconst Login = (props) => {\r\n const { history } = props;\r\n\r\n useEffect(() => {\r\n if (getItem('usuario')) {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n\r\n });\r\n\r\n\r\n const [action, setAction] = useState({\r\n nombre: \"login\",\r\n titulo: \"Bienvenido\",\r\n });\r\n\r\n\r\n const goGenerarContrasenna = () => {\r\n setAction({\r\n nombre: \"generarContrasenna\",\r\n titulo: \"Generar contraseña\",\r\n })\r\n };\r\n\r\n const goLogin = () => {\r\n setAction({\r\n nombre: \"login\",\r\n titulo: \"Bienvenido\",\r\n })\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {action.titulo}

    \r\n
    \r\n {action.nombre == \"login\" ?\r\n \r\n : null}\r\n {action.nombre == \"generarContrasenna\" ?\r\n \r\n : null}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Login);\r\n","import { useState, useEffect } from 'react'\r\nimport useInterval from '../services/useInterval';\r\nimport { getItem, setItem } from '../services/UseLocalStorage';\r\nimport Spinner from '../components/Visuales/Spinner';\r\n//test de pago\r\nimport { SweetAlert, Retrieve } from \"../services/ControlActions\";\r\nimport { ListaEndpoints, IMPUESTO_VENTA } from \"../config/Config\";\r\n\r\nexport const UseCarritoState = () => {\r\n\r\n const [carritoData, setCarritoData] = useState({});\r\n const [recargar, setRecargar] = useState(true);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [promocion, setPromocion] = useState(null);\r\n\r\n\r\n useInterval(() => {\r\n if (getItem(\"carrito\")) {\r\n let carritoTem = getItem(\"carrito\");\r\n /*deme el carrito del sesion y valida si es diferente al del componente \r\n y son diferentes lo recarga el componente*/\r\n if (carritoData.fechaModificacion < carritoTem.fechaModificacion) {\r\n setRecargar(true);\r\n\r\n }\r\n }\r\n }, 2000);\r\n const ListarCarrito = () => {\r\n showSpinner();\r\n if (getItem(\"usuario\")) {\r\n //no es por user id sino por el id de la cuenta\r\n Retrieve(ListaEndpoints.CARRITO, \"GetCarritoByUserId\", getItem(\"usuario\").userId).then((res) => {\r\n // console.log(\"carrito\", res)\r\n if (res.data) {\r\n\r\n /* if (res.data.CodigoAplicable != null) {\r\n res.data.CodigoAplicable.Pedido = null;\r\n res.data.CodigoAplicable.Carrito = null;\r\n res.data.CodigoAplicable.RegistroCodigoAplicable = null;\r\n }*/\r\n setItem(\"carrito\", res.data);\r\n setCarritoData(res.data);\r\n setRecargar(false);\r\n } else {\r\n if (res.error) {\r\n SweetAlert(3, \"Acción Interrumpida\", res.error, \"\", \"Entendido\", () => { });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n }\r\n hideSpinner();\r\n },//fin de retrieve\r\n (e) => {\r\n\r\n hideSpinner();\r\n let err =\r\n \"Carrito: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n // console.log(e.message, e)\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n }\r\n );\r\n }\r\n\r\n }\r\n const CambiarPromo = (promo) => {\r\n showSpinner();\r\n //console.log(\"obj\", promo);\r\n Retrieve(ListaEndpoints.CARRITO, \"GetAplicarCodigoCarrito\" + `?idCarrito=${getItem(\"carrito\").id}&idCodigo=${promo != null ? promo.id : 0}`, \"\")\r\n .then((res) => {\r\n //console.log(\"Cambiar promocion\", res);\r\n if (res.data) {\r\n setPromocion(promo);\r\n setItem(\"carrito\", res.data);\r\n setCarritoData(res.data);\r\n setRecargar(false);\r\n } else {\r\n if (res.error) {\r\n SweetAlert(3, \"Acción Interrumpida\", res.error, \"\", \"Entendido\", () => { });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n setPromocion(null);\r\n }\r\n\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n setRecargar(false);\r\n setPromocion(null);\r\n let err =\r\n \"Carrito: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n console.log(e.message, e)\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n\r\n });\r\n }\r\n useEffect(() => {\r\n if (getItem(\"carrito\")) {\r\n if (recargar) {\r\n ListarCarrito();\r\n }\r\n }\r\n }, [recargar]);\r\n return (\r\n {\r\n CambiarPromo,\r\n ListarCarrito,\r\n carritoData,\r\n setCarritoData,\r\n recargarCarrito: recargar,\r\n spinnerCarrito: spinner,\r\n promocion,\r\n impuesto: IMPUESTO_VENTA,\r\n userId: getItem(\"usuario\").userId\r\n }\r\n )\r\n}\r\n","import { SIGNO_MONEDA } from \"../config/Config\";\r\n\r\nconst FormatMoney = (num) => {\r\n return '' +SIGNO_MONEDA+ num.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\r\n}\r\n\r\nexport default FormatMoney;","import React from 'react';\r\nimport \"../../css/IconPromo.css\";\r\nconst IconPromo = ({word,alto,ancho }) => {\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {word}
    \r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default IconPromo;","import React, { useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { Trash2, Edit } from \"react-feather\";\r\nimport ErrorForm from \"./../Formularios/ErrorForm.js\";\r\nimport {\r\n Create,\r\n Delete,\r\n SwalToast,\r\n SweetAlert,\r\n} from \"../../services/ControlActions\";\r\nimport Modal from \"react-modal\";\r\nimport {\r\n ListaEndpoints, \r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL, MODAL_STYLES\r\n} from \"../../config/Config\";\r\n\r\nimport { setItem } from \"../../services/UseLocalStorage\";\r\nimport FormatMoney from \"../../services/FormatMoney\";\r\nimport Spinner from \"./Spinner\";\r\nimport IconPromo from \"./IconPromo\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { img_default_servicio } from '../../images/imagesURL'\r\n\r\nconst CardProductoCarrito = ({ data, descuento }) => {\r\n const [modalOpen, setModalOpen] = useState(false);\r\n const { register, handleSubmit, errors } = useForm();\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const productoData = data;\r\n\r\n\r\n //para modificar la cantidad\r\n const modificarProducto = (pda) => {\r\n\r\n if (document.getElementById(\"btnModificar\" + pda.id).disabled === false) {\r\n showSpinner();\r\n document.getElementById(\"btnModificar\" + pda.id).disabled = true;\r\n let input = document.querySelector(\"#npt\" + pda.id);\r\n let valor = input.value;\r\n\r\n\r\n\r\n let data = {\r\n id: pda.id,\r\n correoCuenta: valor,//valor del input\r\n idProducto: pda.idProducto,\r\n idPadre: pda.idPadre,\r\n idCarrito: pda.idCarrito,\r\n impuesto: pda.impuesto,\r\n observacion: pda.observacion,\r\n precio: pda.precio,\r\n cantidad: pda.cantidad,\r\n descuento: pda.descuento,\r\n idCuenta: 1\r\n\r\n }\r\n\r\n // console.log(\"dato\", pda);\r\n Create(ListaEndpoints.CARRITO, \"UpdateProductoCarrito\", \"\", data)\r\n .then((res) => {\r\n if (res.data) {\r\n setItem(\"carrito\", res.data);\r\n setModalOpen(false);\r\n\r\n SwalToast(2, \"Carrito de compras actualizado\", () => { }, 3000);\r\n } else {\r\n let err = \"Modificar producto: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n console.error(res);\r\n }\r\n hideSpinner();\r\n document.getElementById(\"btnModificar\" + pda.id).disabled = false;\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"Modificar producto: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n document.getElementById(\"btnModificar\" + pda.id).disabled = false;\r\n });\r\n }\r\n };\r\n\r\n const eliminarProducto = (pda) => {\r\n if (document.getElementById(\"btnEliminar\" + pda.id).disabled === false) {\r\n showSpinner();\r\n document.getElementById(\"btnEliminar\" + pda.id).disabled = true;\r\n\r\n Delete(ListaEndpoints.CARRITO, \"DeleteProductoCarrito\", \"\", pda)\r\n .then((res) => {\r\n if (res.data) {\r\n setItem(\"carrito\", res.data);\r\n SwalToast(2, \"Carrito de compras actualizado\", () => { }, 3000);\r\n } else {\r\n let err = \"Eliminar producto: Error: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n console.error(\"error:\" + err);\r\n }\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"Eliminar producto: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n }\r\n };\r\n const showModal = (pdatos) => {\r\n setModalOpen(true)\r\n setTimeout(() => {\r\n let input = document.getElementById(\"npt\" + pdatos.id);\r\n // console.log(input)\r\n input.value = pdatos.correoCuenta;\r\n }, 500);\r\n\r\n }; //fin modalModificar\r\n\r\n const modalModificar = (pdatos) => {\r\n\r\n let titulo =

    ¿Desea cambiar la cuenta a aplicar?

    ;\r\n let contenido = (\r\n <>\r\n
    \r\n
    \r\n \r\n\r\n \r\n {errors.email ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n );\r\n let botones = (\r\n <>\r\n modificarProducto(pdatos))}\r\n className=\"btn btn-primary \"\r\n >\r\n Modificar\r\n \r\n setModalOpen(false)}\r\n className=\"btn btn-primary \"\r\n >\r\n {\" \"}\r\n Cancelar{\" \"}\r\n \r\n \r\n );\r\n\r\n let style = MODAL_STYLES;\r\n style.content.maxWidth = \"50%\"\r\n\r\n return (\r\n setModalOpen(false)}\r\n style={style}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n setModalOpen(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    {contenido}
    \r\n
    {botones}
    \r\n
    \r\n \r\n );\r\n }; //fin modalModificar\r\n let subTotal = productoData.precio /** productoData.cantidad*/;\r\n let montoDescuento = subTotal * descuento;\r\n let SubTotalDescuento = (subTotal - montoDescuento);\r\n // let total = (SubTotalDescuento * impuesto);\r\n return (\r\n <>\r\n {modalModificar(productoData)}\r\n {spinner}\r\n
    \r\n {descuento > 0 ? : null}\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {productoData.urlLogoServicio ? \"item\"\r\n : \"item\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n {productoData.nombrePro}\r\n
    \r\n\r\n
    \r\n {descuento > 0 ? {FormatMoney(subTotal)} : null} {FormatMoney(SubTotalDescuento)}\r\n\r\n
    \r\n

    {productoData.descripcionPro}

    \r\n showModal(productoData)} >Cuenta: {productoData.correoCuenta !== \"\" ? productoData.correoCuenta : \"Sin cuenta a aplicar (Agregar)\"}\r\n\r\n
    \r\n Disponibilidad: En Stock\r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n eliminarProducto(productoData)}\r\n >\r\n \r\n \r\n showModal(productoData)}\r\n >\r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default CardProductoCarrito;\r\n","import React, { useState, useEffect } from 'react';\r\nimport FormatMoney from '../../services/FormatMoney';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { PostWithToken } from \"../../services/ControlActions\";\r\nimport { ListaEndpoints } from \"../../config/Config\";\r\n\r\nconst CardTotal = (props) => {\r\n const { history } = props;\r\n let { data } = props;\r\n const [monto, setMonto] = useState({\r\n total: 0.0,\r\n impuesto: 0.0,\r\n subTotal: 0.0,\r\n descuento: 0.0,\r\n totalDecuento: 0.0,\r\n totalImpuesto: 0.0\r\n });\r\n const [mensaje, setMensaje] = useState(\"\");\r\n\r\n const IrPagoPage = () => {\r\n // console.log(history);\r\n history.push(\"/pago\");\r\n };\r\n const calcularMonto = () => {\r\n\r\n PostWithToken(ListaEndpoints.ACCION, \"CalcularMonto\", \"\", data).then(\r\n (res) => {\r\n //console.log(\"res\", res)\r\n if (res.ok) {\r\n setMonto(res.data)\r\n } else {\r\n setMensaje(res.error)\r\n }\r\n },\r\n (error) => {\r\n // console.log(error)\r\n setMensaje(\"no se pudo calcular\")\r\n }\r\n );\r\n }\r\n useEffect(() => {\r\n // console.log(\"entró\",data)\r\n calcularMonto();\r\n }, [props]);\r\n return (\r\n
    \r\n

    Cargo Total

    \r\n\r\n {(mensaje === null || mensaje === \"\") && monto != null ?
      \r\n
    • \r\n Subtotal {FormatMoney(monto.subTotal)}\r\n
    • \r\n {monto.totalDecuento > 0 ? \r\n
    • Descuento ({monto.descuento * 100 + \"%\"})\r\n - {FormatMoney(monto.totalDecuento)}\r\n
    • : null}\r\n
    • \r\n I.V.A ({monto.impuesto * 100 + \"%\"})\r\n + {FormatMoney(monto.totalImpuesto)}\r\n
    • \r\n
    • \r\n Total{\" \"}\r\n \r\n {FormatMoney(monto.total)}\r\n \r\n
    • \r\n\r\n
    :

    {mensaje}

    }\r\n\r\n IrPagoPage()}\r\n className=\"btn btn-primary\"\r\n disabled={mensaje != null && mensaje !== \"\" && monto == null}\r\n >\r\n Pagar\r\n \r\n
    \r\n );\r\n};\r\nexport default withRouter(CardTotal);","import React from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nconst CardInfo = (props) => {\r\n const { history } = props;\r\n\r\n return (\r\n
    \r\n
    Importante:
    \r\n\r\n {/*
      */}\r\n {/*
    • */}\r\n

      Si desea que su recarga y/o plan se active automáticamente debe asignar la cuenta en cada producto del carrito dandole click en la linea que dice Cuenta: Sin cuenta a aplicar (Agregar) e ingresar la cuenta de correo de la respectiva cuenta, de lo contrario deberá comunicarse con nuestro departamento de servicio al cliente para realizar la activación manual.

      \r\n{/*
    • */}\r\n {/*
    • */}\r\n {/* En el caso de productos de facel, Facturelo: Sistema activará los planes siempre y cuando la cuenta se encuentre registrada y permita la activación de ese plan.*/}\r\n {/*
    • */}\r\n {/*
    • */}\r\n {/* En el caso de productos de facturelo: Adicionalmente de la activación, la compra de planes adicionales agregará documentos a un plan ya activo.*/}\r\n {/*
    • */}\r\n {/*
    • */}\r\n {/* En el caso de productos de Milleniun: el sistema le enviará un correo del pedido y pronto un compañero de sigma lo contactará para realizar la instalación manual.*/}\r\n {/*
    • */}\r\n {/*Agregar la info de los productos faltantes */}\r\n\r\n {/*
    */}\r\n\r\n
    \r\n );\r\n};\r\nexport default withRouter(CardInfo);","import React, { useState, useEffect } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { Edit, X } from \"react-feather\";\r\nimport ErrorForm from \"./../Formularios/ErrorForm.js\";\r\nimport {\r\n SwalToast,\r\n SweetAlert,\r\n Retrieve,\r\n SweetAlert2\r\n} from \"../../services/ControlActions\";\r\nimport { ListaEndpoints} from \"../../config/Config\";\r\nimport Spinner from \"./Spinner\";\r\nimport IconPromo from \"./IconPromo\";\r\n\r\n\r\n\r\nconst CardProductoCarrito = ({ idCodigo, setPromo, userId }) => {//setpromo = metodo para validar la promocion y agregarla al carrito\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n\r\n const [codigoAplicable, setCodigoAplicable] = useState(null)\r\n const { register, handleSubmit, errors } = useForm();\r\n\r\n const [agregar, setAgregar] = useState(true);\r\n\r\n\r\n\r\n useEffect(() => {//busca la promoción y valida su existencia y si se puede aplicar a este user\r\n\r\n if (idCodigo > 0 && idCodigo != null) {\r\n //falta la logica para buscar\r\n\r\n Retrieve(ListaEndpoints.CODIGO_APLICABLE, \"GetCodigoAplicableById\", idCodigo)\r\n .then((retr) => {\r\n //console.log(\"use effect\",retr);\r\n if (retr) {\r\n if (retr.data) {//si está disponible\r\n\r\n Retrieve(ListaEndpoints.CODIGO_APLICABLE, `GetValidaCodigo?codigo=${retr.data.codigo}&userId=${userId}`, \"\")\r\n .then((res) => {\r\n if (res) {\r\n //console.log(res);\r\n if (res.ok) {//si está disponible\r\n setCodigoAplicable(res.data);\r\n\r\n setPromo(res.data)\r\n SwalToast(2, \"Promoción Aplicada\", () => { }, 3000);\r\n setAgregar(false);\r\n } else {\r\n setCodigoAplicable(null);\r\n setPromo(null)\r\n\r\n let err = \"Promociones \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n\r\n }\r\n\r\n } else {\r\n setCodigoAplicable(null);\r\n setPromo(null)\r\n let err = \"Promociones:\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n // console.log(res);\r\n\r\n }\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"Promociones: No se pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n\r\n });\r\n\r\n\r\n\r\n } else {\r\n setCodigoAplicable(null);\r\n setPromo(null)\r\n\r\n let err = \"Promociones: \" + retr.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n\r\n }\r\n\r\n } else {\r\n setCodigoAplicable(null);\r\n setPromo(null)\r\n let err = \"Promociones: \" + retr.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n // console.log(res);\r\n }\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"Promociones: No se pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n\r\n }\r\n }, [idCodigo]);\r\n\r\n const validarCodigo = () => {\r\n\r\n if (document.getElementById(\"btnAgregarCodigo\").disabled === false) {\r\n showSpinner();\r\n document.getElementById(\"btnAgregarCodigo\").disabled = true;\r\n let input = document.querySelector(\"#nptCodigoPromo\");\r\n let valor = input.value;\r\n\r\n // let carritoTem = getItem(\"carrito\");\r\n // carritoTem.codigo = valor;//agrega el codigo\r\n\r\n\r\n // console.log(\"validar codigo\", valor);\r\n Retrieve(ListaEndpoints.CODIGO_APLICABLE, `GetValidaCodigo?codigo=${valor}&userId=${userId}`, \"\")\r\n .then((res) => {\r\n if (res) {\r\n // console.log(\"valida promo\", res);\r\n if (res.ok) {//si está disponible\r\n setCodigoAplicable(res.data);\r\n\r\n setPromo(res.data)\r\n SwalToast(2, \"Promoción Aplicada\", () => { }, 3000);\r\n setAgregar(false);\r\n } else {\r\n setCodigoAplicable(null);\r\n setPromo(null)\r\n\r\n let err = \"Promociones: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n\r\n }\r\n\r\n } else {\r\n setCodigoAplicable(null);\r\n setPromo(null)\r\n let err = \"Promociones: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n // console.log(res);\r\n\r\n }\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"Promociones: No se pudo conectar al servidor, inténtelo de nuevo más tarde.\" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n\r\n });\r\n document.getElementById(\"btnAgregarCodigo\").disabled = false;\r\n }\r\n\r\n };\r\n\r\n const eliminarCodigo = () => {\r\n\r\n SweetAlert2(3, \"Desea Eliminar la promoción?\", \"Mientras siga vigente, podrá usar la promoción en otro momento\", \"\", \"Cancelar\",\r\n () => { }, \"Entendido\",\r\n () => {\r\n setAgregar(true);\r\n setCodigoAplicable(null);\r\n setPromo(null);\r\n\r\n });\r\n\r\n\r\n\r\n }\r\n return (\r\n <>\r\n\r\n {spinner}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {agregar === false ? : }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n agregar ?\r\n //logica de agregar\r\n
    \r\n {/**Codigo */}\r\n
    \r\n \r\n \r\n\r\n\r\n {errors.codigo ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n validarCodigo())}\r\n className=\"btnIconCarrito\"\r\n >\r\n Aplicar\r\n \r\n\r\n
    : <>\r\n
    \r\n
    {codigoAplicable.codigo}
    \r\n
    \r\n

    {codigoAplicable.descripcion}

    \r\n\r\n \r\n\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {agregar ?\r\n null\r\n :\r\n //opciones de modificar y eliminar la promoción\r\n <>\r\n { eliminarCodigo() }}\r\n className=\"btnIconCarrito\"\r\n >\r\n \r\n \r\n\r\n { setAgregar(true); }}\r\n className=\"btnIconCarrito\"\r\n >\r\n \r\n \r\n }\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default CardProductoCarrito;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { UseCarritoState } from '../hooks/UseCarritoState';\r\nimport CardProductoCarrito from './Visuales/CardProductoCarrito';\r\nimport { withRouter } from 'react-router-dom';\r\nimport CardTotal from './Visuales/CardTotal';\r\nimport CardInfo from './Visuales/CardInfo';\r\nimport CardPromocion from './Visuales/CardPromocion';\r\n\r\nconst Carrito = () => {\r\n\r\n const { spinnerCarrito, recargarCarrito, carritoData, promocion, impuesto, userId, CambiarPromo } = UseCarritoState();\r\n const BtnSeguirComprando = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Continuar Comprando\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n
    \r\n {spinnerCarrito}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n {recargarCarrito === false && carritoData != null ? (\r\n carritoData.ProductoCarrito.length === 0 ? (\r\n
    \r\n
    Actualmente no cuenta con productos
    \r\n
    \r\n ) : (\r\n
    \r\n\r\n {carritoData.ProductoCarrito?.map((pdato) => (\r\n \r\n ))}\r\n {BtnSeguirComprando()}\r\n
    \r\n )\r\n ) : (\r\n
    \r\n
    \r\n Cargando...\r\n
    \r\n
    \r\n )}\r\n {recargarCarrito === false && carritoData != null ?\r\n carritoData.ProductoCarrito.length === 0 ?\r\n (null) : (<>\r\n
    \r\n \r\n

    \r\n \r\n
    \r\n ) : null}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default withRouter(Carrito);\r\n","import React,{useEffect} from 'react';\r\nimport Carrito from '../components/Carrito';\r\nimport EncabezadoFiguras from '../components/Visuales/EncabezadoFiguras';\r\nimport { withRouter } from 'react-router-dom';\r\nimport {getItem} from '../services/UseLocalStorage';\r\n\r\nconst CarritoPage = (props) => {\r\n const { history } = props; \r\n useEffect(() => {\r\n if (!getItem('carrito')) {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n });\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\nexport default withRouter(CarritoPage);\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nexport const UsePagination = () => {\r\n\r\n const [totalItems, setTotalItems] = useState(0);//total de items\r\n const [countItems, setCountItems] = useState(10);//cantidad de item por page\r\n const [currentPage, setCurrentPage] = useState({ pageNum: 1, skip: 0 });//pagina actual\r\n const [pages, setPages] = useState([])\r\n // totalItems % countItems == 0 ? totalItems / countItems : Math.trunc(totalItems / countItems) + 1;\r\n\r\n useEffect(() => {\r\n\r\n let pagesCount = Math.ceil(totalItems / countItems);\r\n let pages = [];\r\n let skips = 0;\r\n if (totalItems > 0) {\r\n for (let index = 0; index < pagesCount; index++) {\r\n pages.push({ pageNum: index + 1, skip: skips });\r\n skips += countItems;\r\n }\r\n } else {\r\n pages.push({ pageNum: 1, skip: 0 });\r\n }\r\n\r\n setPages(pages);\r\n }, [totalItems, countItems])\r\n const nextPage = () => {\r\n let item = getLast();\r\n if (item !== undefined && item !== null && currentPage.pageNum !== item.pageNum) {\r\n setCurrentPage(pages.find(e => e.pageNum === currentPage.pageNum + 1))\r\n }\r\n\r\n }\r\n const previous = () => {\r\n let item = getFirst();\r\n if (item !== undefined && item !== null && currentPage.pageNum !== item.pageNum) {\r\n setCurrentPage(pages.find(e => e.pageNum === currentPage.pageNum - 1))\r\n }\r\n\r\n }\r\n const getLast = () => pages.slice(-1).pop();\r\n const getFirst = () => pages.slice(0, 1).pop();\r\n const goPage = (page) => {\r\n\r\n if (page !== undefined && page !== null && currentPage.pageNum !== page.pageNum) {\r\n setCurrentPage(page)\r\n }\r\n\r\n }\r\n const goFirstPage = () => {\r\n setCurrentPage({ pageNum: 1, skip: 0 });\r\n }\r\n const isTheLast = () => {\r\n let item = getLast();\r\n if (item !== undefined && item !== null && currentPage.pageNum == item.pageNum) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n const Pagination = () => {\r\n // console.log(\"hola buenas \", pages)\r\n return (\r\n <>\r\n
    {`Mostrando resultados del ${currentPage.skip + 1} al ${isTheLast() ? totalItems : currentPage.skip + countItems} de un total de ${totalItems} registros`}
    \r\n
      \r\n
    • \r\n \r\n
    • \r\n {pages?.length > 0 ? <>\r\n {pages.map(page =>\r\n
    • \r\n \r\n
    • \r\n )}\r\n :\r\n
    • \r\n \r\n
    • \r\n }\r\n
    • \r\n \r\n
    • \r\n
    \r\n \r\n )\r\n }\r\n return (\r\n {\r\n Pagination,\r\n setTotalItems,\r\n setCountItems,\r\n goFirstPage,\r\n countItems,\r\n currentPage\r\n }\r\n )\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoFiguras from '../components/Visuales/EncabezadoFiguras';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, IMPUESTO_VENTA } from '../config/Config';\r\nimport FormatMoney from \"../services/FormatMoney\";\r\nimport { GetWithToken, SweetAlert } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport moment from 'moment';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport \"moment\"\r\nimport { UsePagination } from '../hooks/UsePagination';\r\nimport ErrorForm from \"../components/Formularios/ErrorForm.js\";\r\nimport { Search } from 'react-feather';\r\nconst place = \"Pedidos\";\r\nconst HistorialPedidos = (props) => {\r\n const { history } = props;\r\n\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n const [listEstados, setListEstados] = useState({ data: {}, cargando: true });\r\n //#region datatables\r\n const TblID = \"tblPedidosAdm\";\r\n const [list, setList] = useState(null);\r\n const [datatable, setDatatable] = useState(null)\r\n //filtros\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [fechaI, setFechaI] = useState(moment().subtract(1, 'months').format(\"YYYY-MM-DD\"));\r\n const [fechaF, setFechaF] = useState(moment().format(\"YYYY-MM-DD\"));\r\n const [estadoSelected, setEstadoSelected] = useState(0);//0 = todos\r\n const [ignorarF, setIgnorarF] = useState(false);//ignorar las fechas en el filtro\r\n //pagination \r\n const { Pagination, setTotalItems, setCountItems, goFirstPage, countItems, currentPage } = UsePagination();\r\n //const [cargando, setCargando] = useState(false);\r\n //const [edit, setEdit] = useState(false);\r\n\r\n useEffect(() => {\r\n initData();\r\n }, []);\r\n useEffect(() => {\r\n try {\r\n // el validador de los campos de los filtros\r\n recargarLista();\r\n } catch (e) {\r\n console.error(\"error\", e)\r\n }\r\n }, [currentPage])\r\n const startDatatable = () => {\r\n // console.log(\"start\")\r\n setDatatable($(\"#\" + TblID).DataTable({\r\n scrollX: true,\r\n processing: true,\r\n destroy: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n \"paging\": false,//paginacion\r\n \"ordering\": false,\r\n \"info\": false,\r\n \"colReorder\": false,//ordenamiento des o asc\r\n \"searching\": true,//buscador\r\n \"bLengthChange\": false,//cantidad de registro por page\r\n \"order\": [[0, \"desc\"]]\r\n }));\r\n }\r\n const destroyDatatable = () => {\r\n if (datatable != null) {\r\n datatable.destroy();\r\n setDatatable(null)\r\n }\r\n }\r\n const recargarLista = async () => {\r\n destroyDatatable();\r\n listar().then((res) => {\r\n // console.log(\"res\", res)\r\n if (res) {\r\n startDatatable();\r\n }\r\n })\r\n }\r\n const onChangeFechaI = (val) => {\r\n // console.log(\"Fecha i\", val)\r\n setFechaI(val);\r\n }\r\n\r\n const onChangeFechaF = (val) => {\r\n //console.log(\"Fecha f\", val)\r\n setFechaF(val);\r\n }\r\n\r\n const buscar = (data) => {\r\n\r\n setEstadoSelected(data.estadoF);\r\n setCountItems(parseInt(data.cantidad));\r\n //console.log(\"data\", data)\r\n setTimeout(() => {\r\n goFirstPage();\r\n }, 500)\r\n\r\n }\r\n //#endregion\r\n\r\n const initData = () => {//solo se deberia ejecutar una vez\r\n if (getItem('usuario')) {\r\n\r\n try {\r\n listarEstados();\r\n } catch (error) {\r\n alert(\"Acción Interrumpida:\", error.message);\r\n }\r\n\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n }\r\n const GetColor = (i) => {\r\n switch (i) {\r\n case 1: return \"rgb(226, 114, 114)\";//rojo\r\n\r\n case -1: return \"rgb(226, 114, 114)\";//rojo\r\n\r\n case 2:\r\n return \"rgb(118, 226, 114)\";//verde\r\n case 12:\r\n return \"rgb(118, 226, 114)\";//verde\r\n case 11:\r\n return \"rgb(118, 226, 114)\";//verde\r\n default:\r\n return \"rgb(114, 162, 226)\";//azul\r\n\r\n }\r\n }\r\n const listar = async () => {\r\n showSpinner();\r\n /* console.log(\"data\", `GetBuscarPedidos?fechaI=${fechaI}&fechaF=${fechaF}&idEstado=${estadoSelected}\r\n &ignorarFecha=${ignorarF}&cantidad=${cantidad}&pagina=${paginaActual}`);\r\n */\r\n let ok = false;\r\n await GetWithToken(ListaEndpoints.PEDIDO, `GetBuscarPedidosByIdUser?fechaI=${fechaI}&fechaF=${fechaF}&idEstado=${estadoSelected}\r\n &ignorarFecha=${ignorarF}&cantidad=${countItems}&pagina=${currentPage.skip}&idUser=${getItem('usuario').userId}`).then((res) => {\r\n // console.log(\"res pedidos\", res.data)\r\n if (res.data) {\r\n setList(res.data);\r\n setTotalItems(res.data.total);\r\n setCountItems(res.data.count);\r\n ok = true;\r\n } else {\r\n if (res.Message) {\r\n let err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n } else {\r\n let err = place + \":\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n return ok;\r\n\r\n }\r\n const listarEstados = async () => {\r\n // showSpinner();\r\n await GetWithToken(ListaEndpoints.ESTADO_PEDIDO, \"GetEstadosPedido\").then((res) => {\r\n // console.log(\"Listar estados \", res)\r\n if (res.ok) {\r\n setListEstados({ data: res.data, cargando: false });\r\n } else {\r\n let err = \"Estados del pedido: \" + res.error;\r\n if (res.Message) {\r\n err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n setListEstados({ data: null, cargando: false });\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000)\r\n } else {\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n setListEstados({ data: null, cargando: false });\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = \"Estados del pedido: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setListEstados({ data: null, cargando: false });\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000);\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n\r\n }\r\n const calculatTotal = (data) => {\r\n let subTotalDescuento = data.precioTotal - (data.precioTotal * data.descuento);\r\n return subTotalDescuento + (subTotalDescuento * IMPUESTO_VENTA);\r\n }\r\n const irPedido = (data) => {\r\n history.push(\"/pedido/\" + data.id)\r\n }\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {errors.cantidad ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n\r\n setIgnorarF(!ignorarF)}\r\n ref={register()}\r\n style={{ width: \"20px\", display: \"inline-block\", height: \"20px\", marginLeft: \"10px\", marginRight: \"20px\" }}\r\n />\r\n
    \r\n {/**Fecha inicial */}\r\n
    \r\n \r\n onChangeFechaI(e.target.value)}\r\n ref={register({\r\n validate: {\r\n value: (val) => {\r\n\r\n // console.log(moment(val), moment(moment().format(\"YYYY-MM-DD\")))\r\n //console.log(moment(val) > moment(moment().format(\"YYYY-MM-DD\")))\r\n if (val) {\r\n if (moment(val) > moment(moment().format(\"YYYY-MM-DD\"))) {\r\n\r\n return \"La fecha inicial no puede ser posterior a la fecha actual\"\r\n } else {\r\n if (moment(val) > moment(moment(fechaF))) {\r\n return \"La fecha inicial no puede ser posterior a la fecha final\"\r\n } else {\r\n return true;\r\n }\r\n }\r\n } else {\r\n return \"Fecha Inválida\"\r\n }\r\n // return true // solo para pruebas\r\n },\r\n },\r\n })}\r\n />\r\n {errors.fechaI ? (\r\n\r\n

    {errors.fechaI.message}

    \r\n ) : null}\r\n
    \r\n {/**Fecha final */}\r\n
    \r\n \r\n onChangeFechaF(e.target.value)}\r\n ref={register({\r\n validate: {\r\n value: (val) => {\r\n // console.log(moment(val), moment(moment().format(\"YYYY-MM-DD\")))\r\n // console.log(moment(val) < moment(moment().format(\"YYYY-MM-DD\")))\r\n if (val) {\r\n if (moment(val) > moment(moment().format(\"YYYY-MM-DD\"))) {\r\n\r\n return \"La fecha final no puede ser posterior a la fecha actual\"\r\n } else {\r\n if (moment(val) < moment(moment(fechaI))) {\r\n return \"La fecha final no puede ser anterior a la fecha inicial\"\r\n } else {\r\n return true;\r\n }\r\n }\r\n } else {\r\n return \"Fecha Inválida\"\r\n }\r\n // return true // solo para pruebas\r\n },\r\n },\r\n })}\r\n />\r\n {errors.fechaF ? (\r\n

    {errors.fechaF.message}

    \r\n\r\n ) : null}\r\n
    \r\n {/**estado filtro */}\r\n
    \r\n \r\n {listEstados.cargando == false ? listEstados.data != null ?\r\n\r\n \r\n : \"Sin Información\" : \"Cargando...\"\r\n }\r\n {errors.estadoF ? (\r\n \r\n ) : null}\r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n {list == null ?\r\n ( Cargando...) : (\r\n list.data.map(pdato =>\r\n\r\n { irPedido(pdato) }}>\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n )\r\n )\r\n }\r\n\r\n \r\n
    FacturaClienteFechaPrecio TotalEstado
    \r\n\r\n {pdato.referenciaFacel}\r\n \r\n {pdato.nombre}\r\n \r\n \r\n {pdato.fecha ? moment(pdato.fecha).format('YYYY/MM/DD, hh:mm a') : null}\r\n \r\n \r\n \r\n {FormatMoney(calculatTotal(pdato))}\r\n \r\n \r\n\r\n
    {pdato.estadoString}
    \r\n\r\n
    \r\n
    \r\n {/**aqui va el use pagination */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(HistorialPedidos);\r\n","import React, { useEffect, useState } from 'react';\r\nimport EncabezadoFiguras from '../components/Visuales/EncabezadoFiguras';\r\nimport { Link } from 'react-router-dom';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { GetWithToken, SweetAlert, SwalToast } from '../services/ControlActions';\r\nimport { ListaEndpoints, IMPUESTO_VENTA } from '../config/Config';\r\nimport FormatMoney from \"../services/FormatMoney\";\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport moment from 'moment';\r\nimport $, { cssNumber } from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport { img_default_servicio } from '../images/imagesURL'\r\n\r\nconst Pedido = (props) => {\r\n const { history, match } = props;\r\n const [dataPedido, setDataPedido] = useState({ data: null, cargando: true });\r\n const [table, setTable] = useState(true);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n const [promocion, setPromocion] = useState(null);\r\n const IMPUESTO = IMPUESTO_VENTA;\r\n const ID = match.params.id;\r\n const TBLID = \"tblPedido\" + ID;\r\n\r\n useEffect(() => {\r\n\r\n if (!getItem('usuario')) {\r\n\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n if (dataPedido.cargando == true) {\r\n\r\n showSpinner()\r\n let usuario = getItem(\"usuario\");\r\n GetWithToken(ListaEndpoints.PEDIDO, \"GetPedidoById\", ID).then((res) => {\r\n if (res.data) {\r\n\r\n if (usuario.uTipo != \"tp\"&&usuario.uTipo != \"sc\") {\r\n if (res.data.idUsuario + \"\" == usuario.userId) { //el pedido no es de este usuario \r\n setDataPedido({ data: res, cargando: false });\r\n\r\n } else {\r\n setDataPedido({ data: null, cargando: false });\r\n let err = \"Pedido: No puedes visualizar este pedido\";\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n\r\n }\r\n\r\n\r\n } else {\r\n setDataPedido({ data: res, cargando: false });\r\n\r\n }\r\n } else {\r\n setDataPedido({ data: null, cargando: false });\r\n let err = \"Pedido: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n }\r\n hideSpinner();\r\n }).catch((e) => {\r\n let err = \"Pedidos: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setDataPedido({ data: null, cargando: false });\r\n hideSpinner();\r\n });\r\n\r\n } else {\r\n try {\r\n //console.log(\"tabla\", table)\r\n if (table) {\r\n setTable(false);\r\n $(\"#\" + TBLID).DataTable({ \r\n scrollX: true, \r\n processing: true,\r\n destroy: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n \"ordering\": true,\r\n \"info\": true,\r\n \"colReorder\": true,\r\n // \"searching\": false,\r\n \"bLengthChange\": false,\r\n dom: 'Blfrtip',\r\n buttons: [\r\n {\r\n extend: 'collection',\r\n text: 'Exportar ',\r\n className: \"botonesSecundarios\",\r\n buttons: [\r\n {\r\n extend: 'csv',\r\n text: 'CSV',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_csv',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'pdfHtml5',\r\n text: 'PDF',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_pdf',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'excel',\r\n text: 'Excel',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_excel',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'copy',\r\n title: 'Listado de Facturas',\r\n text: 'Copiar',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'print',\r\n title: 'Listado de Facturas',\r\n text: 'Imprimir',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n \r\n }\r\n ],\r\n }\r\n ],\r\n dropup: true,\r\n \"order\": [[0, \"desc\"]]\r\n });\r\n\r\n }\r\n } catch (error) {\r\n //console.log(\"error de datatables\", error)\r\n let err = \"-Table: Acción Interrumpida.\\n \" + error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }, [hideSpinner, history, dataPedido.cargando, showSpinner, table]);\r\n\r\n\r\n\r\n\r\n\r\n const irAtras = () => {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n const calcularTotal = (data) => {\r\n let subTotalDescuento = data.precioTotal - (data.precioTotal * data.descuento);\r\n return subTotalDescuento + (subTotalDescuento * IMPUESTO_VENTA);\r\n }\r\n const calcularDescuento = (data) => {\r\n\r\n return (data.precioTotal * data.descuento);\r\n }\r\n const calcularImpuesto = (data) => {\r\n let subTotalDescuento = data.precioTotal - (data.precioTotal * data.descuento);\r\n return (subTotalDescuento * IMPUESTO_VENTA);\r\n }\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n {dataPedido.data === null ? (\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    No hay nada que mostrar\r\n

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Detalle del pedido\r\n \r\n

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {dataPedido.cargando === false ? (\r\n\r\n dataPedido.data === null /*dataPedido.data.data.DetallePedido.length === 0 ? */ ?\r\n (null) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {dataPedido.data.data.idCodigoAplicable > 0 ? \r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n ) : (\r\n
    cargando
    \r\n )\r\n }\r\n\r\n \r\n
    Cliente \r\n {dataPedido.data.data.nombre}\r\n
    Teléfono \r\n {dataPedido.data.data.telefono}\r\n
    Fecha de registro \r\n {dataPedido.data.data.fecha ?\r\n moment(dataPedido.data.data.fecha).format('YYYY/MM/DD, hh:mm a') : null}\r\n
    Pais \r\n {dataPedido.data.data.pais_nombre}\r\n
    Comprobante \r\n {dataPedido.data.data.referenciaFacel}\r\n
    Estado {dataPedido.data.data.estadoString}\r\n
    {\"Descuento (\" + dataPedido.data.data.descuento * 100 + \"%)\"} {FormatMoney(calcularDescuento(dataPedido.data.data))}\r\n
    {\"Impuesto (\" + IMPUESTO * 100 + \"%)\"} {FormatMoney(calcularImpuesto(dataPedido.data.data))}\r\n
    {\"Total \"} {FormatMoney(calcularTotal(dataPedido.data.data))}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {dataPedido.cargando === false ? (\r\n\r\n dataPedido.data === null /*dataPedido.data.data.DetallePedido.length === 0 ? */ ?\r\n (null) : (\r\n dataPedido.data.data.DetallePedido.map(pdato =>\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n )\r\n )\r\n ) : (\r\n
    cargando
    \r\n )\r\n }\r\n\r\n \r\n
    ServicioProductoCuentaPrecio Unidad
    \r\n\r\n \r\n {pdato.Producto.urlImagen ? \"item\"\r\n : \"item\"}\r\n \r\n \r\n {pdato.nombreProducto}\r\n \r\n {pdato.correoCuenta!= \"\" ? pdato.correoCuenta: \"Sin cuenta aplicada\"}\r\n \r\n \r\n {FormatMoney(pdato.precioUnidad)}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Pedido);\r\n","import React from \"react\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { Download } from \"react-feather\";\r\nimport { Link } from \"react-router-dom\"\r\n//import ruta from \"../../public/prueba.pdf\";\r\nconst Distribuidores = () => {\r\n\r\n { {/* a Descargar información*/ } }\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n

    ¿Quiere ser distribuidor?

    \r\n
    \r\n
    \r\n {/*\r\n

    Requisitos

    \r\n\r\n
      \r\n
    • Tener cartera de clientes

    • \r\n
    • Recibir capacitación a cerca de nuestros clientes

    • \r\n
    • Acuerdo comercial

    • \r\n\r\n
    \r\n*/}\r\n

    Beneficios y Comisiones

    \r\n\r\n

    \r\n ¿Le gustaría tener ingresos extra? únase a la familia de Sigma distribuidores y disfrute de nuestros beneficios.\r\n

    \r\n

    Ponemos a su disposición nuestra plataforma de facturación electrónica amigable,\r\n fácil y segura donde agilizará y potencializará su negocio de una forma efectiva,\r\n nuestros reportes le ayudan a llevar un mayor control de sus ventas.\r\n

    \r\n
      \r\n
    • Distribuya nuestros sistemas y gane comisiones con base en el aumento de su cartera de clientes

    • \r\n
    • Descuentos especiales en nuestros sistemas\r\n

    • \r\n
    • Descuentos en comercios afiliados\r\n

    • \r\n
    • Atractivas comisiones de por vida, si cuenta con una cartera de clientes le brindamos las herramientas necesarias para que tenga éxito en su negocio.\r\n

    • \r\n
    \r\n

    Integrese el club de socios comerciales y reciba una bonificación extra por mantener promedio de ventas, obtenga un rango: PLATA, ORO o DIAMANTE.

    \r\n\r\n

    Aproveche las herramientas que te ofrecemos y sea parte del exitoso equipo de Sigma distribuidores.

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

    Portafolio de servicios

    \r\n
    \r\n
      \r\n
    • Planes de facturación Facel

    • \r\n
    • Planes de facturación Facturelo

    • \r\n
    • Contador Millenium.

    • \r\n {/*
    • Contador Xpress.

    • \r\n
    • Inventarios Xpress.

    • */}\r\n
    • Integraciones.

    • \r\n
    \r\n\r\n {/*
    \r\n

    Beneficios

    \r\n
    \r\n
      \r\n\r\n
    • Comisiones de por vida.

    • \r\n
    • Descuentos en el comercio.

    • \r\n
    • Descuentos en capacitaciones de CECAPSI.

    • \r\n
    \r\n*/}\r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n

    Cuentas bancarias

    \r\n
    \r\n

    \r\n\r\n Contamos con cuentas en los tres principales bancos del país.\r\n\r\n

    \r\n\r\n Información\r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Distribuidores;\r\n","import React, { useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport { Create, SweetAlert } from \"../../services/ControlActions\";\r\nimport Spinner from \"../Visuales/Spinner\";\r\nimport {\r\n ListaEndpoints,\r\n ERROR_REQUERIDO,\r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL,\r\n} from \"../../config/Config\";\r\n\r\nconst FormDesactivarNotificacion = ({ titulo, pln, cta }) => {\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const plan = pln;\r\n const cuenta = cta;\r\n\r\n\r\n const onSubmit = (data) => {\r\n consultarAPI(data);\r\n };\r\n\r\n const consultarAPI = async (data) => {\r\n showSpinner();\r\n\r\n setEnviado(false);\r\n setCargando(true);\r\n\r\n let cData = {};\r\n cData.pla_num = plan;\r\n cData.cta_Cuenta = cuenta;\r\n cData.app_Codigo = '004';\r\n cData.pla_NotificacionCobroENviar = false;\r\n cData.pla_NotificacionCobroMotivo = data.mensaje;\r\n\r\n Create(ListaEndpoints.USUARIO, \"UpdateNotificacionCuenta\", \"\", cData)\r\n .then((res) => {\r\n if (res.data) {\r\n\r\n setCargando(false);\r\n setEnviado(true);\r\n reset();\r\n } else {\r\n let err = \"Consulta: \" + res.error;\r\n SweetAlert(\r\n 3,\r\n \"Acción Interrumpida, Intentelo de nuevo más tarde\",\r\n err,\r\n \"\",\r\n \"Entendido\",\r\n () => { }\r\n );\r\n }\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"EnviarConsultaUsuario: No pudo conectar al servidor, inténtelo de nuevo más tarde.\" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {titulo ?

    {titulo}

    : null}\r\n\r\n
    \r\n \r\n\r\n \r\n\r\n {errors.mensaje ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {enviado ? (\r\n

    \r\n La desactivacion se realizó con éxito\r\n

    \r\n ) : null}\r\n\r\n \r\n Enviar\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FormDesactivarNotificacion;\r\n","import React, { useState } from \"react\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport FrmDesactivarNotificacion from \"../components/Formularios/FrmDesactivarNotificacion\";\r\n\r\nconst DesactivarNotificacionPage = (props) => {\r\n const { match } = props;\r\n const plan = match.params.plan;\r\n const cuenta = match.params.cuenta;\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default DesactivarNotificacionPage;\r\n","import React, { useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport moment from \"moment\";\r\nimport {\r\n COD_APLICACION,\r\n ListaEndpoints,\r\n ERROR_REQUERIDO,\r\n LONG_MAX_PASSWORD,\r\n LONG_MIN_PASSWORD,\r\n} from \"../../config/Config\";\r\nimport { Create, SweetAlert } from \"../../services/ControlActions\";\r\n\r\nconst FormConfirmacionUsuario = ({ idUsuario, token }) => {\r\n const { register, handleSubmit, errors, reset, watch } = useForm();\r\n\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [mensajeRespuesta, setMensajeRespuesta] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n const onSubmit = (data) => {\r\n let obj = {\r\n Codigo: idUsuario,\r\n Email: '\"\"',\r\n Nombre: '\"\"',\r\n Compannia: '\"\"',\r\n Password: data.password2,\r\n Telefono: 0,\r\n Pais: 0,\r\n Identificacion: '\"\"',\r\n UltimoAcceso: moment.utc().toISOString(),\r\n Pregunta: '\"\"',\r\n Respuesta: '\"\"',\r\n Actividad: 1,\r\n estaConfirmada: false,\r\n Confirmacion: token,\r\n Aplicacion: COD_APLICACION,\r\n PasswordConfirm: data.password2,\r\n Comentario: '\"\"',\r\n };\r\n\r\n consultarAPI(obj);\r\n };\r\n\r\n const consultarAPI = async (data) => {\r\n setEnviado(false);\r\n setCargando(true);\r\n\r\n Create(ListaEndpoints.USUARIO, \"ConfirmarUsuario\", \"\", data).then(\r\n (res) => {\r\n setEnviado(true);\r\n if (res.data) {\r\n setMensajeRespuesta({ error: false, mensaje: res.msg });\r\n reset();\r\n } else {\r\n setMensajeRespuesta({ error: true, mensaje: res.error });\r\n // console.log(res);\r\n setCargando(false);\r\n }\r\n },\r\n (error) => {\r\n let err = \"Confirmación de usuario: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + error.message\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n }\r\n ).catch((e) => {\r\n\r\n let err = \"Confirmación de usuario: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.password1 ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n value === watch(\"password1\") ||\r\n \"Contraseñas no coinciden.\",\r\n })}\r\n />\r\n\r\n {errors.password2 ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n {enviado ? (\r\n mensajeRespuesta.error ? (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n )\r\n ) : null}\r\n \r\n Enviar\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FormConfirmacionUsuario;\r\n","import React, { useState } from \"react\";\r\nimport FormConfirmacionUsuario from \"../components/Formularios/FormConfirmacionUsuario\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { existeToken } from \"../services/ControlActions\";\r\n\r\nconst ConfirmacionUsuario = ({ match }) => {\r\n let { idUsuario, token } = match.params;\r\n let endpointRegistro = \"https://pruebasigma.free.beeceptor.com/pruebaform\";\r\n\r\n let history = useHistory();\r\n\r\n const [muestraPagina] = useState(existeToken());\r\n\r\n if (muestraPagina) {\r\n history.push(\"/\");\r\n alert(\"Sesión iniciada, debe cerrar sesión para registrar otra cuenta\");\r\n }\r\n\r\n return (\r\n <>\r\n {!muestraPagina ? (\r\n <>\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Activación de cuenta

    \r\n
    \r\n

    \r\n Puedes activar tu cuenta llenando el formulario que se\r\n muestra a continuación.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default ConfirmacionUsuario;\r\n","import React, { } from \"react\";\r\n\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nconst errorPage = (props) => {\r\n const { history } = props;\r\n\r\n const irHome = () => {\r\n history.push(\"/\");\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Oops!

    \r\n
    \r\n

    404 - No se encontró la pagina

    \r\n

    \r\n La página que está buscando podría haberse eliminado, cambiado su nombre o no está disponible temporalmente.

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\nexport default withRouter(errorPage);","import React, { useState, useEffect } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport ListaDropdown from \"./ListaDropdown\";\r\nimport moment from \"moment\";\r\nimport {\r\n ListaEndpoints,\r\n ListaTipoCedulas,\r\n ERROR_REQUERIDO,\r\n LONG_CEDULA_FISICA,\r\n LONG_CEDULA_JURIDICA,\r\n LONG_DIMEX,\r\n // LONG_NITE,\r\n MSG_FORM_CARGANDO,\r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL,\r\n} from \"../../config/Config\";\r\nimport {\r\n Retrieve,\r\n GetWithToken,\r\n PostWithToken,\r\n} from \"../../services/ControlActions\";\r\nimport Spinner from \"../Visuales/Spinner\";\r\n\r\nconst FormPerfil = ({ titulo, usuario, setUsuario, accion }) => {\r\n const { register, handleSubmit, errors, setValue, watch } = useForm({\r\n defaultValues: {\r\n cedula: 0,\r\n email: MSG_FORM_CARGANDO,\r\n nombre: MSG_FORM_CARGANDO,\r\n pais: \"\",\r\n telefono: MSG_FORM_CARGANDO,\r\n tipoCedula: \"\",\r\n direccion: MSG_FORM_CARGANDO,\r\n },\r\n });\r\n const [modoEditar, setModoEditar] = useState(true);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [paises, setPaises] = useState([\r\n { 188: \"Costa Rica\" },\r\n { 187: \"Estados Unidos\" },\r\n ]);\r\n const [tipoCedulaSeleccionada, setTipoCedulaSeleccionada] = useState(0);\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [mensajeRespuesta, setMensajeRespuesta] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n // Devuelve el label adecuado el tipo de cedula, dependiendo de la cédula escogida\r\n const getLabelCedula = () => {\r\n let res = TIPOCEDULAS.find((cedula) => {\r\n return Number(Object.keys(cedula)[0]) === tipoCedulaSeleccionada;\r\n });\r\n\r\n if (res) {\r\n return Object.values(res)[0];\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n // Devuelve la longitud adecuada para el tipo de cedula, dependiendo de la cédula escogida\r\n const getLongCedula = () => {\r\n switch (tipoCedulaSeleccionada) {\r\n case ListaTipoCedulas.FISICA:\r\n return LONG_CEDULA_FISICA;\r\n case ListaTipoCedulas.JURIDICA:\r\n return LONG_CEDULA_JURIDICA;\r\n case ListaTipoCedulas.DIMEX:\r\n return LONG_DIMEX;\r\n default:\r\n return 0;\r\n }\r\n };\r\n\r\n const getTipoCedulaPorNumCedula = (numCedula) => {\r\n if (!numCedula) {\r\n return ListaTipoCedulas.FISICA;\r\n }\r\n\r\n switch (numCedula.length) {\r\n case LONG_CEDULA_FISICA:\r\n return ListaTipoCedulas.FISICA;\r\n\r\n case LONG_CEDULA_JURIDICA:\r\n return ListaTipoCedulas.JURIDICA;\r\n\r\n case LONG_DIMEX:\r\n return ListaTipoCedulas.DIMEX;\r\n\r\n default:\r\n return ListaTipoCedulas.FISICA;\r\n }\r\n };\r\n\r\n // Validacion para que se borren las modificaciones que hizo el usuario,\r\n // en caso de que le dé al cancelar\r\n /* const onCancel = () => {\r\n setModoEditar(false);\r\n\r\n let tipoCed = getTipoCedulaPorNumCedula(usuario.Identificacion);\r\n setTipoCedulaSeleccionada(tipoCed);\r\n\r\n setValue([\r\n { cedula: usuario.Identificacion },\r\n { email: usuario.Email },\r\n { nombre: usuario.Nombre },\r\n { pais: usuario.Pais },\r\n { telefono: usuario.Telefono },\r\n { direccion: usuario.Direccion },\r\n { tipoCedula: tipoCed === 0 ? \"\" : tipoCed },\r\n ]);\r\n };*/\r\n\r\n const onSubmit = (data) => {\r\n\r\n if (modoEditar) {\r\n let objUsuario = {\r\n Identificacion: data.cedula,\r\n Email: data.email,\r\n Nombre: data.nombre || '\"\"',\r\n Compannia: '\"\"',\r\n Pais: data.pais,\r\n Telefono: data.telefono,\r\n Direccion: data.direccion,\r\n UltimoAcceso: moment.utc().toISOString(),\r\n };\r\n\r\n setUsuario((prevState) => {\r\n // console.log(\"datos usuario\", { ...prevState, ...objUsuario })\r\n return { ...prevState, ...objUsuario };\r\n });\r\n\r\n setCargando(true);\r\n }\r\n };\r\n\r\n // UseEffect para modificar info perfil\r\n useEffect(() => {\r\n const consultarAPI = async () => {\r\n setEnviado(false);\r\n showSpinner();\r\n \r\n // setCargando(true);\r\n\r\n PostWithToken(ListaEndpoints.USUARIO, \"UpdateUsuario\", \"\", usuario).then(\r\n (res) => {\r\n setEnviado(true);\r\n\r\n if (res.data) {\r\n\r\n setMensajeRespuesta({ error: false, mensaje: res.msg });\r\n setCargando(false);\r\n //setModoEditar(false);\r\n } else {\r\n console.error(res.error, res.errorDescription);\r\n setMensajeRespuesta({\r\n error: true,\r\n mensaje: res.errorDescription,\r\n });\r\n setCargando(false);\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Ha ocurrido un error.\", error);\r\n\r\n \r\n }\r\n ).finally(()=>{hideSpinner(); setCargando(false);});\r\n };\r\n\r\n if (cargando) {\r\n consultarAPI();\r\n }\r\n }, [usuario, cargando, modoEditar]);\r\n\r\n // UseEffect inicial\r\n useEffect(() => {\r\n // Carga Paises\r\n showSpinner();\r\n Retrieve(ListaEndpoints.USUARIO, \"GetPaises\").then(\r\n (res) => {\r\n if (res.data) {\r\n // Carga y formatea paises para el dropdown\r\n let respPaises = res.data?.listaPaises;\r\n let objPaisesTemp = [];\r\n\r\n for (const pais of respPaises) {\r\n let paisTemp = { [pais.pai_isoNum]: pais.pai_Nombre };\r\n\r\n objPaisesTemp.push(paisTemp);\r\n }\r\n\r\n setPaises(objPaisesTemp);\r\n // fin CargaPaises\r\n\r\n // Carga info usuario, se hace dentro de la respuesta de getPaises,\r\n // para asegurarse que los paises fueron cargados correctamente, y\r\n // sea seleccionado el que habia escogido el usuario\r\n GetWithToken(ListaEndpoints.USUARIO, \"GetUsuario\").then(\r\n (resU) => {\r\n if (resU.data) {\r\n let respUsuario = resU.data;\r\n\r\n if (!respUsuario) {\r\n console.error(\"Ha ocurrido un error al mostrar el usuario\");\r\n return null;\r\n }\r\n\r\n let tipoCed = getTipoCedulaPorNumCedula(\r\n respUsuario.Identificacion\r\n );\r\n\r\n setTipoCedulaSeleccionada(tipoCed);\r\n\r\n setValue([\r\n { cedula: respUsuario.Identificacion },\r\n { email: respUsuario.Email },\r\n { nombre: respUsuario.Nombre },\r\n { pais: respUsuario.Pais },\r\n { telefono: respUsuario.Telefono },\r\n { direccion: respUsuario.Direccion },\r\n { tipoCedula: tipoCed === 0 ? \"\" : tipoCed },\r\n ]);\r\n\r\n setUsuario(respUsuario);\r\n } else {\r\n console.error(\"Error usuario.\");\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Ha ocurrido un error al traer el usuario.\", error);\r\n\r\n setCargando(false);\r\n }\r\n );\r\n } else {\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Ha ocurrido un error al traer los países.\", error);\r\n\r\n setCargando(false);\r\n }\r\n ).finally(()=>{hideSpinner(); setCargando(false);});;\r\n }, []);\r\n\r\n return (\r\n <>\r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    {titulo}

    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.email ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n {tipoCedulaSeleccionada === ListaTipoCedulas.SELECCIONAR ||\r\n tipoCedulaSeleccionada === ListaTipoCedulas.DIMEX ||\r\n tipoCedulaSeleccionada === ListaTipoCedulas.FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {\r\n setTipoCedulaSeleccionada(\r\n Number(watch(\"tipoCedula\")) || 0\r\n );\r\n }}\r\n >\r\n \r\n \r\n
    \r\n\r\n {errors.tipoCedula ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n {errors.cedula ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.telefono ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n\r\n {errors.pais ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.direccion ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n {enviado ? (\r\n mensajeRespuesta.error ? (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n )\r\n ) : null}\r\n\r\n \r\n {modoEditar ? (\r\n <>\r\n \r\n \r\n Cambiar contraseña\r\n \r\n \r\n Guardar\r\n \r\n \r\n ) : (\r\n null\r\n )}\r\n
    \r\n \r\n \r\n {modoEditar ? (\r\n null\r\n ) : (\r\n \r\n
    \r\n \r\n Cambiar contraseña\r\n \r\n { setModoEditar(true); setEnviado(false) }}\r\n >\r\n Editar\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FormPerfil;\r\n\r\nconst TIPOCEDULAS = [\r\n { [ListaTipoCedulas.FISICA]: \"Cédula Física\" },\r\n { [ListaTipoCedulas.JURIDICA]: \"Cédula Jurídica\" },\r\n { [ListaTipoCedulas.DIMEX]: \"DIMEX\" },\r\n];\r\n","import React, { useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"./ErrorForm\";\r\nimport moment from \"moment\";\r\nimport {\r\n CODAPLICACION,\r\n ListaEndpoints,\r\n ERROR_REQUERIDO,\r\n LONG_MAX_PASSWORD,\r\n LONG_MIN_PASSWORD,\r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL,\r\n} from \"../../config/Config\";\r\nimport { PostWithToken, SweetAlert } from \"../../services/ControlActions\";\r\nimport { getItem } from \"../../services/UseLocalStorage.js\";\r\n\r\nconst FormConfirmacionUsuario = ({usuario, accion }) => {\r\n const { register, handleSubmit, errors, reset,watch } = useForm();\r\n const nombre = getItem(\"usuario\").cta_id;\r\n const [cargando, setCargando] = useState(false);\r\n const [enviado, setEnviado] = useState(false);\r\n const [mensajeRespuesta, setMensajeRespuesta] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n const onSubmit = (data) => {\r\n let obj = {\r\n usu_PasswordOld: data.usu_PasswordOld,\r\n usu_PasswordNew: data.usu_PasswordNew,\r\n usu_PasswordNewConfirmation: data.usu_PasswordNewConfirmation,\r\n nombre: nombre,\r\n };\r\n\r\n consultarAPI(obj);\r\n };\r\n\r\n const consultarAPI = async (data) => {\r\n setEnviado(false);\r\n setCargando(true);\r\n PostWithToken(ListaEndpoints.USUARIO, \"CambiarContrasenna\", \"\", data).then(\r\n (res) => {\r\n setEnviado(true);\r\n if (res.data) {\r\n setMensajeRespuesta({ error: false, mensaje: res.msg });\r\n reset();\r\n //accion(); \r\n } else {\r\n setMensajeRespuesta({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription) \r\n }\r\n setEnviado(true);\r\n }\r\n ).catch((e) => {\r\n let err = \"Usuario: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { }) \r\n \r\n });\r\n \r\n setCargando(true);\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n\r\n {errors.nombre ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.usu_PasswordOld ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n {errors.usu_PasswordNew ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n value === watch(\"usu_PasswordNew\") ||\r\n \"Contraseñas no coinciden.\",\r\n })}\r\n />\r\n\r\n {errors.usu_PasswordNewConfirmation ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n {enviado ? (\r\n mensajeRespuesta.error ? (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n {mensajeRespuesta.mensaje}\r\n
    \r\n )\r\n ) : null}\r\n\r\n
    \r\n\r\n Volver \r\n Enviar \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default FormConfirmacionUsuario;\r\n\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport \"../../css/WidgetTarjetas.css\";\r\nimport $ from \"jquery\";\r\nimport {\r\n PostWithToken,\r\n GetWithToken,\r\n SweetAlert,\r\n SwalToast\r\n} from \"../../services/ControlActions\";\r\nimport { ListaEndpoints, MODENA} from \"../../config/Config\";\r\nwindow.$ = window.jQuery = $;\r\n// require(\"jquery\");\r\n\r\nclass WidgetTarjetas extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.state = {\r\n cargando: true,\r\n msgError: {\r\n error: false,\r\n mensaje: \"\",\r\n },\r\n };\r\n this.handleClose = this.handleClose.bind(this);\r\n //console.log(\"c\", this.props.mostrarWidget);\r\n }\r\n\r\n // response.ResponseCode !== T00\r\n SaveCreditCard_FailureCallback = (response) => {\r\n\r\n this.ValidarError(response);\r\n };\r\n\r\n // response.ResponseCode === T00: SUCCESS\r\n SaveCreditCard_SuccessCallback = (response) => {\r\n\r\n this.AgregarToken(response);\r\n };\r\n\r\n // Usuario da click al botón cancelar cuando trató de agregar un token\r\n SaveCreditCard_CancelCallback = () => {\r\n\r\n // console.log(this.props.mostrarWidget);\r\n // this.props.setMostrarWidget(false);\r\n\r\n this.props.setMostrarWidget(false);\r\n };\r\n\r\n componentWillUnmount() {\r\n this.handleClose();\r\n }\r\n\r\n componentDidUpdate(propsAnteriores) {\r\n if (propsAnteriores.token !== this.props.token) {\r\n // console.log(\"Se actualiza widget\", propsAnteriores);\r\n $(\".contenedor-widget\").slideUp(200);\r\n $(\".contenedor-widget\").html(\"\");\r\n this.GetWidget(\r\n this.props.moneda != null ? this.props.moneda : MODENA,\r\n this.props.token != null ? this.props.token : \"\"\r\n );\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n window.SaveCreditCard_FailureCallback = this.SaveCreditCard_FailureCallback;\r\n window.SaveCreditCard_SuccessCallback = this.SaveCreditCard_SuccessCallback;\r\n window.SaveCreditCard_CancelCallback = this.SaveCreditCard_CancelCallback;\r\n\r\n this.GetWidget(\r\n this.props.moneda != null ? this.props.moneda : MODENA,\r\n this.props.token != null ? this.props.token : \"\"\r\n );\r\n }\r\n\r\n handleClose = () => {\r\n this.props.setMostrarWidget(false);\r\n };\r\n\r\n GetWidget(moneda = MODENA, token = \"\") {\r\n \r\n\r\n if (moneda !== null && token !== null) {\r\n let objWidget = {\r\n token: token,\r\n moneda: moneda,\r\n };\r\n\r\n this.setState({ cargando: true });\r\n\r\n\r\n GetWithToken(ListaEndpoints.PAGO, \"CargarWidget\", \"\", null, objWidget)\r\n .then(\r\n (res) => {\r\n //setEnviado(true);\r\n\r\n if (res.data) {\r\n let resp = res.data.obj;\r\n\r\n $(\".contenedor-widget\").html(resp);\r\n $(\".contenedor-widget\").slideDown(500);\r\n\r\n this.setState({ cargando: false });\r\n\r\n //setMensajeRespuesta({ error: false, mensaje: data.Message });\r\n // setCargando(false);\r\n // setModoEditar(false);\r\n $(\".contenedor-widget\").slideDown(500);\r\n } else {\r\n console.error(\"Tarjeta\", res.error, res.errorDescription);\r\n this.setState({\r\n msgError: { error: true, mensaje: res.errorDescription },\r\n });\r\n\r\n let err = \"Consulta: \" + res.error;\r\n SweetAlert(\r\n 3,\r\n \"Acción Interrumpida al cargar la tarjeta, intentelo de nuevo más tarde\",\r\n err,\r\n \"\",\r\n \"Entendido\",\r\n () => {}\r\n );\r\n // setCargando(false);\r\n }\r\n },\r\n (error) => {\r\n let err =\r\n \"Tarjetas: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n error;\r\n this.setState({\r\n msgError: { mensaje: error, error: true },\r\n });\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => {});\r\n }\r\n )\r\n .catch((e) => {\r\n this.setState({ cargando: false });\r\n let err =\r\n \"Tarjetas: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n this.setState({\r\n msgError: { mensaje: e, error: true },\r\n });\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => {});\r\n });\r\n }\r\n }\r\n\r\n ValidarError(respWidget) {\r\n if (respWidget === null) return null;\r\n\r\n switch (respWidget.ResponseCode) {\r\n case \"T01\": // Internal error\r\n alert(\"BAC : \" + respWidget.ResponseDescription);\r\n break;\r\n\r\n // Aunque ya no debería de mostrar nunca este error por un cambio que se solicitó,\r\n // se deja por si ocurriera el caso de que el token lo muestre como repetido.\r\n case \"T02\": // Account / Token already exists\r\n alert(\"TOKEN DUPLICADO: \" + respWidget.ResponseDescription);\r\n\r\n this.AgregarToken(respWidget);\r\n break;\r\n\r\n default:\r\n \r\n alert(\"Acción interrumpida: \" + respWidget.ResponseDescription);\r\n }\r\n }\r\n\r\n AgregarToken(respWidget) {\r\n if (respWidget === null) return null;\r\n\r\n this.setState({ cargando: true });\r\n $(\".contenedor-widget\").hide();\r\n\r\n let objWidget = {\r\n token: respWidget.TokenDetails.AccountToken,\r\n numero_Tarjeta: respWidget.TokenDetails.CardNumber,\r\n cta_Cuenta: this.props.usuario.Codigo,\r\n cta_Email: this.props.usuario.Email,\r\n moneda: MODENA,\r\n };\r\n\r\n\r\n\r\n PostWithToken(ListaEndpoints.PAGO, \"addToken\", \"\", objWidget)\r\n .then(\r\n (res) => {\r\n if (res.data !== null) {\r\n if (res.data === true) {\r\n this.props.setRefrescandoTokens(true);\r\n \r\n\r\n SwalToast(\r\n 2,\r\n \"Tarjeta agregada correctamente\",\r\n () => { },\r\n 3000\r\n );\r\n } else {\r\n SwalToast(\r\n 2,\r\n \"Ha ocurrido un error al registrar la tarjeta.\",\r\n () => { },\r\n 3000\r\n );\r\n \r\n }\r\n\r\n $(\".contenedor-widget\").slideUp(200);\r\n $(\".contenedor-widget\").html(\"\");\r\n } else {\r\n\r\n // console.log(res.error, res.errorDescription);\r\n\r\n SweetAlert(\r\n 3,\r\n res.error,\r\n `Error: ${\r\n res.errorDescription?.msg\r\n ? res.errorDescription?.msg\r\n : \"No se pudo agregar la tarjeta\"\r\n }.`,\r\n \"\",\r\n \"Entendido\",\r\n () => {}\r\n );\r\n }\r\n this.props.setMostrarWidget(false);\r\n this.setState({ cargando: false });\r\n },\r\n (error) => {\r\n let err =\r\n \"Tarjetas: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n error;\r\n this.setState({\r\n msgError: { mensaje: error, error: true },\r\n });\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => {});\r\n }\r\n )\r\n .catch((e) => {\r\n this.setState({ cargando: false });\r\n let err =\r\n \"Tarjetas: No pudo conectar al servidor, inténtelo de nuevo más tarde. Error: \" +\r\n e.message;\r\n this.setState({\r\n msgError: { mensaje: e, error: true },\r\n });\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => {});\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.state.msgError.error ?
    Ha ocurrido un error.
    : null}\r\n {this.state.cargando ? (\r\n
    Cargando...
    \r\n ) : (\r\n
    \r\n {this.props.token ? \"Información de tarjeta\" : \"Agregando tarjeta:\"}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default WidgetTarjetas;\r\n","import React, { useState } from \"react\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport FormPerfil from \"../components/Formularios/FormPerfil\";\r\nimport FormCambiarContrasenna from \"../components/Formularios/FormCambiarContrasenna\";\r\nimport WidgetTarjetas from \"../components/Visuales/WidgetTarjetas\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { existeToken, SweetAlert } from \"../services/ControlActions\";\r\nimport TarjetasInfo from \"../components/Visuales/TarjetasInfo\";\r\n\r\nconst PerfilPage = () => {\r\n let history = useHistory();\r\n\r\n\r\n const [usuario, setUsuario] = useState({});\r\n const [muestraPagina] = useState(existeToken());\r\n const [action, setAction] = useState({\r\n nombre: \"perfil\",\r\n titulo: \"Información de la Cuenta:\",\r\n });\r\n\r\n if (!muestraPagina) {\r\n history.push(\"/\");\r\n SweetAlert(3, \"No puede acceder\", \"Necesitas iniciar sesión para continuar\", \"\", \"Entendido\", () => { });\r\n }\r\n\r\n const goCambiarContrasenna = () => {\r\n setAction({\r\n nombre: \"cambiarContrasenna\",\r\n titulo: \"Cambiar Contraseña:\",\r\n })\r\n };\r\n\r\n const goPerfil = () => {\r\n setAction({\r\n nombre: \"perfil\",\r\n titulo: \"Información de la Cuenta:\",\r\n })\r\n };\r\n\r\n\r\n return (\r\n <>\r\n\r\n {muestraPagina ? (\r\n <>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {action.titulo}
    \r\n
    \r\n \r\n {action.nombre == \"perfil\" ?\r\n \r\n : null}\r\n {action.nombre == \"cambiarContrasenna\" ?\r\n \r\n : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*\r\n
    \r\n {Object.keys(usuario).length === 0 ? (\r\n <>\r\n
    \r\n
    \r\n
    Tarjetas guardadas:
    \r\n
    \r\n\r\n

    Cargando...

    \r\n
    \r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n */ }\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default PerfilPage;\r\n","import React from \"react\";\r\n\r\n\r\nconst InfoPrivacidad = () => {\r\n return (\r\n <>\r\n
    \r\n

    Privacidad

    \r\n

    \r\n Actualizado a marzo de 2022\r\n

    \r\n

    \r\n \r\n Sigma Aseserorias Contables, S.A. públicamente asume\r\n el compromiso y obligación de salvaguardar y proteger la información personal y\r\n de su negocio que nos suministre. Es importante que lea detenidamente la\r\n presente política de privacidad la cuál aplica, en la actualidad, para mayores\r\n de 18 años y empresas y clientes de Costa Rica. La información protegida incluye\r\n tanto la suministrada para la apertura y gestión de su cuenta, como la\r\n configuración y uso de nuestras aplicaciones web.\r\n \r\n

    \r\n

    \r\n \r\n La información protegida por esta política es aquella\r\n suministrada por el cliente o usuario y no aquella recopilada por SIGMA a través\r\n de sitios públicos o de gobierno.\r\n \r\n

    \r\n \r\n
    1) El sitio
    \r\n
    \r\n

    \r\n \r\n La información protegida es aquella suministrada por el cliente\r\n a través de\r\n \r\n \r\n \r\n www.sigmacr.net\r\n \r\n \r\n \r\n , en adelante\r\n “el sitio”.\r\n \r\n

    \r\n \r\n
    2) Información suministrada
    \r\n \r\n

    \r\n \r\n En el sitio se recopilará información personal obligatoria tal\r\n como:\r\n \r\n

    \r\n\r\n
    Información general o personal:
    \r\n

    \r\n Nombre, dirección, correo electrónico, número de teléfono, contraseñas, área de\r\n negocio, número de fax, sitio web, país de origen y referencia de contacto.\r\n \r\n

    \r\n\r\n
    Información de su negocio o comercial:
    \r\n

    \r\n Productos y servicios, precios, datos de sus clientes,\r\n facturación, notas de débito, notas de crédito, recibos, facturas recibidas y\r\n estados de cuenta.\r\n \r\n

    \r\n

    \r\n \r\n La información de su clave de su firma digital no puede ser\r\n almacenada en nuestro sitio a pesar que usted la digita al firmar documentos\r\n electrónicos en nuestras aplicaciones.\r\n \r\n

    \r\n\r\n
    3) Uso de su información
    \r\n\r\n

    \r\n La información que usted nos suministra es utilizada para:\r\n

    \r\n

    \r\n ·\r\n Contactarnos con usted.\r\n

    \r\n

    \r\n · \r\n \r\n Enviarle información importante acerca\r\n de cambios en nuestras políticas, términos y condiciones, el Sitio y otros.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Configurar su cuenta e información\r\n tributaria para el uso de nuestras aplicaciones conforme a la normativa contable\r\n y tributaria vigente.\r\n \r\n

    \r\n\r\n

    \r\n · \r\n \r\n Almacenarle en nuestra base de datos\r\n como nuestro cliente.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Generarle estados de cuenta, facturas y\r\n recibos.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Enviar información importante sobre\r\n nuestros negocios y productos.\r\n \r\n

    \r\n

    \r\n ·\r\n Identificar su cuenta.\r\n

    \r\n

    \r\n ·\r\n \r\n Prevenir e identificar posibles delitos\r\n y fraudes.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Recibir sus solicitudes de información,\r\n contacto y soporte.\r\n \r\n

    \r\n\r\n
    4) Seguridad
    \r\n\r\n

    \r\n \r\n Nuestro objetivo en SIGMA es proteger su información personal y\r\n comercial enviada a través del sitio. Se mantienen respaldos físicos y\r\n electrónicos para evitar la pérdida y uso no autorizado de su información.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA se compromete a no divulgar, modificar, comercializar y/o\r\n destruir su información personal o comercial. El acceso a su información\r\n personal y comercial se encuentra restringida a nuestros productos, servicios y\r\n personal autorizado.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA se compromete a que sus empleados, personeros, socios y /o\r\n asociados conocen la presente Política de Privacidad y deberán respetarlas como\r\n parte de sus obligaciones laborales y/o contractuales.\r\n \r\n

    \r\n

    \r\n \r\n Se le insta a remitir su información personal y comercial a\r\n través de nuestro sitio dado que su correo electrónico y otros medios\r\n electrónicos pueden no ser seguros. Se le sugiere utilizar en todo momento\r\n medios seguros y protegidos para ayudarnos a proteger su información.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA reconoce la importancia especial que tiene su información\r\n tributaria y contable por lo que nos comprometemos a: (i) restringir el acceso a\r\n y el uso de dicha información por nuestros empleados y/o colaboradores; (ii)\r\n prevenir el acceso no autorizado por terceros; y (iii) prohibir la divulgación\r\n ilegal de su información.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA solo podrá suministrar su información a entes\r\n gubernamentales, autoridades tributarias y/o autoridades judiciales que lo\r\n requieran conforme a la normativa vigente.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA garantiza que la información personal y comercial que nos\r\n brinde se conservará de forma precisa y completa y durante toda la vigencia de\r\n la relación contractual. Una vez finalizada su relación comercial con SIGMA, su\r\n información personal y comercial será bloqueada durante un período prudencial y\r\n posteriormente destruida para evitar acceso de terceros.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA podrá remitir publicidad e información de nuestros\r\n productos y servicios a su correo electrónico proporcionado. En cualquier\r\n momento usted podrá cancelar la remisión de este tipo de información.\r\n \r\n

    \r\n\r\n
    5) Información crediticia
    \r\n\r\n

    \r\n \r\n SIGMA no almacena o administra información de tarjetas de\r\n crédito y/o débito, números de cuenta, vencimiento de sus tarjetas o cualquier\r\n otra relativa al cobro de nuestros productos o servicios. Dicha información es\r\n remitida y administrada directamente por el Banco Nacional de Costa Rica.\r\n \r\n

    \r\n\r\n
    6) Información no personal o comercial
    \r\n\r\n

    \r\n \r\n SIGMA podrá recopilar otro tipo de información para su uso\r\n exclusivo tal como:\r\n \r\n

    \r\n\r\n
    Información de su navegador:
    \r\n

    \r\n\r\n Dirección de IP, resolución de pantalla, tipo de sistema operativo (Windows o\r\n Mac) y versión, tipo de navegador de Internet y versión, tiempo de la visita y\r\n las páginas visitadas.  Esta información es para el diagnóstico de nuestro\r\n propio sitio y no tiene ningún interés comercial.\r\n \r\n

    \r\n\r\n
    Cookies:
    \r\n

    \r\n   “Cookies” son\r\n porciones de información almacenada directamente en su computadora que permiten\r\n reconocer su computador para futuras visitas. Por medio de las Cookies se\r\n recopila información como páginas visitadas, tiempo en el sitio, idiomas, entre\r\n otros. Las cookies nos ayudarán a mejorar los protocolos de seguridad de la\r\n página para que sean más eficaces. Se podrán utilizar Cookies para mostrarle\r\n publicidad más cercana a sus gustos.\r\n \r\n

    \r\n\r\n
    \r\n \r\n Uso de tags pixel, contadores de visitantes, GIF\r\n transparentes u otras tecnologías parecidas:\r\n \r\n
    \r\n

    \r\n  \r\n Estos podrían ser utilizados en relación con algunas páginas del Sitio y\r\n mensajes del formato HTML para, entre otras cosas, darles seguimiento a las\r\n acciones de los usuarios del Sitio y destinatarios de correos electrónicos,\r\n medir el éxito de nuestras campañas comerciales y compilar estadísticas sobre el\r\n uso del Sitio e índice de respuestas. \r\n \r\n

    \r\n\r\n
    \r\n 7) Gestión de su información\r\n \r\n
    \r\n\r\n

    \r\n \r\n Mensualmente se le remitirá un estado de su cuenta y una factura\r\n electrónica de acuerdo al plan adquirido. Usted podrá revisar su información,\r\n modificarla y/o suprimirla en cualquier momento. No nos hacemos responsables por\r\n la información personal o comercial que usted mismo o terceros con conocimiento\r\n de sus claves modifiquen o supriman de nuestro sitio dado que no tenemos control\r\n sobre dichas acciones.\r\n \r\n

    \r\n\r\n
    8) Otros Sitios
    \r\n\r\n\r\n

    \r\n \r\n La presente política de privacidad tan solo aplica para la\r\n información suministrada en el sitio y no en sitios de terceros. Los enlaces\r\n aquí sugeridos son propiedad de terceras personas y SIGMA manifiesta que ha\r\n enlazado sitios con sus propias políticas de privacidad. SIGMA no se hace\r\n responsable por el contenido, la seguridad y las prácticas de privacidad\r\n empleadas por otros sitios. La información que divulgue a otras partes o a\r\n través de dichos sitios está sujeta a las prácticas y políticas de privacidad de\r\n esas partes o esos sitios.\r\n \r\n

    \r\n\r\n\r\n
    9) Usuarios Internacionales
    \r\n\r\n

    \r\n \r\n Este sitio es operado y administrado por SIGMA desde Costa Rica\r\n y le aplica las leyes de la República de Costa Rica. Si usted accede a esta\r\n página desde un lugar distinto de Costa Rica, debe entender que le aplica la\r\n presente Política de Privacidad.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA se somete a las leyes y jurisdicción de la República de\r\n Costa Rica y el usuario acepta que cualquier acceso que realice desde otro país\r\n no obliga a SIGMA a las leyes de ese país ni a su jurisdicción.\r\n \r\n

    \r\n\r\n
    10) Cambios a esta Política
    \r\n\r\n

    \r\n \r\n SIGMA se reserva el derecho de realizar cambios no sustanciales\r\n a la presente Política de Privacidad. Cualquier cambio realizado a la política\r\n será actualizada en el sitio. Recomendamos revisar regularmente la presente\r\n Política para verificar cualquier cambio.\r\n \r\n

    \r\n\r\n\r\n
    \r\n \r\n El usuario acepta con el uso de nuestras aplicaciones que ha\r\n leído y conoce de estas Políticas de Privacidad, que pueden ser visualizadas en\r\n cualquier momento desde el sitio y se compromete a acatarlas y respetarlas. Así\r\n mismo, comunicará a SIGMA de cualquier posible violación de su información o de\r\n otros usuarios de SIGMA que llegue a su conocimiento.\r\n \r\n
    \r\n\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default InfoPrivacidad;\r\n","import React from \"react\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport InfoPrivacidad from '../components/Formularios/InfoPrivacidad';\r\n\r\nconst PoliticasPrivacidadPage = () => {\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {/*
    \r\n

    Privacidad

    \r\n

    \r\n Actualizado a marzo de 2022\r\n

    \r\n

    \r\n \r\n Sigma Aseserorias Contables, S.A. públicamente asume\r\n el compromiso y obligación de salvaguardar y proteger la información personal y\r\n de su negocio que nos suministre. Es importante que lea detenidamente la\r\n presente política de privacidad la cuál aplica, en la actualidad, para mayores\r\n de 18 años y empresas y clientes de Costa Rica. La información protegida incluye\r\n tanto la suministrada para la apertura y gestión de su cuenta, como la\r\n configuración y uso de nuestras aplicaciones web.\r\n \r\n

    \r\n

    \r\n \r\n La información protegida por esta política es aquella\r\n suministrada por el cliente o usuario y no aquella recopilada por SIGMA a través\r\n de sitios públicos o de gobierno.\r\n \r\n

    \r\n

    \r\n

    1) El sitio
    \r\n

    \r\n

    \r\n \r\n La información protegida es aquella suministrada por el cliente\r\n a través de\r\n \r\n \r\n \r\n www.sigmacr.net\r\n \r\n \r\n \r\n , en adelante\r\n “el sitio”.\r\n \r\n

    \r\n

    \r\n

    2) Información suministrada
    \r\n

    \r\n

    \r\n \r\n En el sitio se recopilará información personal obligatoria tal\r\n como:\r\n \r\n

    \r\n

    \r\n

    Información general o personal:
    \r\n \r\n Nombre, dirección, correo electrónico, número de teléfono, contraseñas, área de\r\n negocio, número de fax, sitio web, país de origen y referencia de contacto.\r\n \r\n

    \r\n

    \r\n

    Información de su negocio o comercial:
    \r\n \r\n Productos y servicios, precios, datos de sus clientes,\r\n facturación, notas de débito, notas de crédito, recibos, facturas recibidas y\r\n estados de cuenta.\r\n \r\n

    \r\n

    \r\n \r\n La información de su clave de su firma digital no puede ser\r\n almacenada en nuestro sitio a pesar que usted la digita al firmar documentos\r\n electrónicos en nuestras aplicaciones.\r\n \r\n

    \r\n

    \r\n

    3) Uso de su información
    \r\n

    \r\n

    \r\n La información que usted nos suministra es utilizada para:\r\n

    \r\n

    \r\n ·\r\n Contactarnos con usted.\r\n

    \r\n

    \r\n · \r\n \r\n Enviarle información importante acerca\r\n de cambios en nuestras políticas, términos y condiciones, el Sitio y otros.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Configurar su cuenta e información\r\n tributaria para el uso de nuestras aplicaciones conforme a la normativa contable\r\n y tributaria vigente.\r\n \r\n

    \r\n\r\n

    \r\n · \r\n \r\n Almacenarle en nuestra base de datos\r\n como nuestro cliente.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Generarle estados de cuenta, facturas y\r\n recibos.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Enviar información importante sobre\r\n nuestros negocios y productos.\r\n \r\n

    \r\n

    \r\n ·\r\n Identificar su cuenta.\r\n

    \r\n

    \r\n ·\r\n \r\n Prevenir e identificar posibles delitos\r\n y fraudes.\r\n \r\n

    \r\n

    \r\n ·\r\n \r\n Recibir sus solicitudes de información,\r\n contacto y soporte.\r\n \r\n

    \r\n

    \r\n

    4) Seguridad
    \r\n

    \r\n

    \r\n \r\n Nuestro objetivo en SIGMA es proteger su información personal y\r\n comercial enviada a través del sitio. Se mantienen respaldos físicos y\r\n electrónicos para evitar la pérdida y uso no autorizado de su información.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA se compromete a no divulgar, modificar, comercializar y/o\r\n destruir su información personal o comercial. El acceso a su información\r\n personal y comercial se encuentra restringida a nuestros productos, servicios y\r\n personal autorizado.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA se compromete a que sus empleados, personeros, socios y /o\r\n asociados conocen la presente Política de Privacidad y deberán respetarlas como\r\n parte de sus obligaciones laborales y/o contractuales.\r\n \r\n

    \r\n

    \r\n \r\n Se le insta a remitir su información personal y comercial a\r\n través de nuestro sitio dado que su correo electrónico y otros medios\r\n electrónicos pueden no ser seguros. Se le sugiere utilizar en todo momento\r\n medios seguros y protegidos para ayudarnos a proteger su información.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA reconoce la importancia especial que tiene su información\r\n tributaria y contable por lo que nos comprometemos a: (i) restringir el acceso a\r\n y el uso de dicha información por nuestros empleados y/o colaboradores; (ii)\r\n prevenir el acceso no autorizado por terceros; y (iii) prohibir la divulgación\r\n ilegal de su información.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA solo podrá suministrar su información a entes\r\n gubernamentales, autoridades tributarias y/o autoridades judiciales que lo\r\n requieran conforme a la normativa vigente.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA garantiza que la información personal y comercial que nos\r\n brinde se conservará de forma precisa y completa y durante toda la vigencia de\r\n la relación contractual. Una vez finalizada su relación comercial con SIGMA, su\r\n información personal y comercial será bloqueada durante un período prudencial y\r\n posteriormente destruida para evitar acceso de terceros.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA podrá remitir publicidad e información de nuestros\r\n productos y servicios a su correo electrónico proporcionado. En cualquier\r\n momento usted podrá cancelar la remisión de este tipo de información.\r\n \r\n

    \r\n

    \r\n

    5) Información crediticia
    \r\n

    \r\n

    \r\n \r\n SIGMA no almacena o administra información de tarjetas de\r\n crédito y/o débito, números de cuenta, vencimiento de sus tarjetas o cualquier\r\n otra relativa al cobro de nuestros productos o servicios. Dicha información es\r\n remitida y administrada directamente por el Banco Nacional de Costa Rica.\r\n \r\n

    \r\n

    \r\n

    6) Información no personal o comercial
    \r\n

    \r\n

    \r\n \r\n SIGMA podrá recopilar otro tipo de información para su uso\r\n exclusivo tal como:\r\n \r\n

    \r\n

    \r\n

    Información de su navegador:
    \r\n \r\n\r\n Dirección de IP, resolución de pantalla, tipo de sistema operativo (Windows o\r\n Mac) y versión, tipo de navegador de Internet y versión, tiempo de la visita y\r\n las páginas visitadas.  Esta información es para el diagnóstico de nuestro\r\n propio sitio y no tiene ningún interés comercial.\r\n \r\n

    \r\n

    \r\n

    Cookies:
    \r\n \r\n   “Cookies” son\r\n porciones de información almacenada directamente en su computadora que permiten\r\n reconocer su computador para futuras visitas. Por medio de las Cookies se\r\n recopila información como páginas visitadas, tiempo en el sitio, idiomas, entre\r\n otros. Las cookies nos ayudarán a mejorar los protocolos de seguridad de la\r\n página para que sean más eficaces. Se podrán utilizar Cookies para mostrarle\r\n publicidad más cercana a sus gustos.\r\n \r\n

    \r\n

    \r\n

    \r\n \r\n Uso de tags pixel, contadores de visitantes, GIF\r\n transparentes u otras tecnologías parecidas:\r\n \r\n
    \r\n \r\n  \r\n Estos podrían ser utilizados en relación con algunas páginas del Sitio y\r\n mensajes del formato HTML para, entre otras cosas, darles seguimiento a las\r\n acciones de los usuarios del Sitio y destinatarios de correos electrónicos,\r\n medir el éxito de nuestras campañas comerciales y compilar estadísticas sobre el\r\n uso del Sitio e índice de respuestas. \r\n \r\n

    \r\n

    \r\n

    \r\n 7) Gestión de su información\r\n \r\n
    \r\n

    \r\n

    \r\n \r\n Mensualmente se le remitirá un estado de su cuenta y una factura\r\n electrónica de acuerdo al plan adquirido. Usted podrá revisar su información,\r\n modificarla y/o suprimirla en cualquier momento. No nos hacemos responsables por\r\n la información personal o comercial que usted mismo o terceros con conocimiento\r\n de sus claves modifiquen o supriman de nuestro sitio dado que no tenemos control\r\n sobre dichas acciones.\r\n \r\n

    \r\n

    \r\n

    8) Otros Sitios
    \r\n\r\n

    \r\n

    \r\n \r\n La presente política de privacidad tan solo aplica para la\r\n información suministrada en el sitio y no en sitios de terceros. Los enlaces\r\n aquí sugeridos son propiedad de terceras personas y SIGMA manifiesta que ha\r\n enlazado sitios con sus propias políticas de privacidad. SIGMA no se hace\r\n responsable por el contenido, la seguridad y las prácticas de privacidad\r\n empleadas por otros sitios. La información que divulgue a otras partes o a\r\n través de dichos sitios está sujeta a las prácticas y políticas de privacidad de\r\n esas partes o esos sitios.\r\n \r\n

    \r\n\r\n

    \r\n

    9) Usuarios Internacionales
    \r\n

    \r\n

    \r\n \r\n Este sitio es operado y administrado por SIGMA desde Costa Rica\r\n y le aplica las leyes de la República de Costa Rica. Si usted accede a esta\r\n página desde un lugar distinto de Costa Rica, debe entender que le aplica la\r\n presente Política de Privacidad.\r\n \r\n

    \r\n

    \r\n \r\n SIGMA se somete a las leyes y jurisdicción de la República de\r\n Costa Rica y el usuario acepta que cualquier acceso que realice desde otro país\r\n no obliga a SIGMA a las leyes de ese país ni a su jurisdicción.\r\n \r\n

    \r\n

    \r\n

    10) Cambios a esta Política
    \r\n

    \r\n

    \r\n \r\n SIGMA se reserva el derecho de realizar cambios no sustanciales\r\n a la presente Política de Privacidad. Cualquier cambio realizado a la política\r\n será actualizada en el sitio. Recomendamos revisar regularmente la presente\r\n Política para verificar cualquier cambio.\r\n \r\n

    \r\n\r\n

    \r\n

    \r\n \r\n El usuario acepta con el uso de nuestras aplicaciones que ha\r\n leído y conoce de estas Políticas de Privacidad, que pueden ser visualizadas en\r\n cualquier momento desde el sitio y se compromete a acatarlas y respetarlas. Así\r\n mismo, comunicará a SIGMA de cualquier posible violación de su información o de\r\n otros usuarios de SIGMA que llegue a su conocimiento.\r\n \r\n
    \r\n

    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default PoliticasPrivacidadPage;\r\n","import React from \"react\";\r\n\r\n\r\nconst InfoTerminosYCondiciones = () => {\r\n return (\r\n <>\r\n
    \r\n\r\n

    Revisión Abril 2022

    \r\n

    Condiciones de uso y Condiciones de Venta

    \r\n
    Condiciones de uso
    \r\n

    Le rogamos que lea detenidamente las presentes condiciones antes de utilizar los Servicios de Sigma. Al utilizar los Servicios de Sigma, usted acepta quedar vinculado por las presentes condiciones. Ofrecemos una amplia gama de Servicios de Sigma y en ocasiones pueden aplicarse condiciones adicionales. Además, cada vez que utilice cualquier Servicio de Sigma, (por ejemplo: apertura de cuenta o aplicaciones de Sigma para dispositivos móviles), estará igualmente sujeto a los términos y condiciones generales y a las condiciones particulares aplicables a dichos Servicios de Sigma (las \"Condiciones Generales de los Servicios\"). Las Condiciones Generales de los Servicios prevalecerán sobre las presentes Condiciones de Uso en caso de discrepancia entre ambas.

    \r\n\r\n

    Procedimiento y formulario de aviso de vulneración de derechos

    \r\n
    1. Privacidad
    \r\n

    Le rogamos que revise nuestro Aviso de Privacidad, y nuestra página sobre Cookies y Publicidad en Internet, que también rigen el uso que realice de los Servicios de Sigma, para que conozca nuestras prácticas.

    \r\n
    2. Comunicaciones electrónicas
    \r\n

    Cada vez que utilice un Servicio de Sigma o nos envíe un correo electrónico, estará comunicándose electrónicamente con nosotros. Nosotros nos pondremos en contacto con usted mediante correo electrónico, mediante la publicación de avisos en nuestro sitio web o mediante los otros Servicios de Sigma. A efectos del presente contrato, usted acepta recibir comunicaciones de nuestra parte mediante medios electrónicos, y acepta que todos los contratos, avisos y otras notificaciones y comunicaciones que le enviemos por medios electrónicos satisfacen cualquier requisito de forma escrita, salvo que cualquier legislación aplicable con carácter imperativo exigiera una forma distinta de comunicación.

    \r\n
    3. Derechos de autor, derechos de propiedad intelectual y derechos sobre bases de datos
    \r\n

    \r\n Todo contenido alojado o puesto a disposición en cualquiera de los Servicios de Sigma, como por ejemplo texto, gráficos, logotipos, iconos de botones, imágenes, clips de audio, descargas digitales, y recopilaciones de datos son propiedad de Sigma o de sus proveedores de contenido y está protegido por las leyes de la República de Costa Rica así como por la legislación internacional sobre derechos de propiedad intelectual, derechos de autor y derechos sobre bases de datos. El conjunto de todo el contenido albergado o puesto a disposición a través de cualquier Servicio de Sigma es propiedad exclusiva de Sigma, y está protegido por las leyes de la República de Costa Rica e internacionales sobre derechos de propiedad intelectual y derechos sobre bases de datos.\r\n No está permitida la extracción sistemática ni la reutilización de parte alguna del contenido de ninguno de los Servicios de Sigma sin nuestro expreso consentimiento por escrito . En particular, no se permite el uso de herramientas o robots de búsqueda y extracción de datos para la extracción (ya sea en una o varias ocasiones) de partes sustanciales de los Servicios de Sigma para su reutilización sin nuestro expreso consentimiento por escrito. Tampoco le está permitido al usuario crear ni publicar sus propias bases de datos cuando éstas contengan partes sustanciales de cualquiera de los Servicios de Sigma (por ejemplo, nuestras listas de productos y listas de precios) sin nuestro expreso consentimiento por escrito.\r\n

    \r\n\r\n
    4. Marcas registradas
    \r\n

    Los gráficos, logotipos, encabezados de página, iconos de botón, scripts y nombres de servicio que aparecen incluidos o están disponibles a través de los Servicios de Sigma son marcas registradas o representan la imagen comercial de Sigma. No podrán utilizarse las marcas registradas ni la imagen comercial de Sigma en relación con ningún producto o servicio que no pertenezca a Sigma, ni en ninguna forma que fuera susceptible de causar confusión entre los usuarios o que pueda menospreciar o desacreditar a Sigma. El resto de marcas registradas que no son propiedad de Sigma y que aparecen incluidos o están disponibles a través de los Servicios de Sigma pertenecen a sus respectivos propietarios, quienes podrán o no estar afiliados o relacionados de cualquier modo con Sigma, o patrocinados por Sigma.

    \r\n

    \r\n
    5. Patentes
    \r\n

    Diversas patentes pertenecientes a Sigma son aplicables a los Servicios de Sigma así como a las funciones y servicios accesibles a través de los mismos. Por otro lado, diferentes partes de los Servicios de Sigma operan en virtud de distintas licencias de una o varias patentes.

    \r\n
    6. Licencia y acceso
    \r\n

    \r\n Sujeto al cumplimiento por usted de estas Condiciones de Uso y las Condiciones Generales de los Servicios aplicables así como al pago del precio aplicable, en su caso, Sigma o sus proveedores de contenidos le conceden una licencia limitada no exclusiva, no transferible y no sublicenciable, de acceso y utilización, a los Servicios de Sigma para fines personales no comerciales. Dicha licencia no incluye derecho alguno de reventa ni de uso comercial de los Servicios de Sigma ni de sus contenidos, ni derecho alguno a utilizar lista alguna de productos, descripciones o precios. Tampoco incluye el derecho a realizar ningún uso derivado de los Servicios de Sigma ni de sus contenidos, ni a descargar o copiar información de cuenta alguna para el beneficio de otra empresa, ni el uso de herramientas o robots de búsqueda y extracción de datos o similar.\r\n Sigma y sus licenciantes, proveedores, editores, titulares de derechos u otros proveedores de contenidos se reservan cualquier derecho que no esté expresamente comprendido en estas Condiciones de Uso o en las Condiciones Generales de los Servicios.\r\n No está permitida la reproducción, duplicación, copia, venta, reventa o explotación de ningún tipo de los Servicios de Sigma ni de parte alguna de los mismos con fines comerciales, en cada caso sin nuestro previo consentimiento por escrito.\r\n Tampoco está permitido utilizar técnicas de framing para introducir cualquier marca comercial, logotipo u otra información protegida por derechos de autor (incluyendo imágenes, texto, diseños de página o formatos) de Sigma sin el correspondiente consentimiento previo por escrito. No está permitido el uso de metaetiquetas (meta tags) ni de ningún otro \"texto oculto\" que utilice los nombres o marcas registradas de Sigma sin nuestro consentimiento previo y por escrito.\r\n Le rogamos que haga un uso correcto de los Servicios de Sigma. Sólo le está permitido utilizar los Servicios de Sigma de forma lícita. Cualquier incumplimiento por Ud. de estas Condiciones de Uso o de las Condiciones Generales de los Servicios supondrá la anulación del permiso o la licencia concedidos por Sigma.\r\n

    \r\n

    \r\n
    7. Su Cuenta
    \r\n

    \r\n Cuando usted utiliza los Servicios de Sigma es responsable de mantener la confidencialidad de los datos de su cuenta y su contraseña, así como de restringir el acceso a su ordenador. En la medida en que así lo permita la legislación aplicable, usted acepta asumir la responsabilidad que proceda por todas las actividades realizadas desde su cuenta o utilizando su contraseña. Usted deberá tomar todas las medidas necesarias a efectos de asegurar y salvaguardar la confidencialidad de su contraseña, y deberá informarnos inmediatamente en caso de que tenga motivos para creer que su contraseña ha sido puesta en conocimiento de un tercero, o si ésta ha sido utilizada de manera no autorizada o es susceptible de serlo. Es su responsabilidad comprobar que los datos que nos facilita son correctos y completos, viniendo asimismo obligado a informarnos inmediatamente cuando tenga lugar cualquier variación en la información que nos ha facilitado. Puede acceder a su información y actualizarla a través del apartado Mi Cuenta del sitio web.\r\n No podrá utilizar ningún Servicio de Sigma: (i) en forma alguna que cause, o pueda causar, daño o perjuicio alguno a cualquiera de los Servicios de Sigma o la interrupción del acceso a los mismos; o (ii) para cualquier fin fraudulento, ni a efectos de la comisión de delito alguno u otra actividad ilícita de ningún otro tipo; o (iii) para generar cualquier tipo de molestia, inconveniente o ansiedad en un tercero.\r\n Nos reservamos el derecho a denegar el acceso al servicio, a cancelar cualesquiera cuentas y a eliminar o modificar cualquier contenido en caso de que el usuario incumpliera la legislación aplicable, las presentes Condiciones de Uso o cualesquiera otros términos y condiciones o políticas aplicables.\r\n

    \r\n
    8. Pago electrónico, cancelación y devolución
    \r\n

    Los SERVICIOS DE Sigma son ofrecidos para el USUARIO, éste libremente decide cual producto o paquete y cuánta cantidad solicite a través del SITIO WEB en el momento de realizar la compra, sin presión y sin conocimiento de Sigma hasta que el USUARIO ejecute la compra y se aplique el método de pago mediante el ingreso de una tarjeta de crédito o débito. Sigma se reserva el criterio de realizar devoluciones en plena fuerza y vigor de estos términos descritos.

    \r\n

    Sigma utilizará el SITIO WEB para facilitarle al USUARIO una forma de pago electrónico seguro y directo con la entidad Bancaria. Los pagos son finales y por lo tanto no se permitirán devoluciones ni cancelaciones mediante el SITIO WEB. Sigma no activará planes de facturación o brindará los productos de software comprados a través del SITIO WEB si el pago no fue procesado de manera exitosa cuando se realice a través del SITIO WEB.

    \r\n

    Si desea realizar cambio de productos de software adquiridos a través del SITIO WEB, se aclara que los costos y cargos administrativos deben ser asumidos por el USUARIO. Lo anterior no afecta las garantías legales y demás derechos reconocidos al consumidor por la legislación vigente. Si desea realizar cambio de productos de software adquiridos a través del SITIO WEB en caso de solicitar el cambio por un producto de mayor valor al efectivamente pagado y/o características diferentes, el USUARIO deberá pagar el valor del excedente que resultare necesario para cubrir el precio del nuevo producto. Si el Usuario solicita una devolución Sigma se reserva el criterio de realizar devoluciones, de aprobar la devolución se procesará en los siguientes 30 días hábiles en la misma tarjeta con la cual se realizó la compra por parte el USUARIO y verificada por SIGMA S.A., deduciendo los costos y cargos administrativos hasta por un costo de $8 USD al tipo de cambio del día de la devolución, mismo que asumirá el USUARIO.

    \r\n

    Sigma presta servicios mediante el SITIO WEB únicamente como agente intermediario entre el USUARIO y la entidad Bancaria, Usted libera a Sigma sobre cualquier responsabilidad ante cualquier falla o falta de cumplimiento por parte de la entidad Bancaria en el caso de transacciones fallidas o problemas directamente con la tarjeta.

    \r\n\r\n

    \r\n
    9. Opiniones, comentarios, comunicaciones y otros contenidos
    \r\n

    \r\n Los usuarios podrán publicar sus opiniones y comentarios así como publicar otros contenidos, enviar comunicaciones, sugerencias, ideas, comentarios, preguntas u otra información, siempre que el contenido de las mismas no resulte ilícito, obsceno, abusivo, constituya un supuesto de amenaza o difamación, o invada la privacidad de terceros, infrinja derechos de propiedad intelectual o de cualquier otra forma resulte ofensivo para terceros o censurable, ni consista en o contenga virus informáticos, propaganda política o contenido publicitario, correos en cadena, envío masivo de correos o constituya cualquier otro tipo de \"spam\". No está permitido el uso de direcciones de correo falsas, ni suplantar la identidad de otra persona o entidad, ni falsear de cualquier otro modo el origen de cualquier otro contenido. Nos reservamos el derecho (sin que no obstante, y en ausencia de un Formulario de Aviso válido, venga obligada a ello) a eliminar o modificar cualquier contenido. Si considera que cualquier contenido de los Servicios de Sigma o cualquier material cuya venta estuviera publicitada en los mismos incluye cualquier afirmación difamatoria, o si entendiera que sus derechos de propiedad intelectual están siendo infringidos por cualquier elemento o información disponible en los Servicios de Sigma.\r\n Usted declara y garantiza ser titular de cualquier otra forma controlar la totalidad de los derechos sobre el contenido que pudiera almacenar en nuestra base de datos, manifestando y garantizado asimismo que a la fecha de la remisión de dicho contenido: (i) dicho contenido y material es exacto; y que (ii) la utilización de dicho contenido o material no supondrá incumplimiento alguno de las políticas o directrices aplicables de Sigma, ni supondrá perjuicio alguno a ninguna persona o entidad (garantizando asimismo que el contenido o material en cuestión no es de carácter difamatorio). Usted se compromete a liberar a Sigma de cualesquiera reclamaciones presentadas por terceros contra Sigma derivadas de o en relación con dicho contenido y materiales, salvo en la medida en que dicha responsabilidad derive de la falta de supresión adecuada por nuestra parte de dicho contenido o material tras haber sido notificados del carácter ilícito de dicho contenido o material.\r\n

    \r\n

    \r\n
    10. Reclamaciones sobre Propiedad Intelectual
    \r\n

    Sigma respeta la propiedad intelectual de terceros. Si considera que sus derechos de propiedad intelectual han podido ser infringidos, le rogamos que haga uso de nuestra Política y Procedimiento de Reclamaciones por Infracción.

    \r\n
    11. Condiciones Generales sobre el Software de Sigma
    \r\n

    Todo software, incluidas las actualizaciones, mejoras y cualquier otra documentación relacionada con dicho software, que ponemos a su disposición en cualquier momento en relación con los Servicios de Sigma (el \"Software de Sigma\") está sujeto, además de a las presentes Condiciones de Uso y Venta, a las condiciones de Licenciamiento.

    \r\n\r\n
    12. Otros negocios
    \r\n

    Además de Sigma, distribuidores y aliados estratégicos ofrecen sus servicios a través del presente sitio web. De forma adicional, ofrecemos enlaces a los sitios web de sociedades de nuestro grupo y de otras empresas. No somos responsables de examinar o calificar, ni en ningún caso garantizamos, las ofertas de ninguna de tales empresas o personas físicas, ni el contenido alojado en sus respectivos sitios web. No asumimos responsabilidad alguna por las acciones, productos y contenidos de ninguna de tales empresas o individuos o cualesquiera otros terceros. El cliente siempre estará informado sobre si un tercero participa en su operación y podremos compartir con dicho tercero cualquier información relativa a dicha operación. Le sugerimos que revise detenidamente las declaraciones de privacidad y demás condiciones de uso de tales terceros.

    \r\n
    13. Nuestra responsabilidad
    \r\n

    \r\n Realizaremos nuestros mejores esfuerzos para asegurar la disponibilidad, sin interrupciones, de los Servicios de Sigma, así como la ausencia de errores en cualquier transmisión de información que pudiera tener lugar. No obstante, y debido a la naturaleza misma de Internet, no es posible garantizar tales extremos. Asimismo, su acceso a los Servicios de Sigma pudiera ocasionalmente verse suspendido o restringido a efectos de la realización de trabajos de reparación o mantenimiento, o la introducción de nuevos productos o servicios. Procuraremos limitar la frecuencia y duración de tales suspensiones o restricciones.\r\n Sigma no será responsable de (i) cualesquiera pérdidas que no fueran atribuibles a incumplimiento alguno por su parte, (ii) pérdidas empresariales (incluyendo lucro cesante, de ingresos, de contratos, de ahorros previstos, de datos, pérdida del fondo de comercio o gastos innecesarios incurridos), ni de (iii) cualesquiera pérdidas indirectas o de carácter consecuencial que no fueran razonablemente previsibles por ambas partes en el momento en que el usuario hubiera comenzado a utilizar los Servicios de Sigma. tampoco seremos responsable de ninguna demora o falta de cumplimiento de nuestras obligaciones derivadas de las presentes condiciones si dicha demora o falta de cumplimiento fuera atribuible a circunstancias ajenas a nuestro control razonable. Esta disposición no afecta al derecho del cliente a recibir la prestación del correspondiente servicio en un plazo razonable, o a recibir el oportuno reembolso para el caso de que no pudiéramos suministrarle tales servicios en un plazo razonable por cualquier causa ajena a nuestro control razonable.\r\n Nada de lo dispuesto en las presentes condiciones limita o excluye nuestra responsabilidad en caso de falsedad, ni en supuestos de fallecimiento o daños personales atribuibles a nuestra negligencia o dolo.\r\n

    \r\n\r\n
    14. Ley aplicable
    \r\n

    Las presentes condiciones se regirán e interpretarán de conformidad con las leyes de la República de Costa Rica. Ambas partes acordamos someternos a la jurisdicción de los tribunales de la República de Costa Rica.

    \r\n\r\n
    15. Modificación del Servicio o Variación de las Condiciones
    \r\n

    Nos reservamos el derecho a realizar cambios en los Servicios de Sigma, en nuestras políticas y en nuestros términos y condiciones, incluyendo las presentes Condiciones de Uso, en todo momento usted quedará sujeto a los términos y condiciones, políticas, Condiciones de Uso y Condiciones Generales de los Servicios vigentes a la fecha en que utilice los Servicios de Sigma. Si alguna de las presentes Condiciones de Uso o de las Condiciones Generales de los Servicios fuera declarada inválida, nula o por cualquier causa ineficaz, dicha condición se entenderá excluida sin que dicha declaración pueda afectar a la validez ni a la exigibilidad del resto de condiciones.

    \r\n
    16. Renuncia
    \r\n

    En caso de incumplimiento por su parte de las presentes Condiciones de Uso, y aun cuando pudiéramos optar por no ejercitar cualesquiera derechos a nuestro alcance en dicho momento, podremos hacer uso de tales derechos y acciones en cualquier otra ocasión en la que usted pudiera incumplir nuevamente las presentes Condiciones de Uso.

    \r\n
    17. Menores de edad
    \r\n

    No ofrecemos nuestros servicios a menores de edad. Los menores de 18 años no podrán utilizar los Servicios de Sigma, ni siquiera bajo la supervisión de un padre o un tutor.

    \r\n

    Condiciones de venta

    \r\n

    Las presentes Condiciones de Venta se aplican a la venta de productos por parte de Sigma. Sigma es un nombre comercial de Sigma Asesorias Contables, S.A. Además, cada vez que utilice cualquier servicio presente o futuro de sigmacr.net estará igualmente sujeto a los términos y condiciones generales y a las condiciones particulares aplicables a dicho servicio (las \"Condiciones Generales\"). Dichas Condiciones Generales prevalecerán sobre las presentes Condiciones de Venta en caso de discrepancia entre ambas. Le rogamos que lea detenidamente las presentes condiciones antes de cursar su pedido a Sigma. Al cursar su compra a Sigma, usted acepta quedar vinculado por las presentes condiciones.

    \r\n

     

    \r\n
    1. Contrato
    \r\n

    Cuando usted realice su compra, le enviaremos un correo electrónico confirmando la recepción de su compra. Usted recibirá una factura electrónica vía correo electrónico una vez confirmado el pago correspondiente. Una vez confirmado el pago quedará habilitado en su cuenta la descarga de sus respectivos productos.

    \r\n
    2. Pago seguro
    \r\n

    Esta tienda está autorizada por VISA INTERNACIONAL y MASTER CARD INTERNACIONAL como un comercio seguro para realizar transacciones electrónicas.

    \r\n

    Tomando en cuenta su seguridad, Sigma no almacena datos de tarjeta durante la apertura de la cuenta. Sigma se apega a los métodos de seguridad especificados por la entidad bancaria correspondiente.

    \r\n

    Sigma NO venderá, proporcionará, intercambiará o de ninguna forma, divulgará información de calidades de nuestros clientes.

    \r\n
    3. Precios
    \r\n

    Todos nuestros precios están dados en colones e incluyen los impuestos exigidos por la legislación tributaria.

    \r\n

    No se agregará costo adicional por el solo hecho del pago con tarjetas de crédito ó débito.

    \r\n
    4. Pago Electrónico, Cancelación y Devolución
    \r\n

    Los SERVICIOS DE Sigma son ofrecidos para el USUARIO, éste libremente decide cual producto o paquete y cuánta cantidad solicite a través del SITIO WEB en el momento de realizar la compra, sin presión y sin conocimiento de Sigma hasta que el USUARIO ejecute la compra y se aplique el método de pago mediante la utilización de una tarjeta de crédito. Si el USUARIO desea realizar cambio de los productos de software adquiridos a través de nuestra página web, se aclara que los costos y cargos administrativos deben ser asumidos por el USUARIO, igualmente Sigma se reserva el criterio de realizar devoluciones en plena fuerza y vigor de estos términos descritos.

    \r\n

    Sigma utilizará el SITIO WEB para facilitarle al USUARIO una forma de pago electrónico seguro y directo con la entidad Bancaria. Los pagos son finales y por lo tanto no se permitirán devoluciones ni cancelaciones mediante el SITIO WEB. Sigma no activará planes de facturación o brindará los productos de software comprados a través del SITIO WEB si la tarjeta por parte del cliente no tiene los fondos suficientes para que el pago se realice a través del SITIO WEB.

    \r\n

    Si desea realizar cambio de productos de software adquiridos a través del SITIO WEB, se aclara que los costos y cargos administrativos deben ser asumidos por el USUARIO. Lo anterior no afecta las garantías legales y demás derechos reconocidos al consumidor por la legislación vigente. En caso de solicitar el cambio por un producto de mayor valor al efectivamente pagado y/o características diferentes, el USUARIO deberá pagar el valor del excedente que resultare necesario para cubrir el precio del nuevo producto.

    \r\n

    Si el Usuario solicita una devolución Sigma se reserva el criterio de realizar devoluciones, de aprobar la devolución se procesará en los siguientes 30 días hábiles en la tarjeta utlizada por el USUARIO para la compra y verificada por SIGMA S.A., deduciendo los costos y cargos administrativos hasta por un costo de $8 USD al tipo de cambio del día de la devolución, mismo que asumirá el USUARIO.

    \r\n

    Sigma presta servicios mediante el SITIO WEB únicamente como agente intermediario entre el USUARIO y la entidad Bancaria, Usted libera a Sigma sobre cualquier responsabilidad ante cualquier falla o falta de cumplimiento por parte de la entidad Bancaria en el caso de transacciones fallidas o problemas directamente con la tarjeta.

    \r\n
    5. Ley aplicable
    \r\n

    Las presentes condiciones se regirán e interpretarán de conformidad con las leyes de la República de Costa Rica. Ambas partes acordamos someternos a la jurisdicción de los tribunales de Costa Rica.

    \r\n
    6. Modificación de las condiciones de venta
    \r\n

    Nos reservamos el derecho a realizar cambios a nuestro sitio web, a nuestras políticas y a nuestros términos y condiciones, incluyendo a las presentes Condiciones de Venta, en cualquier momento. Usted quedará sujeto a los términos y condiciones, políticas y Condiciones de Venta en vigor en el momento en que realice su compra, a menos que, por ley o por requerimiento de las autoridades públicas, se deba efectuar un cambio a dichos términos y condiciones, políticas o a las presentes Condiciones de Venta (en cuyo caso, tales cambios podrían resultar aplicables a cualesquiera pedidos que hubiera realizado anteriormente). Si alguna de las presentes condiciones fuera declarada inválida, nula o por cualquier causa ineficaz, dicha condición se entenderá excluida sin que dicha declaración pueda afectar a la validez ni a la exigibilidad del resto de condiciones

    \r\n
    7. Renuncia
    \r\n

    En caso de incumplimiento por su parte de las presentes Condiciones de Venta, y aún cuando Sigmacr.net pudiera no ejercitar cualesquiera derechos a su alcance en dicho momento, Sigmacr.net podrá hacer uso de tales derechos y acciones en cualquier otra ocasión en la que usted pudiera incumplir las presentes Condiciones de Venta.

    \r\n
    8. Menores de edad
    \r\n

    No vendemos productos a menores de edad. Los menores de 18 años no podrán utilizar Sigmacr.net bajo la supervisión de un padre o un tutor.

    \r\n\r\n\r\n
    9. Nuestros datos
    \r\n

    \r\n Sigma es el nombre comercial que utiliza Sigma Asesorias Contables, S.A. El presente sitio web es propiedad de Sigma Asesorias Contables, S.A., quien es responsable asimismo de su explotación.\r\n\r\n Información sobre Sigma Asesorias Contables, S.A.:\r\n

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

    \r\n Razón Social:\r\n

    \r\n
    \r\n

    \r\n Sigma Asesorias Contables, S.A.\r\n

    \r\n
    \r\n

    \r\n Cédula Jurídica:\r\n

    \r\n
    \r\n

    \r\n 3-101-578689\r\n

    \r\n
    \r\n

    \r\n Dirección Geográfica:\r\n

    \r\n
    \r\n

    \r\n San José, Montes de Oca, San Pedro, La granja, 50m este de la embaja de Panamá\r\n

    \r\n
    \r\n

    \r\n Teléfono:\r\n

    \r\n
    \r\n

    \r\n (506) 2291-7170\r\n

    \r\n
    \r\n

    \r\n Fax:\r\n

    \r\n
    \r\n

    \r\n (506) 2291-7170\r\n

    \r\n
    \r\n

    \r\n Horario de atención telefónica:\r\n

    \r\n
    \r\n

    \r\n De lunes a viernes de 8:00 AM. a 7:00 PM. y sábados de 8:00 A.M. A 3:00 P.M.\r\n

    \r\n
    \r\n

    \r\n Correo electrónico:\r\n

    \r\n
    \r\n

    \r\n info@sigmacr.net\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default InfoTerminosYCondiciones;\r\n","import React from \"react\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport InfoTerminosYCondiciones from \"../components/Formularios/InfoTerminosYCondiciones\";\r\nconst TerminosYCondiciones = () => {\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    Bienvenido a Sigmacr.net
    \r\n

    Sigma le ofrece funciones de sitio web y otros productos y servicios cuando visita o compra en www.sigmacr.net (el \"sitio web\"), utiliza los productos o servicios de Sigma, usa las aplicaciones de Sigma para dispositivos móviles o emplea software puesto a disposición por Sigma en relación con lo anterior (los \"Servicios de Sigma\" e individuamente, cada uno de ellos , el \"Servicio de Sigma\"). Sigma le presta los Servicios bajo las condiciones establecidas en esta página.

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TerminosYCondiciones;\r\n","import React from \"react\";\r\nimport FormatMoney from \"../services/FormatMoney\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst FilaCarrito = ({ data, descuento, impuesto }) => {\r\n\r\n let productoData = data;\r\n\r\n let subTotal = productoData.precio /** productoData.cantidad*/;\r\n let montoDescuento = subTotal * descuento;\r\n let SubTotalDescuento = (subTotal - montoDescuento);\r\n let totalImpuesto = (SubTotalDescuento * impuesto);\r\n\r\n return (\r\n <>\r\n\r\n \r\n\r\n \r\n {productoData.nombrePro}\r\n \r\n \r\n {productoData.correoCuenta !== \"\" ? productoData.correoCuenta: \"Sin cuenta a aplicar (Agregar)\"}\r\n \r\n \r\n \r\n \r\n {FormatMoney(SubTotalDescuento)}\r\n \r\n \r\n\r\n \r\n {FormatMoney(SubTotalDescuento + totalImpuesto)}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FilaCarrito;\r\n","import React, { useEffect } from \"react\";\r\nimport FilaCarrito from \"../FilaCarrito\";\r\nimport CardTotal from \"../Visuales/CardTotal\";\r\nimport { SweetAlert } from \"../../services/ControlActions\";\r\nimport { UseCarritoState } from \"../../hooks/UseCarritoState\"\r\nimport { useHistory } from \"react-router-dom\";\r\nconst ProductosPago = () => {\r\n let history = useHistory();\r\n const { spinnerCarrito, recargarCarrito, carritoData, promocion, impuesto } = UseCarritoState();\r\n\r\n useEffect(() => {//valida que haya carrito\r\n //console.log(\"carrito data\", carritoData)\r\n\r\n if (!recargarCarrito) {//mientras carga no soltar errores\r\n if (carritoData != null && carritoData !== '') {//si ya cargó y no encontró carrito\r\n if (carritoData?.ProductoCarrito.length > 0) {\r\n //todo bien\r\n } else {\r\n SweetAlert(3, \"No puede acceder\", \"No tienes productos ni servicios en el carrito.\", \"\", \"Entendido\", () => { history.push(\"/carritoPage\"); });\r\n setTimeout(() => {\r\n history.push(\"/carritoPage\");\r\n }, 2000)\r\n }\r\n } else {\r\n SweetAlert(3, \"No puede acceder\", \"No se encontró el carrito, intentalo de nuevo más tarde.\", \"\", \"Entendido\", () => { history.push(\"/\"); });\r\n setTimeout(() => {\r\n history.push(\"/\");\r\n }, 2000)\r\n }\r\n }\r\n }, [carritoData, recargarCarrito,history]);\r\n\r\n /*useEffect(() => {\r\n if (getItem(\"carrito\")) {\r\n if (recargar) {\r\n showSpinner();\r\n getPromo(getItem(\"carrito\").idCodigoAplicable)\r\n setCarritoData(getItem(\"carrito\"));\r\n setRecargar(false);\r\n hideSpinner();\r\n }\r\n }\r\n }, [recargar]);\r\n\r\n\r\n\r\n const getPromo = (idCodigo) => {\r\n if (idCodigo > 0 && idCodigo != null) {\r\n //falta la logica para buscar\r\n showSpinner();\r\n Retrieve(ListaEndpoints.CODIGO_APLICABLE, \"GetCodigoAplicableById\",idCodigo)\r\n .then((res) => {\r\n // console.log(res);\r\n if (res) {\r\n\r\n if (res.data) {//si está disponible \r\n setPromocion(res.data)\r\n SwalToast(2, \"Promoción Encontrada\", () => { }, 3000);\r\n\r\n } else {\r\n setPromocion(null)\r\n let err = \"Promociones:\" + res.error;\r\n SweetAlert(3, \"Lo sentimos\", err, \"\", \"Entendido\", () => { });\r\n\r\n }\r\n\r\n } else {\r\n setPromocion(null)\r\n let err = \"Promociones:\" + res.error;\r\n SweetAlert(3, \"Acción interrumpida\", err, \"\", \"Entendido\", () => { });\r\n //console.log(res);\r\n }\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"Promociones: No se pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n\r\n }\r\n }*/\r\n\r\n return (\r\n <>\r\n {spinnerCarrito}\r\n
    \r\n

    Su Orden

    \r\n {recargarCarrito === false ? (\r\n carritoData.ProductoCarrito.length === 0 ? (\r\n

    Actualmente no cuenta con productos

    \r\n ) : (\r\n <>\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n {carritoData.ProductoCarrito.map((productoData) => (\r\n \r\n ))}\r\n \r\n
    Nombre del productoCorreo de la cuentaPrecioSubtotal
    \r\n
    \r\n
    \r\n\r\n {carritoData.ProductoCarrito.length === 0\r\n ? null\r\n : }\r\n\r\n
    \r\n \r\n )\r\n ) : (\r\n

    Cargando

    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProductosPago;\r\n","import { useState, useEffect } from 'react'\r\nimport { SweetAlert } from \"../services/ControlActions\"\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { setItem } from \"../services/UseLocalStorage\"\r\nimport { URL_SINGALR, ListaHubsSignalR } from \"../config/Config\"\r\n//signalR\r\nimport { hubConnection } from 'signalr-no-jquery';\r\nconst connectionPagoPedido = hubConnection(URL_SINGALR);\r\nconst hubProxyPagoPedido = connectionPagoPedido.createHubProxy(ListaHubsSignalR.HUB_CONCRETARPEDIDO.name);\r\n\r\nexport const UseSignalR = () => {\r\n let history = useHistory();\r\n //signalrConexion\r\n const [conexionId, setConexionId] = useState(\"\");\r\n const InicializaConexionSignalR = () => {\r\n // let self = this;\r\n\r\n //#region lista de metodos\r\n //Se declara el proxy al hub llamado hubConcretarPedido en el API que es el retorno y se obtiene la descarga\r\n hubProxyPagoPedido.on(ListaHubsSignalR.HUB_CONCRETARPEDIDO.hubConcretarPedido, function (res) {\r\n //alignet-modal\r\n // console.log(\"Entró al método signalR\", res)\r\n const modalPayment = document.getElementById(\"BodyPrincipal\");\r\n if (modalPayment != null) {\r\n //console.log(\"modal\", modalPayment)\r\n modalPayment.classList.remove('alignet-body-modal');\r\n const modal = document.getElementById(\"alignet-modal\");\r\n if (modal) {\r\n modalPayment.removeChild(modal)\r\n }\r\n }\r\n //window.location.reload(true)\r\n if (res != null) {//si no hay respuesta \r\n switch (res.data) {\r\n case '01':\r\n window.location.reload(true)\r\n break;\r\n case '02':\r\n // console.log(\"02\")\r\n if (res.ok) {\r\n SweetAlert(2, \"Acción Completada\", res.msg, \"\", \"Entendido\", () => { history.push(\"/historialPedidos\"); });\r\n } else {\r\n SweetAlert(1, \"Acción Completada\", res.msg, \"\", \"Entendido\", () => { history.push(\"/historialPedidos\"); });\r\n console.error(res.error, res.errorDescription);\r\n }\r\n setTimeout(() => {\r\n history.push(\"/historialPedidos\");\r\n }, 3000)\r\n\r\n break;\r\n case '03':\r\n SweetAlert(3, \"Acción interrumpida\", res.msg, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\"); });\r\n console.error(res.error, res.errorDescription);\r\n break;\r\n case '04':\r\n SweetAlert(1, \"Acción en proceso\", res.msg, \"\", \"Entendido\", () => { });\r\n //console.log(res.error, res.errorDescription);\r\n break;\r\n default:\r\n // window.location.reload(true)\r\n break;\r\n }\r\n\r\n } else {\r\n SweetAlert(3, \"No se pudo completar la acción\", \"No hubo respuesta\", \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\"); });\r\n setTimeout(() => {\r\n history.goBack() ? history.goBack() : history.push(\"/\");\r\n }, 2000);\r\n }\r\n });\r\n //#endregion\r\n\r\n // Se inicializa la conexión al API con el signalr\r\n connectionPagoPedido.start({ jsonp: true })\r\n .done(function () {\r\n // console.log('Now connected, connection signalR ID=' + connectionPagoPedido.id);\r\n setItem(\"conexionSignalRId\", connectionPagoPedido.id);\r\n setConexionId(connectionPagoPedido.id)\r\n })\r\n .fail(function () {\r\n // console.log('Could not connect');\r\n });\r\n }\r\n useEffect(() => {\r\n //solo se ejecute una vez\r\n InicializaConexionSignalR();\r\n }, [])\r\n return (\r\n {\r\n conexionId,\r\n InicializaConexionSignalR\r\n }\r\n )\r\n}\r\n","import React, { useState } from \"react\";\r\nimport {\r\n ListaEndpoints,\r\n ERROR_REQUERIDO,\r\n REGEX_VALIDACION_EMAIL,\r\n ERROR_REGEX_EMAIL,\r\n ERROR_REGEX_TEL, MODAL_STYLES,ESTADOAPP, PRODUCCION\r\n} from \"../../config/Config\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useEffect } from \"react\";\r\nimport { PostWithToken, SweetAlert, existeToken, GetWithToken } from \"../../services/ControlActions\";\r\nimport ErrorForm from \"../Formularios/ErrorForm\";\r\nimport { getItem } from '../../services/UseLocalStorage';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport Spinner from \"./Spinner\";\r\nimport Modal from \"react-modal\";\r\nimport InfoTerminosYCondiciones from '../Formularios/InfoTerminosYCondiciones';\r\nimport InfoPrivacidad from '../Formularios/InfoPrivacidad';\r\nimport { UseCarritoState } from \"../../hooks/UseCarritoState\";\r\nimport { UseSignalR } from \"../../hooks/UseSignalR\";\r\n\r\nconst SeleccionPagoBN = () => {\r\n //#region states\r\n let history = useHistory();\r\n const { register, handleSubmit, errors } = useForm({ defaultValues: { tokenList: \"\" } });\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n //carrito\r\n const { carritoData } = UseCarritoState();\r\n const carrito = carritoData;\r\n //signalR\r\n const { conexionId, InicializaConexionSignalR } = UseSignalR();\r\n //usuario \r\n const [muestraPagina] = useState(existeToken());\r\n const [usuario, setUsuario] = useState(null);\r\n const [cargando, setCargando] = useState(true)\r\n // state que guarda el callback del widget, no es utilizado si no se utiliza el widget\r\n //#region terminos y widget pago\r\n const [enviandoPago, setEnviandoPago] = useState(false);\r\n const [showModelTerminos, setShowModelTerminos] = useState(false);\r\n const [clickTerminos, setClickTerminos] = useState(false);//se usaba pero por una modificacion del banco se dejó de lado\r\n const [checkboxTerminos, setCheckboxTerminos] = useState(false);\r\n const [dataWidget, setDataWidget] = useState({});\r\n const [objetoUsuario, setObjetoUsuario] = useState({\r\n nombre: \"\",\r\n apellido: \"\",\r\n telefono: \"\",\r\n correo: \"\",\r\n idPedido: 0,\r\n userId: \"\"\r\n });\r\n const [errorObj, setErrorObj] = useState({ mostar: false, mensaje: \"\" });\r\n //#endregion\r\n MODAL_STYLES.content.maxWidth = \"70%\"\r\n //#endregion\r\n //#region signalR\r\n const ValidarConexion = () => {\r\n if (conexionId == null || conexionId === \"\") {\r\n if (InicializaConexionSignalR != null) {\r\n InicializaConexionSignalR();\r\n }\r\n }\r\n }\r\n useEffect(() => { //valida la conexion con signalR\r\n if (muestraPagina) {\r\n ValidarConexion();\r\n }\r\n }, [conexionId, muestraPagina])\r\n\r\n //#endregion\r\n const getUsuario = () => {\r\n showSpinner();\r\n GetWithToken(ListaEndpoints.USUARIO, \"GetUsuario\").then(\r\n (res) => {\r\n // console.log(\"datos\", res);\r\n if (res.ok) {\r\n let respUsuario = res.data;\r\n if (respUsuario == null) {\r\n SweetAlert(3, \"Acción interrumpida \", \"\" + res.msg, \"\", \"Entendido\", () => { history.push(\"/\"); });\r\n // console.log(\"Ha ocurrido un error al mostrar el usuario\"); \r\n } else {\r\n setUsuario(respUsuario);\r\n }\r\n } else {\r\n SweetAlert(3, \"Acción Interrumpida\", \"\" + res.msg, \"\", \"Entendido\", () => { history.push(\"/\"); });\r\n // console.log(\"Ha ocurrido un error al traer el usuario.\" + res.error, res.errorDescription);\r\n }\r\n }\r\n ).catch((error) => {\r\n console.error(\"Ha ocurrido un error al traer el usuario.\", error);\r\n }).finally(() => { hideSpinner(); setCargando(false); });\r\n }\r\n // UseEffect inicial\r\n useEffect(() => {\r\n if (muestraPagina) {\r\n if (cargando && usuario == null) {\r\n getUsuario();\r\n }\r\n if (cargando === false && usuario != null) {//existe token\r\n let nombres = usuario.Nombre.split(\" \");\r\n let nom = \"\", ape = \"\";\r\n let primero = true;\r\n for (let index = 0; index < nombres.length; index++) {\r\n if (primero) {\r\n nom += nombres[index];\r\n primero = false;\r\n } else {\r\n ape += nombres[index] + \" \";\r\n }\r\n }\r\n setObjetoUsuario({\r\n nombre: nom,\r\n apellido: ape,\r\n telefono: usuario.Telefono,\r\n correo: usuario.Email,\r\n idPedido: 0,\r\n userId: \"\",\r\n userName: \"\",\r\n });\r\n }\r\n }\r\n }, [usuario, cargando, muestraPagina]);\r\n const onSubmit = async (data) => {\r\n //console.log(\"submit\", data);\r\n //PARTE 1 DE WIDGET datos variantes del usuario \r\n\r\n calcularMonto().then((monto) => {\r\n if (monto != null && monto > 0) {\r\n procederPago(data, monto)\r\n }\r\n });\r\n\r\n\r\n };\r\n const procederPago = (data, monto) => {\r\n showSpinner();\r\n //Aceptar terminos Enviar ultimo registro\r\n let user = getItem('usuario');\r\n setEnviandoPago(true);\r\n if (user != null) {\r\n PostWithToken(ListaEndpoints.CARRITO, \"AceptarTerminosCondiciones\", \"\", carrito).then(\r\n (res) => {\r\n // setEnviado(true);\r\n // console.log(\"res de temirnos y condiciones\", res)\r\n if (res.data) {\r\n if (res.ok) {\r\n //MostrarWidget\r\n PostWithToken(ListaEndpoints.PAGO, \"CargarWidget\", \"\", monto).then(\r\n (res) => {\r\n // setEnviado(true);\r\n // console.log(\"res de widget\", res)\r\n if (res.data) {\r\n if (res.ok) {\r\n //PARTE 2 DE WIDGET keys y datos fijos\r\n setDataWidget(res.data);\r\n\r\n //generar pedido\r\n PostWithToken(ListaEndpoints.ACCION, \"GenerarPedido\", \"\", user).then(\r\n (res) => {\r\n // console.log(\"res generar pedido\", res)\r\n if (res.ok && res.data != null) {\r\n //PARTE 3 DE WIDGET datos variantes del usuario logeado y del pedido\r\n //console.log(\"data act\", objetoUsuario);\r\n setObjetoUsuario({\r\n nombre: data.nombre,\r\n apellido: data.apellido,\r\n telefono: data.telefono,\r\n correo: data.correo,\r\n idPedido: res.data.id,\r\n userId: user.userId,\r\n userName: user.cta_id,// gmail\r\n });\r\n\r\n let form1 = document.getElementById(\"f1\");\r\n\r\n // console.log(\"test form\", form1)\r\n form1.submit();\r\n\r\n\r\n } else {\r\n setErrorObj({ mostar: true, mensaje: res.error });\r\n }\r\n },\r\n (error) => {\r\n setErrorObj({ mostar: true, mensaje: error.message });\r\n }\r\n ); //fin generar pedido\r\n\r\n } else {\r\n SweetAlert(2, \"Acción concluida\", ` ${res.error !== '' || res.error != null ? res.error : res.msg}`,\r\n \"\", \"Entendido\", () => { });\r\n }\r\n } else {// \r\n SweetAlert(3, \"No se completó la acción\",\r\n ` ${res.msg ? res.msg : \"No se pudo procesar la compra, inténtelo de nuevo más tarde o consulte a su proveedor\"}.`,\r\n \"\", \"Entendido\", () => { });\r\n }\r\n hideSpinner();\r\n },\r\n (error) => {\r\n hideSpinner();\r\n SweetAlert(\r\n 3,\r\n \"Acción Interrumpida\",\r\n ` ${error.message}`,\r\n \"Inténtelo de nuevo más tarde\",\r\n \"Entendido\",\r\n () => { }\r\n );\r\n // console.log(\"Ha ocurrido un error.\", error);\r\n }\r\n ); // fin de MostrarWidget\r\n } else {\r\n SweetAlert(2, \"Acción concluida\", ` ${res.error !== '' || res.error != null ? res.error : res.msg}`,\r\n \"\", \"Entendido\", () => { });\r\n }\r\n } else {// \r\n SweetAlert(3, \"No se completó la acción\",\r\n ` ${res.msg ? res.msg : \"No se pudo procesar la compra, inténtelo de nuevo más tarde o consulte a su proveedor\"}.`,\r\n \"\", \"Entendido\", () => { });\r\n }\r\n hideSpinner();\r\n },\r\n (error) => {\r\n hideSpinner();\r\n SweetAlert(\r\n 3,\r\n \"Acción Interrumpida\",\r\n ` ${error.message}`,\r\n \"Inténtelo de nuevo más tarde\",\r\n \"Entendido\",\r\n () => { }\r\n );\r\n // console.log(\"Ha ocurrido un error.\", error);\r\n }\r\n );//fin de terminos y condiciones\r\n } else {\r\n getUsuario();\r\n }\r\n }\r\n const calcularMonto = async () => {\r\n\r\n // console.log(\"dato carrito\", carrito)\r\n let monto = null;\r\n if (carrito != null) {\r\n await PostWithToken(ListaEndpoints.ACCION, \"CalcularMonto\", \"\", carrito).then(\r\n (res) => {\r\n //console.log(\"resCalcular monto\", res)\r\n if (res.ok && res.data != null) {\r\n\r\n monto = res.data.total;\r\n } else {\r\n setErrorObj({ mostar: true, mensaje: res.error });\r\n }\r\n }).catch((error) => {\r\n setErrorObj({ mostar: true, mensaje: error.message });\r\n })\r\n\r\n } else {\r\n setErrorObj({ mostar: true, mensaje: \"No se logró obtener el carrito, no se puede continuar.\" });\r\n }\r\n return monto;\r\n }\r\n const mostrarTerminos = () => {\r\n setShowModelTerminos(true);\r\n setClickTerminos(true);\r\n\r\n }\r\n\r\n\r\n return (\r\n <>\r\n {spinner}\r\n {muestraPagina && cargando != null && usuario ? (\r\n <>\r\n {/*\"id de conexion:\" + conexionId*/}\r\n
    \r\n

    Información de formalización

    \r\n {/*false*/usuario.Identificacion.length > 8 && usuario.Direccion !== \"\" ? (\r\n <>\r\n
    \r\n {/**Nombre */}\r\n
    \r\n \r\n \r\n\r\n {errors.nombre ? (\r\n \r\n ) : null}\r\n
    \r\n {/**Apellido */}\r\n
    \r\n \r\n \r\n\r\n {errors.apellido ? (\r\n \r\n ) : null}\r\n
    \r\n {/**Correo */}\r\n
    \r\n \r\n \r\n\r\n {errors.correo ? (\r\n \r\n ) : null}\r\n
    \r\n {/**Telefono */}\r\n
    \r\n \r\n \r\n\r\n {errors.telefono ? (\r\n \r\n ) : null}\r\n
    \r\n {/**detalle \r\n
    \r\n \r\n

    \r\n En caso de ser un distribuidor, por favor utilice este campo para ingresar el correo electrónico de la cuenta que se va a activar.\r\n Utilice este campo para dar detalles sobre su compra.\r\n

    \r\n \r\n {errors.detalle ? (\r\n \r\n ) : null}\r\n
    */}\r\n {/**Terminos y cóndiciones */}\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n {/** disabled={!clickTerminos} */}\r\n setCheckboxTerminos(!checkboxTerminos)}\r\n />\r\n\r\n {/*checkboxTerminos?\"true\": \"false\"}{enviandoPago?\"true\": \"false\"*/}\r\n \r\n
    \r\n {/*Submit*/}\r\n\r\n \r\n Realizar pago\r\n \r\n {errorObj.mostar ? (\r\n \r\n ) : null}\r\n {errors.nombre || errors.apellido || errors.correo || errors.telefono ? (\r\n \r\n ) : null}\r\n {/*Mostrar widget\r\n cargarWidget(100)}\r\n >\r\n mostrar widget\r\n */}\r\n \r\n \r\n ) : (\r\n
    \r\n

    \r\n Porfavor actualice su Información personal en su perfil antes de continuar.\r\n\r\n\r\n

    \r\n \r\n {\"Click para ir al Perfil \"} \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {/*Info widget BN*/}\r\n {/* test \"javascript: AlignetVPOS2.openModal('https://integracion.alignetsac.com/')\" */}\r\n {/* prod \"javascript: AlignetVPOS2.openModal('',1)\" */}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*nombre pedirlos*/}\r\n {/*apelido pedirlos*/}\r\n {/*correo pedirlos*/}\r\n \r\n \r\n \r\n \r\n \r\n {/*numero pedirlos*/}\r\n \r\n \r\n \r\n {/*Pedido id*/}\r\n {/*user id*/}\r\n {/*nombre de usuario*/}\r\n {/*signalR id*/}\r\n {/*Sin uso*/}\r\n {/*Sin uso*/}\r\n {/*Sin uso*/}\r\n {/*Sin uso*/}\r\n \r\n \r\n {/* cargarWidget(100)}\r\n className=\"btn btn-primary order-btn\"\r\n value={\"Comprar\"}\r\n >\r\n mostrar\r\n */}\r\n \r\n
    \r\n setShowModelTerminos(false)}\r\n style={MODAL_STYLES}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    { }
    \r\n setShowModelTerminos(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n\r\n
    \r\n setShowModelTerminos(false)}\r\n className=\"btn btn-primary\"\r\n >\r\n Aceptar\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n ) :
    {cargando ?

    Cargando...

    :

    No se puede mostrar esta vista, No hay Token

    }
    }\r\n \r\n );\r\n};\r\n\r\nexport default SeleccionPagoBN;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport ProductosPago from \"../components/Visuales/ProductosPago\";\r\nimport SeleccionPagoBN from \"../components/Visuales/SeleccionPagoBN\";\r\nimport { existeToken, SweetAlert } from \"../services/ControlActions\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst PagoPage = () => {\r\n let history = useHistory();\r\n const [muestraPagina] = useState(existeToken());\r\n\r\n useEffect(() => {// UseEffect inicial\r\n \r\n if (!muestraPagina) {//existe token \r\n history.push(\"/\");\r\n SweetAlert(3, \"No puede acceder\", \"Necesita iniciar sesión para continuar\", \"\", \"Entendido\", () => { });\r\n }\r\n\r\n }, [muestraPagina,history]);//no borrar esos parentesis\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default PagoPage;\r\n","import React, { useEffect } from \"react\";\r\nimport { withRouter } from 'react-router-dom';\r\n\r\n\r\nconst SingleFeatures = (props,) => {\r\n\r\n const { history } = props;\r\n useEffect(() => {\r\n\r\n });\r\n\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {props.children}\r\n
    \r\n

    {props.titulo}

    \r\n

    {props.descripcion}

    \r\n
    \r\n
    \r\n )\r\n}\r\nexport default withRouter(SingleFeatures);","import React, { useEffect } from \"react\";\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport SingleFeatures from \"../components/Visuales/SingleFeatures\";\r\nimport { Package, Image, Users, List,Calendar,UserCheck } from \"react-feather\";\r\n\r\nconst Mantenimientos = (props) => {\r\n const { history } = props;\r\n\r\n useEffect(() => {\r\n if (getItem('usuario')) {\r\n if (getItem('usuario').uTipo != \"tp\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n\r\n });\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {/* Start Features Area*/}\r\n
    \r\n
    \r\n
    \r\n\r\n { history.push(\"/adm/servicios#AdmServicios\") }}>\r\n \r\n \r\n\r\n { history.push(\"/adm/publicidad#AdmPublicidad\") }}>\r\n \r\n \r\n\r\n { history.push(\"/adm/clientes#AdmClientes\") }}>\r\n \r\n \r\n\r\n { history.push(\"/adm/promociones#AdmPromociones\") }}>\r\n \r\n \r\n\r\n { history.push(\"/adm/pedidos#AdmPedidos\") }}>\r\n \r\n \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n {/* End Features Area*/}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Mantenimientos);","import React from 'react';\r\nimport { getItem } from '../../services/UseLocalStorage';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst BtnBack = () => {\r\n let history = useHistory();\r\n\r\n const go = () => {\r\n\r\n if (getItem('usuario')?.uTipo != \"tp\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n history.push(\"/mantenimientos\")\r\n }\r\n }\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default BtnBack;","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, MODAL_STYLES } from '../config/Config';\r\nimport { SweetAlert, SweetAlert2, SwalToast, GetWithToken, UpdateWithToken, DeleteWithToken, PostWithToken } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport Modal from \"react-modal\";\r\n/*formulario */\r\nimport { Trash2, Edit, PlusCircle } from \"react-feather\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"../components/Formularios/ErrorForm.js\";\r\nimport { img_default_cliente } from \"../images/imagesURL.js\";\r\nimport BtnBack from '../components/Formularios/BtnBack';\r\n\r\nconst place = \"Servicios\";\r\nconst AdmServicios = (props) => {\r\n const { history } = props;\r\n\r\n const [objeto, setObjeto] = useState({\r\n id: \"\",\r\n duenno: \"\",\r\n tipo: \"\",\r\n titulo: \"\",\r\n descripcion: \"\",\r\n codigoPlanes: \"\",\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n urlImagenBlanca: \"\",\r\n idImagenBlanca: \"\",\r\n otroDetalle: 0,\r\n otroTitulo: \"\",\r\n otroDescripcion: \"\",\r\n telefono: \"\",\r\n correo: \"\",\r\n estado: 0,\r\n fileImg: null,\r\n typeImg: null,\r\n fileImg2: null,\r\n typeImg2: null\r\n });\r\n const [modalAddEdit, setModalAddEdit] = useState(false);\r\n const [edit, setEdit] = useState(false);\r\n const [titulo, setTitulo] = useState(\"Acción\");\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [detalle, setDetalle] = useState(false);\r\n const [imagen, setImagen] = useState({ url: img_default_cliente, change: false });\r\n const [imagen2, setImagen2] = useState({ url: img_default_cliente, change: false });\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n\r\n const CheckID = \"checkBoxOtroDetalle\";\r\n //formulario\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [mensajeError, setMensajeError] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n const [enviado, setEnviado] = useState(false);\r\n //#region datatables\r\n const TblID = \"tblServiciosAdm\";\r\n const [list, setList] = useState(null);\r\n const [datatable, setDatatable] = useState(null)\r\n useEffect(() => {\r\n initData();\r\n }, []);\r\n const startDatatable = () => {\r\n //console.log(\"start\")\r\n setDatatable($(\"#\" + TblID).DataTable({\r\n processing: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n scrollX: true,\r\n order: [[2, \"desc\"]]\r\n }));\r\n }\r\n const destroyDatatable = () => {\r\n\r\n if (datatable != null) {\r\n // console.log(\"destroy\");\r\n datatable.destroy();\r\n setDatatable(null)\r\n }\r\n }\r\n const recargarLista = async () => {\r\n destroyDatatable();\r\n listar().then((res) => {\r\n //console.log(\"res\", res)\r\n if (res) {\r\n startDatatable();\r\n }\r\n })\r\n }\r\n const initData = () => {//solo se deberia ejecutar una vez\r\n if (getItem('usuario')) {\r\n if (getItem('usuario').uTipo != \"tp\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n try {\r\n recargarLista();\r\n } catch (error) {\r\n alert(\"Acción Interrumpida:\", error.message);\r\n }\r\n }\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n }\r\n //#endregion\r\n\r\n const listar = async () => {\r\n showSpinner();\r\n let ok = false;\r\n await GetWithToken(ListaEndpoints.SERVICIO, \"GetServicios\").then((res) => {\r\n //console.log(\"res\", res.data)\r\n if (res.data) {\r\n setList(res.data);\r\n ok = true;\r\n } else {\r\n if (res.Message) {\r\n let err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n } else {\r\n let err = place + \":\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000);\r\n setList(null);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n return ok;\r\n\r\n }\r\n const GetColor = (i) => {\r\n switch (i) {\r\n case 0:\r\n return \"rgb(226, 114, 114)\";\r\n\r\n case 1:\r\n return \"rgb(114, 162, 226)\";\r\n\r\n case 2:\r\n return \"rgb(118, 226, 114)\";\r\n\r\n default:\r\n return \"ffffff\";\r\n }\r\n }\r\n const agregar = async (data) => {\r\n let bool = true;\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n var promise2 = new Promise(getBuffer(data.fileImg2[0]));\r\n await promise2.then(function (d) {\r\n data.typeImg2 = data.fileImg2[0].type;\r\n data.fileImg2 = d.toString();\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n\r\n let datos = {\r\n id: data.id,\r\n duenno: \"Sigma\",\r\n tipo: data.tipo,\r\n titulo: data.titulo,\r\n descripcion: data.descripcion,\r\n codigoPlanes: data.codigoPlanes,\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n urlImagenBlanca: \"\",\r\n idImagenBlanca: \"\",\r\n otroDetalle: detalle ? 1 : 0,\r\n otroTitulo: detalle ? data.otroTitulo : \"\",\r\n otroDescripcion: detalle ? data.otroDescripcion : \"\",\r\n telefono: detalle ? data.telefono : \"\",\r\n correo: detalle ? data.correo : \"\",\r\n estado: 1,\r\n //clases parciales\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n fileImg2: data.fileImg2,\r\n typeImg2: data.typeImg2,\r\n };\r\n await PostWithToken(ListaEndpoints.SERVICIO, \"PostServicio\", \"\", datos).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false)\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e.message)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });;\r\n }\r\n }\r\n const modificar = async (data) => {\r\n // console.log(\"data edit\", data)\r\n let bool = true;\r\n if (data.fileImg != null) {\r\n if (data.fileImg && data.fileImg.length) {\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n }\r\n }\r\n if (data.fileImg2 != null) {\r\n if (data.fileImg2 && data.fileImg2.length) {\r\n var promise2 = new Promise(getBuffer(data.fileImg2[0]));\r\n await promise2.then(function (d) {\r\n data.typeImg2 = data.fileImg2[0].type;\r\n data.fileImg2 = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n }\r\n }\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n\r\n //setObjeto(data);\r\n let datos = {\r\n id: edit ? objeto.id : data.id,\r\n duenno: data.duenno,\r\n tipo: data.tipo,\r\n titulo: data.titulo,\r\n descripcion: data.descripcion,\r\n codigoPlanes: data.codigoPlanes,\r\n urlImagen: data.urlImagen,\r\n idImagen: edit ? objeto.idImagen : data.idImagen,\r\n urlImagenBlanca: data.urlImagenBlanca,\r\n idImagenBlanca: edit ? objeto.idImagenBlanca : data.idImagenBlanca,\r\n otroDetalle: edit ? (detalle ? 1 : 0) : data.otroDetalle,\r\n otroTitulo: data.otroTitulo,\r\n otroDescripcion: data.otroDescripcion,\r\n telefono: data.telefono,\r\n correo: data.correo,\r\n estado: edit ? objeto.estado : data.estado,\r\n //clases parciales\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n fileImg2: data.fileImg2,\r\n typeImg2: data.typeImg2,\r\n };\r\n await UpdateWithToken(ListaEndpoints.SERVICIO, \"PutServicio\", \"\", datos).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false);\r\n setEdit(false);\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n }\r\n }\r\n const eliminar = async (data) => {\r\n showSpinner();\r\n /*setEnviado(false);\r\n setCargando(true);*/\r\n\r\n await DeleteWithToken(ListaEndpoints.SERVICIO, \"DeleteServicio\", \"\", data).then((res) => {\r\n if (res.data) {\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.error) {\r\n let err = place + \": \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n let err = place + \": \" + res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.Message)\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": \" + e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n\r\n }\r\n const showModalAdd = () => {\r\n setModalAddEdit(true)\r\n setEdit(false);\r\n setTitulo(\"Agregar Servicio\");\r\n setEnviado(false);\r\n let datos = {\r\n id: \"\",\r\n duenno: \"\",\r\n tipo: \"\",\r\n titulo: \"\",\r\n descripcion: \"\",\r\n codigoPlanes: \"\",\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n urlImagenBlanca: \"\",\r\n idImagenBlanca: \"\",\r\n otroDetalle: 0,\r\n otroTitulo: \"\",\r\n otroDescripcion: \"\",\r\n telefono: \"\",\r\n correo: \"\",\r\n estado: 0,\r\n fileImg: null,\r\n typeImg: null,\r\n fileImg2: null,\r\n typeImg2: null\r\n };\r\n let img = { url: img_default_cliente, change: false };\r\n setImagen(img);\r\n setImagen2(img);\r\n setDetalle(false)\r\n\r\n setObjeto(datos);\r\n };\r\n const showModalEdit = (data) => {\r\n setModalAddEdit(true)\r\n setEdit(true);\r\n setTitulo(\"Editar Servicio\");\r\n setEnviado(false);\r\n let datos = {\r\n id: data.id,\r\n duenno: data.duenno,\r\n tipo: data.tipo,\r\n titulo: data.titulo,\r\n descripcion: data.descripcion,\r\n codigoPlanes: data.codigoPlanes,\r\n urlImagen: data.urlImagen,\r\n idImagen: data.idImagen,\r\n urlImagenBlanca: data.urlImagenBlanca,\r\n idImagenBlanca: data.idImagenBlanca,\r\n otroDetalle: data.otroDetalle,\r\n otroTitulo: data.otroTitulo,\r\n otroDescripcion: data.otroDescripcion,\r\n telefono: data.telefono,\r\n correo: data.correo,\r\n estado: data.estado,\r\n //clases parciales\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n fileImg2: data.fileImg2,\r\n typeImg2: data.typeImg2,\r\n };\r\n let img = { url: data.urlImagen, change: false }\r\n let img2 = { url: data.urlImagenBlanca, change: false }\r\n if (data.otroDetalle == 1) {\r\n setDetalle(true)\r\n } else {\r\n setDetalle(false)\r\n }\r\n setImagen(img);\r\n setImagen2(img2);\r\n setObjeto(datos);\r\n };\r\n const showModalDelete = (data) => {\r\n let msg = `¿Está seguro que desea eliminar al cliente: ${data.titulo}?`;\r\n SweetAlert2(1, \"Eliminar cliente\", msg, \"Este cambio no se puede revertir.\",\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { eliminar(data) })\r\n\r\n };\r\n const closeModal = () => {\r\n\r\n let datos = {\r\n id: \"\",\r\n duenno: \"\",\r\n tipo: \"\",\r\n titulo: \"\",\r\n descripcion: \"\",\r\n codigoPlanes: \"\",\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n urlImagenBlanca: \"\",\r\n idImagenBlanca: \"\",\r\n otroDetalle: 0,\r\n otroTitulo: \"\",\r\n otroDescripcion: \"\",\r\n telefono: \"\",\r\n correo: \"\",\r\n estado: 0,\r\n fileImg: null,\r\n typeImg: null,\r\n fileImg2: null,\r\n typeImg2: null\r\n };\r\n setObjeto(datos);\r\n setModalAddEdit(false)\r\n }\r\n const showModalEditEstado = async (data) => {\r\n let datos = {\r\n id: data.id,\r\n duenno: data.duenno,\r\n tipo: data.tipo,\r\n titulo: data.titulo,\r\n descripcion: data.descripcion,\r\n codigoPlanes: data.codigoPlanes,\r\n urlImagen: data.urlImagen,\r\n idImagen: data.idImagen,\r\n urlImagenBlanca: data.urlImagenBlanca,\r\n idImagenBlanca: data.idImagenBlanca,\r\n otroDetalle: data.otroDetalle,\r\n otroTitulo: data.otroTitulo,\r\n otroDescripcion: data.otroDescripcion,\r\n telefono: data.telefono,\r\n correo: data.correo,\r\n estado: data.estado == 1 ? 0 : 1,\r\n //clases parciales\r\n fileImg: null,\r\n typeImg: null,\r\n fileImg2: null,\r\n typeImg2: null\r\n ,\r\n\r\n };\r\n await setObjeto(datos);\r\n let msg = `¿Está seguro que desea ${data.estado == 1 ? \"desactivar\" : \"activar\"} el servicio: ${data.titulo}?`;\r\n SweetAlert2(1, \"Cambiar estado\", msg, `El servicio ${data.estado == 1 ? \"NO\" : \"\"} se mostrará en la página de inicio.`,\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { modificar(datos) })\r\n };\r\n const getBuffer = (fileData) => {\r\n return function (resolve) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = function () {\r\n var arrayBuffer = reader.result\r\n // console.log(\"array\", fileData)\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpeg;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/png;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpg;base64,\", \"\");\r\n //var bytes = new Uint8Array(arrayBuffer);\r\n resolve(arrayBuffer);\r\n }\r\n }\r\n }\r\n const onChangeInputImagen = () => {\r\n const input = document.getElementById(\"InputImg\");\r\n let files = input.files;\r\n if (!files || !files.length) {\r\n let img = { url: edit ? objeto.urlImagen : img_default_cliente, change: false }\r\n setImagen(img);\r\n } else {\r\n\r\n let img = { url: URL.createObjectURL(files[0]), change: false }\r\n setImagen(img);\r\n }\r\n\r\n }\r\n const onChangeInputImagen2 = () => {\r\n const input = document.getElementById(\"InputImg2\");\r\n let files = input.files;\r\n if (!files || !files.length) {\r\n let img = { url: edit ? objeto.urlImagenBlanca : img_default_cliente, change: false }\r\n setImagen2(img);\r\n } else {\r\n\r\n let img = { url: URL.createObjectURL(files[0]), change: false }\r\n setImagen2(img);\r\n }\r\n\r\n }\r\n const goProductos = (data) => {\r\n history.push(\"/adm/servicios/productos/\" + data.id)\r\n }\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {list == null ?\r\n ( Cargando...) : (\r\n list.map(pdato =>\r\n\r\n { /*alert(pdato.id)*/ }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n )\r\n }\r\n \r\n
    Logo claroLogo oscuroTipoTítuloEstadoOpciones
    \r\n\r\n \r\n \r\n\r\n \r\n \r\n {pdato.tipo}\r\n \r\n \r\n {pdato.titulo}\r\n \r\n \r\n \r\n {\r\n showModalEditEstado(pdato)\r\n }}>\r\n {pdato.estado == 1 ? \"Activo\" : \"inactivo\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n closeModal()}\r\n style={MODAL_STYLES}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n closeModal()}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/**id */}\r\n
    \r\n \r\n \r\n {errors.id ? (\r\n \r\n ) : null}\r\n
    \r\n {/**tipo */}\r\n
    \r\n \r\n\r\n \r\n\r\n {errors.tipo ? (\r\n \r\n ) : null}\r\n\r\n
    \r\n {/**código */}\r\n
    \r\n \r\n \r\n {errors.codigoPlanes ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n {/**titulo */}\r\n
    \r\n \r\n \r\n\r\n {errors.titulo ? (\r\n \r\n ) : null}\r\n
    \r\n {/**descripcion */}\r\n
    \r\n \r\n \r\n {errors.descripcion ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n {/**imaegen */}\r\n
    \r\n \r\n
    \r\n {/**imaegen file*/}\r\n
    \r\n \r\n { onChangeInputImagen() }}\r\n />\r\n {errors.fileImg ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n\r\n {/**imagen */}\r\n
    \r\n \r\n
    \r\n {/**imaegen file*/}\r\n
    \r\n \r\n { onChangeInputImagen2() }}\r\n />\r\n {errors.fileImg2 ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n {/**otroDetalle */}\r\n
    \r\n \r\n setDetalle(!detalle)}\r\n style={{ width: \"20px\", display: \"inline-block\", height: \"20px\", marginLeft: \"10px\", marginRight: \"20px\" }}\r\n />\r\n \r\n {errors.otroDetalle ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n {detalle ?\r\n <>\r\n
    \r\n {/**otro titulo */}\r\n
    \r\n \r\n \r\n {errors.otroTitulo ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {/**telefono */}\r\n
    \r\n \r\n \r\n {errors.telefono ? (\r\n \r\n ) : null}\r\n
    \r\n {/**correo */}\r\n
    \r\n \r\n \r\n {errors.correo ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n {/**descriopcion*/}\r\n
    \r\n \r\n \r\n {errors.otroDescripcion ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n : null}\r\n {/**error */}\r\n
    \r\n {enviado ? (\r\n mensajeError.error ? (\r\n
    \r\n {mensajeError.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n Registrado con éxito\r\n
    \r\n )\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n closeModal()}\r\n className=\"btn btn-primary\"\r\n >\r\n Cancelar\r\n \r\n {edit ?\r\n <>\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n }\r\n \r\n )\r\n}\r\nexport default withRouter(AdmServicios);","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, MODAL_STYLES } from '../config/Config';\r\nimport { GetWithToken, SweetAlert, SweetAlert2, PostWithToken, SwalToast, UpdateWithToken, DeleteWithToken } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport Modal from \"react-modal\";\r\n/*formulario */\r\nimport { Trash2, Edit } from \"react-feather\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"../components/Formularios/ErrorForm.js\";\r\nimport { img_default_cliente } from \"../images/imagesURL.js\";\r\nimport BtnBack from '../components/Formularios/BtnBack';\r\n\r\nconst place = \"Clientes\";\r\nconst AdmClientes = (props) => {\r\n\r\n const { history } = props;\r\n const [objeto, setObjeto] = useState({\r\n id: 0,\r\n nombre: \"\",\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n titulo: \"\",\r\n comentario: \"\",\r\n estado: 0,\r\n fileImg: null,\r\n typeImg: null\r\n });\r\n const [modalAddEdit, setModalAddEdit] = useState(false);\r\n const [edit, setEdit] = useState(false);\r\n const [titulo, setTitulo] = useState(\"Acción\");\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [imagen, setImagen] = useState({ url: img_default_cliente, change: false });\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n //formulario\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [mensajeError, setMensajeError] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n const [enviado, setEnviado] = useState(false);\r\n //#region datatables\r\n const TblID = \"tblClientesAdm\";\r\n const [list, setList] = useState(null);\r\n const [datatable, setDatatable] = useState(null)\r\n useEffect(() => {\r\n initData();\r\n }, []);\r\n const startDatatable = () => {\r\n //console.log(\"start\")\r\n setDatatable($(\"#\" + TblID).DataTable({\r\n processing: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n scrollX: true,\r\n order: [[2, \"desc\"]]\r\n }));\r\n }\r\n const destroyDatatable = () => {\r\n\r\n if (datatable != null) {\r\n // console.log(\"destroy\");\r\n datatable.destroy();\r\n setDatatable(null)\r\n }\r\n }\r\n const recargarLista = async () => {\r\n destroyDatatable();\r\n listar().then((res) => {\r\n //console.log(\"res\", res)\r\n if (res) {\r\n startDatatable();\r\n }\r\n })\r\n }\r\n const initData = () => {//solo se deberia ejecutar una vez\r\n if (getItem('usuario')) {\r\n if (getItem('usuario').uTipo != \"tp\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n try {\r\n recargarLista();\r\n } catch (error) {\r\n alert(\"Acción Interrumpida:\", error.message);\r\n }\r\n }\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n }\r\n //#endregion\r\n\r\n const listar = async () => {\r\n showSpinner();\r\n let ok = false;\r\n await GetWithToken(ListaEndpoints.CLIENTE_FAV, \"GetClientes\").then((res) => {\r\n //console.log(\"res\", res.data)\r\n if (res.data) {\r\n setList(res.data);\r\n ok = true;\r\n } else {\r\n if (res.Message) {\r\n let err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n } else {\r\n let err = place + \":\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000);\r\n setList(null);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n return ok;\r\n\r\n }\r\n const GetColor = (i) => {\r\n switch (i) {\r\n case 0:\r\n return \"rgb(226, 114, 114)\";\r\n\r\n case 1:\r\n return \"rgb(114, 162, 226)\";\r\n\r\n case 2:\r\n return \"rgb(118, 226, 114)\";\r\n\r\n default:\r\n return \"ffffff\";\r\n }\r\n }\r\n const agregar = async (data) => {\r\n let bool = true;\r\n\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n //setObjeto(data);\r\n data.estado = 1;\r\n\r\n await PostWithToken(ListaEndpoints.CLIENTE_FAV, \"PostCliente\", \"\", data).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false)\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e.message)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });;\r\n }\r\n }\r\n const modificar = async (data) => {\r\n let bool = true;\r\n if (data.fileImg != null) {\r\n if (data.fileImg && data.fileImg.length) {\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n }\r\n }\r\n\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n //setObjeto(data);\r\n let datos = {\r\n id: edit ? objeto.id : data.id,\r\n nombre: data.nombre,\r\n idImagen: edit ? objeto.idImagen : data.idImagen,\r\n imagen: data.imagen,\r\n titulo: data.titulo,\r\n comentario: data.comentario,\r\n estado: edit ? objeto.estado : data.estado,\r\n //clases parciales\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n };\r\n\r\n await UpdateWithToken(ListaEndpoints.CLIENTE_FAV, \"PutCliente\", \"\", datos).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false);\r\n setEdit(false);\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n }\r\n }\r\n const eliminar = async (data) => {\r\n showSpinner();\r\n await DeleteWithToken(ListaEndpoints.CLIENTE_FAV, \"DeleteCliente\", \"\", data).then((res) => {\r\n if (res.data) {\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.error) {\r\n let err = place + \": \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n let err = place + \": \" + res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.Message)\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": \" + e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n\r\n }\r\n const showModalAdd = () => {\r\n setModalAddEdit(true)\r\n setEdit(false);\r\n setTitulo(\"Agregar Cliente\");\r\n setEnviado(false);\r\n let datos = {\r\n id: 0,\r\n nombre: \"\",\r\n idImagen: \"\",\r\n urlImagen: \"\",\r\n titulo: \"\",\r\n comentario: \"\",\r\n estado: 0,\r\n fileImg: null,\r\n typeImg: \"\"\r\n };\r\n let img = { url: img_default_cliente, change: false };\r\n\r\n setImagen(img);\r\n setObjeto(datos);\r\n };\r\n const showModalEdit = (data) => {\r\n setModalAddEdit(true)\r\n setEdit(true);\r\n setEnviado(false);\r\n setTitulo(\"Editar Cliente\");\r\n let datos = {\r\n id: data.id,\r\n nombre: data.nombre,\r\n idImagen: data.idImagen,\r\n urlImagen: data.urlImagen,\r\n titulo: data.titulo,\r\n comentario: data.comentario,\r\n estado: data.estado,\r\n fileImg: null,\r\n typeImg: null\r\n };\r\n let img = { url: data.urlImagen, change: false }\r\n setImagen(img);\r\n setObjeto(datos);\r\n };\r\n const showModalDelete = (data) => {\r\n let msg = `¿Está seguro que desea eliminar al cliente: ${data.nombre}?`;\r\n SweetAlert2(1, \"Eliminar cliente\", msg, \"Este cambio no se puede revertir.\",\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { eliminar(data) })\r\n\r\n };\r\n const showModalEditEstado = async (data) => {\r\n let datos = {\r\n id: data.id,\r\n nombre: data.nombre,\r\n idImagen: data.idImagen,\r\n urlImagen: data.urlImagen,\r\n titulo: data.titulo,\r\n comentario: data.comentario,\r\n estado: data.estado == 1 ? 0 : 1,\r\n fileImg: null,\r\n typeImg: null\r\n };\r\n await setObjeto(datos);\r\n let msg = `¿Está seguro que desea ${data.estado == 1 ? \"desactivar\" : \"activar\"} el cliente: ${data.nombre}?`;\r\n SweetAlert2(1, \"Cambiar estado\", msg, `El cliente ${data.estado == 1 ? \"NO\" : \"\"} se mostrará en la página de inicio.`,\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { modificar(datos) })\r\n };\r\n const getBuffer = (fileData) => {\r\n return function (resolve) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = function () {\r\n var arrayBuffer = reader.result\r\n // console.log(\"array\", fileData)\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpeg;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/png;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpg;base64,\", \"\");\r\n //var bytes = new Uint8Array(arrayBuffer);\r\n resolve(arrayBuffer);\r\n }\r\n }\r\n }\r\n const onChangeInputImagen = () => {\r\n const input = document.getElementById(\"InputImg\");\r\n let files = input.files;\r\n if (!files || !files.length) {\r\n let img = { url: edit ? objeto.urlImagen : img_default_cliente, change: false }\r\n setImagen(img);\r\n } else {\r\n\r\n let img = { url: URL.createObjectURL(files[0]), change: false }\r\n setImagen(img);\r\n }\r\n\r\n }\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {list == null ?\r\n ( Cargando...) : (\r\n list.map(pdato =>\r\n\r\n { /*alert(pdato.id)*/ }}>\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n )\r\n }\r\n \r\n
    ImagenNombreTítuloEstadoOpciones
    \r\n\r\n \r\n \r\n {pdato.nombre}\r\n \r\n \r\n {pdato.titulo}\r\n \r\n \r\n \r\n {\r\n showModalEditEstado(pdato)\r\n }}>\r\n {pdato.estado == 1 ? \"Activo\" : \"inactivo\"}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setModalAddEdit(false)}\r\n style={MODAL_STYLES}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n setModalAddEdit(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n {/**Nombre */}\r\n
    \r\n \r\n \r\n\r\n {errors.nombre ? (\r\n \r\n ) : null}\r\n
    \r\n {/**Titulo */}\r\n
    \r\n \r\n\r\n \r\n {errors.titulo ? (\r\n \r\n ) : null}\r\n
    \r\n {/**comentario */}\r\n
    \r\n \r\n \r\n {errors.comentario ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n {/**imaegen */}\r\n
    \r\n \r\n
    \r\n {/**imaegen file*/}\r\n
    \r\n \r\n { onChangeInputImagen() }}\r\n />\r\n {errors.fileImg ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n {/**error */}\r\n
    \r\n {enviado ? (\r\n mensajeError.error ? (\r\n
    \r\n {mensajeError.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n Registrado con éxito\r\n
    \r\n )\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n setModalAddEdit(false)}\r\n className=\"btn btn-primary\"\r\n >\r\n Cancelar\r\n \r\n {edit ?\r\n <>\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n }\r\n\r\n \r\n )\r\n}\r\nexport default withRouter(AdmClientes);","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, MODAL_STYLES, MODENA, SIGNO_MONEDA } from '../config/Config';\r\nimport { GetWithToken, SweetAlert, SweetAlert2, PostWithToken, SwalToast, UpdateWithToken, DeleteWithToken } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport Modal from \"react-modal\";\r\n/*formulario */\r\nimport { Trash2, Edit } from \"react-feather\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"../components/Formularios/ErrorForm.js\";\r\nimport { img_default_cliente } from \"../images/imagesURL.js\";\r\nimport FormatMoney from '../services/FormatMoney';\r\nimport BtnBack from '../components/Formularios/BtnBack';\r\n\r\nconst place = \"productos\";\r\nconst AdmServicios = (props) => {\r\n const { history, match } = props;\r\n const ID = match.params.id\r\n const [objeto, setObjeto] = useState({\r\n id: 0,\r\n tipoObjeto: \"\",\r\n idObjeto: \"\",\r\n nombre: \"\",\r\n descripcion: \"\",\r\n descripcionCorta: \"\",\r\n precio: 0.0,\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n descuento: 0.0,\r\n estado: 0,\r\n idPadre: ID,\r\n fileImg: null,\r\n typeImg: null,\r\n });\r\n const [modalAddEdit, setModalAddEdit] = useState(false);\r\n const [edit, setEdit] = useState(false);\r\n const [titulo, setTitulo] = useState(\"Acción\");\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [table, setTable] = useState(true);\r\n const [imagen, setImagen] = useState({ url: img_default_cliente, change: false });\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n\r\n //formulario\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [mensajeError, setMensajeError] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n const [enviado, setEnviado] = useState(false);\r\n //#region datatables\r\n const TblID = \"tblProductosAdm\";\r\n const [list, setList] = useState(null);\r\n const [datatable, setDatatable] = useState(null)\r\n useEffect(() => {\r\n initData();\r\n }, []);\r\n const startDatatable = () => {\r\n //console.log(\"start\")\r\n setDatatable($(\"#\" + TblID).DataTable({\r\n scrollX: true,\r\n processing: true,\r\n destroy: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n \"ordering\": true,\r\n \"info\": true,\r\n \"colReorder\": true,\r\n // \"searching\": false,\r\n \"bLengthChange\": false,\r\n dom: 'Blfrtip',\r\n buttons: [\r\n {\r\n extend: 'collection',\r\n text: 'Exportar ',\r\n className: \"botonesSecundarios\",\r\n buttons: [\r\n {\r\n extend: 'csv',\r\n text: 'CSV',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_csv',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'pdfHtml5',\r\n text: 'PDF',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_pdf',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'excel',\r\n text: 'Excel',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_excel',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'copy',\r\n title: 'Listado de Facturas',\r\n text: 'Copiar',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'print',\r\n title: 'Listado de Facturas',\r\n text: 'Imprimir',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n\r\n }\r\n ],\r\n }\r\n ],\r\n dropup: true,\r\n \"order\": [[0, \"desc\"]]\r\n }));\r\n }\r\n const destroyDatatable = () => {\r\n\r\n if (datatable != null) {\r\n // console.log(\"destroy\");\r\n datatable.destroy();\r\n setDatatable(null)\r\n }\r\n }\r\n const recargarLista = async () => {\r\n destroyDatatable();\r\n listar().then((res) => {\r\n //console.log(\"res\", res)\r\n if (res) {\r\n startDatatable();\r\n }\r\n })\r\n }\r\n const initData = () => {//solo se deberia ejecutar una vez\r\n if (getItem('usuario')) {\r\n if (getItem('usuario').uTipo != \"tp\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n try {\r\n recargarLista();\r\n } catch (error) {\r\n alert(\"Acción Interrumpida:\", error.message);\r\n }\r\n }\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n }\r\n //#endregion\r\n\r\n const listar = async () => {\r\n showSpinner();\r\n let ok = false;\r\n await GetWithToken(ListaEndpoints.PRODUCTO, \"GetProductos\", ID).then((res) => {\r\n //console.log(\"res\", res.data)\r\n if (res.data) {\r\n setList(res.data);\r\n ok = true;\r\n } else {\r\n if (res.Message) {\r\n let err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n } else {\r\n let err = place + \":\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000);\r\n setList(null);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n return ok;\r\n\r\n }\r\n const GetColor = (i) => {\r\n switch (i) {\r\n case 0:\r\n return \"rgb(226, 114, 114)\";\r\n\r\n case 1:\r\n return \"rgb(114, 162, 226)\";\r\n\r\n case 2:\r\n return \"rgb(118, 226, 114)\";\r\n\r\n default:\r\n return \"ffffff\";\r\n }\r\n }\r\n const agregar = async (data) => {\r\n let bool = true;\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n\r\n let datos = {\r\n id: 0,\r\n tipoObjeto: \"servicio\",//max 10\r\n idObjeto: \"\",//max 10\r\n nombre: data.nombre,\r\n descripcion: data.descripcion,\r\n descripcionCorta: data.descripcionCorta,\r\n precio: data.precio,\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n descuento: data.descuento,\r\n estado: 1,\r\n idPadre: ID,\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n };\r\n await PostWithToken(ListaEndpoints.PRODUCTO, \"PostProducto\", \"\", datos).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false)\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e.message)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });;\r\n }\r\n }\r\n const modificar = async (data) => {\r\n let bool = true;\r\n if (data.fileImg != null) {\r\n if (data.fileImg && data.fileImg.length) {\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n }\r\n }\r\n\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n\r\n //setObjeto(data);\r\n let datos = {\r\n id: edit ? objeto.id : data.id,\r\n tipoObjeto: objeto.tipoObjeto,\r\n idObjeto: data.idObjeto,\r\n nombre: data.nombre,\r\n descripcion: data.descripcion,\r\n descripcionCorta: data.descripcionCorta,\r\n precio: data.precio,\r\n urlImagen: objeto.urlImagen,\r\n idImagen: edit ? objeto.idImagen : data.idImagen,\r\n descuento: data.descuento,\r\n idPadre: ID,\r\n estado: edit ? objeto.estado : data.estado,\r\n //clases parciales\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n\r\n };\r\n\r\n await UpdateWithToken(ListaEndpoints.PRODUCTO, \"PutProducto\", \"\", datos).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false);\r\n setEdit(false);\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n }\r\n }\r\n const eliminar = async (data) => {\r\n showSpinner();\r\n /*setEnviado(false);\r\n setCargando(true);*/\r\n await DeleteWithToken(ListaEndpoints.PRODUCTO, \"DeleteProducto\", \"\", data).then((res) => {\r\n if (res.data) {\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.error) {\r\n let err = place + \": \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n let err = place + \": \" + res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.Message)\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": \" + e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n\r\n }\r\n const showModalAdd = () => {\r\n setModalAddEdit(true)\r\n setEdit(false);\r\n setTitulo(\"Agregar Producto\");\r\n setEnviado(false);\r\n let datos = {\r\n id: 0,\r\n tipoObjeto: \"\",\r\n idObjeto: \"\",\r\n nombre: \"\",\r\n descripcion: \"\",\r\n descripcionCorta: \"\",\r\n precio: 0.0,\r\n urlImagen: \"\",\r\n idImagen: \"\",\r\n descuento: 0.0,\r\n estado: 0,\r\n idPadre: ID,\r\n fileImg: null,\r\n typeImg: null,\r\n };\r\n let img = { url: img_default_cliente, change: false };\r\n setImagen(img);\r\n\r\n setObjeto(datos);\r\n };\r\n const showModalEdit = (data) => {\r\n setModalAddEdit(true)\r\n setEdit(true);\r\n setTitulo(\"Editar producto\");\r\n setEnviado(false);\r\n let datos = {\r\n id: data.id,\r\n tipoObjeto: data.tipoObjeto,\r\n idObjeto: data.idObjeto,\r\n nombre: data.nombre,\r\n descripcion: data.descripcion,\r\n descripcionCorta: data.descripcionCorta,\r\n precio: data.precio,\r\n urlImagen: data.urlImagen,\r\n idImagen: data.idImagen,\r\n descuento: data.descuento,\r\n estado: data.estado,\r\n idPadre: ID,\r\n fileImg: null,\r\n typeImg: null,\r\n };\r\n let img = { url: data.urlImagen, change: false }\r\n setImagen(img);\r\n setObjeto(datos);\r\n };\r\n const showModalDelete = (data) => {\r\n let msg = `¿Está seguro que desea eliminar el producto: ${data.nombre}?`;\r\n SweetAlert2(1, \"Eliminar producto\", msg, \"Este cambio no se puede revertir.\",\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { eliminar(data) })\r\n };\r\n const showModalEditEstado = async (data) => {\r\n let datos = {\r\n id: data.id,\r\n tipoObjeto: data.tipoObjeto,\r\n idObjeto: data.idObjeto,\r\n nombre: data.nombre,\r\n descripcion: data.descripcion,\r\n descripcionCorta: data.descripcionCorta,\r\n precio: data.precio,\r\n urlImagen: data.urlImagen,\r\n idImagen: data.idImagen,\r\n descuento: data.descuento,\r\n estado: data.estado === 1 ? 0 : 1,\r\n idPadre: ID,\r\n fileImg: null,\r\n typeImg: null,\r\n };\r\n await setObjeto(datos);\r\n let msg = `¿Está seguro que desea ${data.estado === 1 ? \"desactivar\" : \"activar\"} el producto: ${data.nombre}?`;\r\n SweetAlert2(1, \"Cambiar estado\", msg, `El producto ${data.estado === 1 ? \"NO\" : \"\"} se mostrará en la página de inicio.`,\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { modificar(datos) })\r\n };\r\n const getBuffer = (fileData) => {\r\n return function (resolve) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = function () {\r\n var arrayBuffer = reader.result\r\n //console.log(\"array\", fileData)\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpeg;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/png;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpg;base64,\", \"\");\r\n //var bytes = new Uint8Array(arrayBuffer);\r\n resolve(arrayBuffer);\r\n }\r\n }\r\n }\r\n const onChangeInputImagen = () => {\r\n const input = document.getElementById(\"InputImg\");\r\n let files = input.files;\r\n if (!files || !files.length) {\r\n let img = { url: edit ? objeto.urlImagen : img_default_cliente, change: false }\r\n setImagen(img);\r\n } else {\r\n\r\n let img = { url: URL.createObjectURL(files[0]), change: false }\r\n setImagen(img);\r\n }\r\n\r\n }\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {list == null ?\r\n ( Cargando...) : (\r\n list.map(pdato =>\r\n\r\n { /*alert(pdato.id)*/ }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n )\r\n )\r\n }\r\n \r\n
    ImagenNombreDescripciónPrecioEstadoOpciones
    \r\n\r\n \"\"\r\n \r\n {pdato.nombre}\r\n \r\n {pdato.descripcionCorta}\r\n \r\n \r\n {FormatMoney(pdato.precio)}\r\n \r\n \r\n \r\n {\r\n showModalEditEstado(pdato)\r\n }}>\r\n {pdato.estado === 1 ? \"Activo\" : \"inactivo\"}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setModalAddEdit(false)}\r\n style={MODAL_STYLES}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n setModalAddEdit(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/**nombre */}\r\n
    \r\n \r\n \r\n\r\n {errors.nombre ? (\r\n \r\n ) : null}\r\n
    \r\n {/**precio */}\r\n
    \r\n \r\n \r\n {errors.precio ? (\r\n \r\n ) : null}\r\n
    \r\n {/**codigo */}\r\n
    \r\n \r\n \r\n {errors.idObjeto ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {/**descripcion */}\r\n
    \r\n \r\n \r\n {errors.descripcion ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {/**descripcion Corta */}\r\n
    \r\n \r\n \r\n {errors.descripcionCorta ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {/**imaegen */}\r\n
    \r\n \r\n
    \r\n {/**imaegen file*/}\r\n
    \r\n \r\n { onChangeInputImagen() }}\r\n />\r\n {errors.fileImg ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n {/**error */}\r\n
    \r\n {enviado ? (\r\n mensajeError.error ? (\r\n
    \r\n {mensajeError.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n Registrado con éxito\r\n
    \r\n )\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n setModalAddEdit(false)}\r\n className=\"btn btn-primary\"\r\n >\r\n Cancelar\r\n \r\n {edit ?\r\n <>\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n }\r\n \r\n )\r\n}\r\nexport default withRouter(AdmServicios);","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, MODAL_STYLES, TEMPLATE_IMAGENES_INFORMATICA } from '../config/Config';\r\nimport { GetWithToken, SweetAlert, SweetAlert2, PostWithToken, SwalToast, UpdateWithToken, DeleteWithToken } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport Modal from \"react-modal\";\r\n/*formulario */\r\nimport { Trash2, Edit } from \"react-feather\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"../components/Formularios/ErrorForm.js\";\r\nimport BtnBack from '../components/Formularios/BtnBack';\r\nconst place = \"Imagenes\";\r\nconst AdmImagenes = (props) => {\r\n\r\n const { history } = props;\r\n const [objeto, setObjeto] = useState({\r\n id: 0,\r\n titulo: \"\",\r\n descripcion: \"\",\r\n fecha: null,\r\n appCodigo: \"\",\r\n paisId: 0,\r\n idImagen: \"\",\r\n urlImagen: \"\",\r\n fileImg: null,\r\n typeImg: \"\"\r\n });\r\n const [modalAddEdit, setModalAddEdit] = useState(false);\r\n const [edit, setEdit] = useState(false);\r\n const [titulo, setTitulo] = useState(\"Acción\");\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [table, setTable] = useState(true);\r\n const [imagen, setImagen] = useState({ url: TEMPLATE_IMAGENES_INFORMATICA, change: false });\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n //formulario\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [mensajeError, setMensajeError] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n\r\n const [enviado, setEnviado] = useState(false);\r\n\r\n //#region datatables \r\n const TblID = \"tblImagenesAdm\";\r\n const [list, setList] = useState(null);\r\n const [datatable, setDatatable] = useState(null)\r\n useEffect(() => {\r\n initData();\r\n }, []);\r\n const startDatatable = () => {\r\n //console.log(\"start\")\r\n setDatatable($(\"#\" + TblID).DataTable({\r\n processing: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n scrollX: true,\r\n order: [[2, \"desc\"]]\r\n }));\r\n }\r\n const destroyDatatable = () => {\r\n\r\n if (datatable != null) {\r\n // console.log(\"destroy\");\r\n datatable.destroy();\r\n setDatatable(null)\r\n }\r\n }\r\n const recargarLista = async () => {\r\n destroyDatatable();\r\n listar().then((res) => {\r\n //console.log(\"res\", res)\r\n if (res) {\r\n startDatatable();\r\n }\r\n })\r\n }\r\n const initData = () => {//solo se deberia ejecutar una vez\r\n if (getItem('usuario')) {\r\n if (getItem('usuario').uTipo != \"tp\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n try {\r\n recargarLista();\r\n } catch (error) {\r\n alert(\"Acción Interrumpida:\", error.message);\r\n }\r\n }\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n }\r\n //#endregion\r\n\r\n const listar = async () => {\r\n showSpinner();\r\n let ok = false;\r\n await GetWithToken(ListaEndpoints.IMAGEN, \"GetImagenes\").then((res) => {\r\n //console.log(\"res\", res.data)\r\n if (res.data) {\r\n setList(res.data);\r\n ok = true;\r\n } else {\r\n if (res.Message) {\r\n let err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n } else {\r\n let err = place + \":\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000);\r\n setList(null);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n return ok;\r\n\r\n }\r\n const GetColor = (i) => {\r\n switch (i) {\r\n case 0:\r\n return \"rgb(226, 114, 114)\";\r\n\r\n case 1:\r\n return \"rgb(114, 162, 226)\";\r\n\r\n case 2:\r\n return \"rgb(118, 226, 114)\";\r\n\r\n default:\r\n return \"rgb(118, 226, 114)\";\r\n }\r\n }\r\n const agregar = async (data) => {\r\n let bool = true;\r\n\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n\r\n if (bool) {\r\n\r\n showSpinner();\r\n setEnviado(false);\r\n //setObjeto(data);\r\n data.estado = 1;\r\n\r\n await PostWithToken(ListaEndpoints.IMAGEN, \"PostImagen\", \"\", data).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false)\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e.message)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });;\r\n }\r\n }\r\n const modificar = async (data) => {\r\n let bool = true;\r\n if (data.fileImg != null) {\r\n if (data.fileImg && data.fileImg.length) {\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n }\r\n }\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n //setObjeto(data);\r\n let datos = {\r\n id: edit ? objeto.id : data.id,\r\n idImagen: edit ? objeto.idImagen : data.idImagen,\r\n titulo: data.titulo,\r\n descripcion: data.descripcion,\r\n fecha: data.fecha,\r\n appCodigo: data.appCodigo,\r\n paisId: data.paisId,\r\n estado: edit ? objeto.estado : data.estado,\r\n //clases parciales\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n };\r\n\r\n await UpdateWithToken(ListaEndpoints.IMAGEN, \"PutImagen\", \"\", datos).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false);\r\n setEdit(false);\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n }\r\n }\r\n const eliminar = async (data) => {\r\n showSpinner();\r\n setEnviado(false);\r\n\r\n await PostWithToken(ListaEndpoints.IMAGEN, \"DeleteImagen\", \"\", data).then((res) => {\r\n if (res.data) {\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.error) {\r\n let err = place + \": \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n let err = place + \": \" + res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.Message)\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": \" + e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n\r\n }\r\n const showModalAdd = () => {\r\n setModalAddEdit(true)\r\n setEdit(false);\r\n setTitulo(\"Agregar Publicidad\");\r\n setEnviado(false);\r\n let datos = {\r\n id: 0,\r\n titulo: \"\",\r\n descripcion: \"\",\r\n fecha: null,\r\n appCodigo: \"\",\r\n paisId: 0,\r\n idImagen: \"\",\r\n urlImagen: \"\",\r\n fileImg: null,\r\n typeImg: \"\"\r\n };\r\n let img = { url: TEMPLATE_IMAGENES_INFORMATICA, change: false };\r\n\r\n setImagen(img);\r\n setObjeto(datos);\r\n };\r\n const showModalEdit = (data) => {\r\n setModalAddEdit(true)\r\n setEdit(true);\r\n setEnviado(false);\r\n setTitulo(\"Editar Publicidad\");\r\n let datos = {\r\n id: data.id,\r\n estado: data.estado,\r\n titulo: data.titulo,\r\n descripcion: data.descripcion,\r\n fecha: data.fecha,\r\n appCodigo: data.appCodigo,\r\n paisId: data.paisId,\r\n idImagen: data.idImagen,\r\n urlImagen: data.urlImagen,\r\n fileImg: null,\r\n typeImg: null\r\n };\r\n let img = { url: data.urlImagen, change: false }\r\n setImagen(img);\r\n setObjeto(datos);\r\n };\r\n const showModalDelete = (data) => {\r\n let msg = `¿Está seguro que desea eliminar la publicidad: ${data.titulo}?`;\r\n SweetAlert2(1, \"Eliminar publicidad\", msg, \"Este cambio no se puede revertir.\",\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { eliminar(data) })\r\n\r\n };\r\n const showModalEditEstado = async (data) => {\r\n let datos = {\r\n id: data.id,\r\n titulo: data.titulo,\r\n descripcion: data.descripcion,\r\n fecha: data.fecha,\r\n appCodigo: data.appCodigo,\r\n paisId: data.paisId,\r\n idImagen: data.idImagen,\r\n urlImagen: data.urlImagen,\r\n estado: data.estado == 1 ? 0 : 1,\r\n fileImg: null,\r\n typeImg: null\r\n };\r\n await setObjeto(datos);\r\n let msg = `¿Está seguro que desea ${data.titulo == 1 ? \"desactivar\" : \"activar\"} la publicidad: ${data.titulo}?`;\r\n SweetAlert2(1, \"Cambiar estado\", msg, `La publicidad ${data.estado == 1 ? \"NO\" : \"\"} se mostrará en la página de inicio.`,\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { modificar(datos) })\r\n };\r\n const getBuffer = (fileData) => {\r\n return function (resolve) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = function () {\r\n var arrayBuffer = reader.result\r\n //console.log(\"array\", fileData)\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpeg;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/png;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpg;base64,\", \"\");\r\n //var bytes = new Uint8Array(arrayBuffer);\r\n resolve(arrayBuffer);\r\n }\r\n }\r\n }\r\n const onChangeInputImagen = () => {\r\n const input = document.getElementById(\"InputImg\");\r\n let files = input.files;\r\n if (!files || !files.length) {\r\n let img = { url: edit ? objeto.urlImagen : TEMPLATE_IMAGENES_INFORMATICA, change: false }\r\n setImagen(img);\r\n } else {\r\n\r\n let img = { url: URL.createObjectURL(files[0]), change: false }\r\n setImagen(img);\r\n }\r\n\r\n }\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {list == null ?\r\n ( Cargando...) : (\r\n list.map(pdato =>\r\n\r\n { /*alert(pdato.id)*/ }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n )\r\n }\r\n \r\n
    ImagenTítuloDescripciónEstadoOpciones
    \r\n \r\n \r\n \r\n {pdato.titulo}\r\n \r\n \r\n {pdato.descripcion}\r\n \r\n \r\n {\r\n showModalEditEstado(pdato)\r\n }}>\r\n {pdato.estado == 1 ? \"Activo\" : pdato.estado == 0 ? \"Inactivo\" : \"Indefinido\"}\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setModalAddEdit(false)}\r\n style={MODAL_STYLES}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n setModalAddEdit(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/**Titulo */}\r\n
    \r\n \r\n \r\n {errors.titulo ? (\r\n \r\n ) : null}\r\n
    \r\n {/**Descripcion */}\r\n
    \r\n \r\n \r\n\r\n {errors.descripcion ? (\r\n \r\n ) : null}\r\n
    \r\n {/*pais*/}\r\n
    \r\n \r\n \r\n {errors.pais ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n {/**imaegen */}\r\n
    \r\n \r\n
    \r\n {/**imaegen file*/}\r\n
    \r\n \r\n { onChangeInputImagen() }}\r\n />\r\n {errors.fileImg ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n {/**error */}\r\n
    \r\n {enviado ? (\r\n mensajeError.error ? (\r\n
    \r\n {mensajeError.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n Registrado con éxito\r\n
    \r\n )\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n setModalAddEdit(false)}\r\n className=\"btn btn-primary\"\r\n >\r\n Cancelar\r\n \r\n {edit ?\r\n <>\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n }\r\n\r\n \r\n )\r\n}\r\nexport default withRouter(AdmImagenes);","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, IMPUESTO_VENTA, MODAL_STYLES } from '../config/Config';\r\nimport { GetWithToken, SweetAlert, SweetAlert2, SwalToast, UpdateWithToken, PostWithToken, DeleteWithToken } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport moment from 'moment';\r\nimport FormatMoney from \"../services/FormatMoney\";\r\nimport { Eye, List, Check, Trash, Search } from 'react-feather';\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"../components/Formularios/ErrorForm.js\";\r\nimport Modal from \"react-modal\";\r\n//test datatables\r\nimport 'datatables.net';\r\n//import \"datatables.net-dt/js/dataTables.dataTables\";\r\n\r\nimport \"datatables.net-buttons/js/dataTables.buttons.js\";\r\nimport \"datatables.net-buttons/js/buttons.colVis.js\";\r\nimport \"datatables.net-buttons/js/buttons.flash.js\";\r\nimport \"datatables.net-buttons/js/buttons.html5.js\";\r\nimport \"datatables.net-buttons/js/buttons.print.js\";\r\nimport \"pdfmake/build/pdfmake.js\";\r\nimport \"pdfmake/build/vfs_fonts.js\";\r\nimport * as JSZip from 'jszip';\r\nimport pdfMake from \"pdfmake/build/pdfmake.js\";\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\nimport 'datatables.net-bs4';\r\nimport \"moment\"\r\nimport { UsePagination } from '../hooks/UsePagination';\r\nimport BtnBack from '../components/Formularios/BtnBack';\r\n//import { use } from 'datatables.net-datetime';\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\nwindow.JSZip = JSZip;\r\n\r\nconst place = \"Pedidos\";\r\nconst AdmPedidos = (props) => {\r\n const { history } = props;\r\n const [listEstados, setListEstados] = useState({ data: {}, cargando: true });\r\n const [objeto, setObjeto] = useState({\r\n id: 0,\r\n estado: 0,\r\n });\r\n const [modalEditEstado, setModalEditEstado] = useState(false);\r\n const [modalListEstados, setModalListEstados] = useState(false);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n const [mensajeError, setMensajeError] = useState({ error: false, mensaje: \"\", });\r\n const [enviado, setEnviado] = useState(false);\r\n //#region datatables\r\n const TblID = \"tblPedidosAdm\";\r\n const [list, setList] = useState(null);\r\n const [datatable, setDatatable] = useState(null)\r\n //filtros\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [fechaI, setFechaI] = useState(moment().subtract(1, 'months').format(\"YYYY-MM-DD\"));\r\n const [fechaF, setFechaF] = useState(moment().format(\"YYYY-MM-DD\"));\r\n const [estadoSelected, setEstadoSelected] = useState(0);//0 = todos\r\n const [ignorarF, setIgnorarF] = useState(false);//ignorar las fechas en el filtro\r\n //pagination \r\n const { Pagination, setTotalItems, setCountItems, goFirstPage, countItems, currentPage } = UsePagination();\r\n //const [cargando, setCargando] = useState(false);\r\n //const [edit, setEdit] = useState(false);\r\n useEffect(() => {\r\n initData();\r\n }, []);\r\n useEffect(() => {\r\n try {\r\n // el validador de los campos de los filtros\r\n recargarLista();\r\n } catch (e) {\r\n console.error(\"error\", e)\r\n }\r\n }, [currentPage])\r\n const startDatatable = () => {\r\n // console.log(\"start\")\r\n setDatatable($(\"#\" + TblID).DataTable({\r\n scrollX: true,\r\n processing: true,\r\n destroy: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n \"paging\": false,//paginacion\r\n \"ordering\": false,\r\n \"info\": false,\r\n \"colReorder\": false,//ordenamiento des o asc\r\n \"searching\": true,//buscador\r\n \"bLengthChange\": false,//cantidad de registro por page\r\n dom: 'Blfrtip',\r\n buttons: [\r\n {\r\n extend: 'collection',\r\n text: 'Exportar ',\r\n className: \"botonesSecundarios\",\r\n buttons: [\r\n {\r\n extend: 'csv',\r\n text: 'CSV',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_csv',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'pdfHtml5',\r\n text: 'PDF',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_pdf',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'excel',\r\n text: 'Excel',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_excel',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'copy',\r\n title: 'Listado de Facturas',\r\n text: 'Copiar',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'print',\r\n title: 'Listado de Facturas',\r\n text: 'Imprimir',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n\r\n }\r\n ],\r\n }\r\n ],\r\n dropup: true,\r\n \"order\": [[0, \"desc\"]]\r\n }));\r\n }\r\n const destroyDatatable = () => {\r\n if (datatable != null) {\r\n datatable.destroy();\r\n setDatatable(null)\r\n }\r\n }\r\n const recargarLista = async () => {\r\n destroyDatatable();\r\n listar().then((res) => {\r\n // console.log(\"res\", res)\r\n if (res) {\r\n startDatatable();\r\n }\r\n })\r\n }\r\n const onChangeFechaI = (val) => {\r\n // console.log(\"Fecha i\", val)\r\n setFechaI(val);\r\n }\r\n\r\n const onChangeFechaF = (val) => {\r\n //console.log(\"Fecha f\", val)\r\n setFechaF(val);\r\n }\r\n\r\n const buscar = (data) => {\r\n\r\n setEstadoSelected(data.estadoF);\r\n setCountItems(parseInt(data.cantidad));\r\n // console.log(\"data\", data)\r\n setTimeout(() => {\r\n goFirstPage();\r\n }, 500)\r\n\r\n }\r\n //#endregion\r\n\r\n const initData = () => {//solo se deberia ejecutar una vez\r\n if (getItem('usuario')) {\r\n if (getItem('usuario').uTipo != \"tp\" && getItem('usuario').uTipo != \"sc\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n try {\r\n listarEstados();\r\n } catch (error) {\r\n alert(\"Acción Interrumpida:\", error.message);\r\n }\r\n }\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n }\r\n const GetColor = (i) => {\r\n switch (i) {\r\n case 1: return \"rgb(226, 114, 114)\";//rojo\r\n\r\n case -1: return \"rgb(226, 114, 114)\";//rojo\r\n\r\n case 2:\r\n return \"rgb(118, 226, 114)\";//verde\r\n case 12:\r\n return \"rgb(118, 226, 114)\";//verde\r\n case 11:\r\n return \"rgb(118, 226, 114)\";//verde\r\n default:\r\n return \"rgb(114, 162, 226)\";//azul\r\n\r\n }\r\n }\r\n const listar = async () => {\r\n showSpinner();\r\n /* console.log(\"data\", `GetBuscarPedidos?fechaI=${fechaI}&fechaF=${fechaF}&idEstado=${estadoSelected}\r\n &ignorarFecha=${ignorarF}&cantidad=${cantidad}&pagina=${paginaActual}`);\r\n */\r\n let ok = false;\r\n await GetWithToken(ListaEndpoints.PEDIDO, `GetBuscarPedidos?fechaI=${fechaI}&fechaF=${fechaF}&idEstado=${estadoSelected}\r\n &ignorarFecha=${ignorarF}&cantidad=${countItems}&pagina=${currentPage.skip}`).then((res) => {\r\n // console.log(\"res pedidos\", res.data)\r\n if (res.data) {\r\n setList(res.data);\r\n setTotalItems(res.data.total);\r\n setCountItems(res.data.count);\r\n ok = true;\r\n } else {\r\n if (res.Message) {\r\n let err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n } else {\r\n let err = place + \":\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n return ok;\r\n\r\n }\r\n const listarEstados = async () => {\r\n // showSpinner();\r\n await GetWithToken(ListaEndpoints.ESTADO_PEDIDO, \"GetEstadosPedido\").then((res) => {\r\n // console.log(\"Listar estados \", res)\r\n if (res.ok) {\r\n setListEstados({ data: res.data, cargando: false });\r\n } else {\r\n let err = \"Estados del pedido: \" + res.error;\r\n if (res.Message) {\r\n err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n setListEstados({ data: null, cargando: false });\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000)\r\n } else {\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n setListEstados({ data: null, cargando: false });\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = \"Estados del pedido: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setListEstados({ data: null, cargando: false });\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000);\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n\r\n }\r\n const modificar = async (val) => {\r\n\r\n showSpinner();\r\n setEnviado(false);\r\n let datos = {\r\n id: objeto.id,\r\n estado: val.estado,\r\n };\r\n //console.log(\"valor\", val)\r\n await UpdateWithToken(ListaEndpoints.PEDIDO, \"PutEstadoPedido\", \"\", datos).then((res) => {\r\n\r\n if (res.ok) {\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n } else {\r\n setMensajeError({ error: true, mensaje: res.msg });\r\n }\r\n console.error(\"ocurrió un conflicto\", res)\r\n }\r\n setModalEditEstado(false);\r\n }).catch((err) => {\r\n setMensajeError({ error: true, mensaje: err.message });\r\n console.error(\"ocurrió un conflicto\", err)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n });\r\n\r\n }\r\n const showModalEditEstado = (data) => {\r\n setModalEditEstado(true);\r\n setEnviado(false);\r\n let datos = {\r\n id: data.id,\r\n estado: data.estado,\r\n };\r\n setObjeto(datos);\r\n };\r\n const irPedido = (data) => {\r\n history.push(\"/pedido/\" + data.id)\r\n }\r\n const calcularTotal = (data) => {\r\n let subTotalDescuento = data.precioTotal - (data.precioTotal * data.descuento);\r\n return subTotalDescuento + (subTotalDescuento * IMPUESTO_VENTA);\r\n }\r\n const showModalEstados = (data) => {\r\n // console.log(\"testData\", data)\r\n setEnviado(false);\r\n setModalListEstados(true)\r\n setObjeto(data);\r\n };\r\n const confirmarConcretar = (data) => {\r\n\r\n SweetAlert2(1, \"Desea concretar el pedido?\",\r\n \"Se realizarán todos los procesos de manera automática: \" +\r\n \"envio de correo, facturación, activación, reporte y limpieza del carrito del usuario\", \"Esto no se puede revertir!\", \"Cancelar\",\r\n () => { }, \"Entendido\",\r\n () => { concretar(data) })\r\n }\r\n const concretar = (data) => {\r\n showSpinner();\r\n let gmail = getItem(\"usuario\").cta_id;\r\n let obj = {\r\n idPedido: data.id,\r\n correo: gmail\r\n }\r\n\r\n // console.log(\"concretar enviados\", obj)\r\n PostWithToken(ListaEndpoints.ACCION, `ConcretarPedido?idPedido=${obj.idPedido}&correo=${obj.correo}`, \"\", null).then((res) => {\r\n\r\n // console.log(\"concretar res\", res)\r\n if (res.ok && res.data != null) {\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.msg) {\r\n let err = place + \": \" + res.msg;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.errorDescription)\r\n } if (res.Message) {\r\n let err = place + \": \" + res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.Message)\r\n }\r\n\r\n }\r\n\r\n }).catch((e) => {\r\n let err = place + \": \" + e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(\"ocurrió un conflicto\", err)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n });\r\n\r\n\r\n }\r\n const eliminar = async (val) => {\r\n showSpinner();\r\n setEnviado(false);\r\n let datos = {\r\n id: val.id,\r\n };\r\n //console.log(\"valor\", val)\r\n await DeleteWithToken(ListaEndpoints.PEDIDO, \"DeletePedidosById\", \"\", datos).then((res) => {\r\n\r\n if (res.ok) {\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 2000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.msg) {\r\n let err = place + \": \" + res.msg;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.errorDescription)\r\n } if (res.Message) {\r\n let err = place + \": \" + res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.Message)\r\n }\r\n\r\n }\r\n\r\n }).catch((e) => {\r\n let err = place + \": \" + e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(\"ocurrió un conflicto\", err)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n });\r\n }\r\n let style = MODAL_STYLES;\r\n style.content.maxWidth = \"50%\"\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {errors.cantidad ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n \r\n\r\n setIgnorarF(!ignorarF)}\r\n ref={register()}\r\n style={{ width: \"20px\", display: \"inline-block\", height: \"20px\", marginLeft: \"10px\", marginRight: \"20px\" }}\r\n />\r\n
    \r\n {/**Fecha inicial */}\r\n
    \r\n \r\n onChangeFechaI(e.target.value)}\r\n ref={register({\r\n validate: {\r\n value: (val) => {\r\n\r\n // console.log(moment(val), moment(moment().format(\"YYYY-MM-DD\")))\r\n //console.log(moment(val) > moment(moment().format(\"YYYY-MM-DD\")))\r\n if (val) {\r\n if (moment(val) > moment(moment().format(\"YYYY-MM-DD\"))) {\r\n\r\n return \"La fecha inicial no puede ser posterior a la fecha actual\"\r\n } else {\r\n if (moment(val) > moment(moment(fechaF))) {\r\n return \"La fecha inicial no puede ser posterior a la fecha final\"\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n } else {\r\n return \"Fecha Inválida\"\r\n }\r\n\r\n // return true // solo para pruebas\r\n },\r\n },\r\n })}\r\n />\r\n {errors.fechaI ? (\r\n\r\n

    {errors.fechaI.message}

    \r\n ) : null}\r\n
    \r\n {/**Fecha final */}\r\n
    \r\n \r\n onChangeFechaF(e.target.value)}\r\n ref={register({\r\n validate: {\r\n value: (val) => {\r\n // console.log(moment(val), moment(moment().format(\"YYYY-MM-DD\")))\r\n // console.log(moment(val) < moment(moment().format(\"YYYY-MM-DD\")))\r\n if (val) {\r\n if (moment(val) > moment(moment().format(\"YYYY-MM-DD\"))) {\r\n\r\n return \"La fecha final no puede ser posterior a la fecha actual\"\r\n } else {\r\n if (moment(val) < moment(moment(fechaI))) {\r\n return \"La fecha final no puede ser anterior a la fecha inicial\"\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n } else {\r\n return \"Fecha Inválida\"\r\n }\r\n\r\n // return true // solo para pruebas\r\n },\r\n },\r\n })}\r\n />\r\n {errors.fechaF ? (\r\n

    {errors.fechaF.message}

    \r\n\r\n ) : null}\r\n
    \r\n {/**estado filtro */}\r\n
    \r\n \r\n {listEstados.cargando == false ? listEstados.data != null ?\r\n\r\n \r\n : \"Sin Información\" : \"Cargando...\"\r\n }\r\n {errors.estadoF ? (\r\n \r\n ) : null}\r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {list == null ?\r\n ( Cargando...) : (\r\n list.data.map(pdato =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n )\r\n }\r\n \r\n
    IdFacturaClienteFechaPrecio TotalEstadoOpciones
    \r\n {pdato.id}\r\n \r\n {pdato.referenciaFacel}\r\n \r\n {pdato.nombre}\r\n \r\n \r\n {pdato.fecha ? moment(pdato.fecha).format('YYYY/MM/DD, hh:mm a') : null}\r\n \r\n \r\n \r\n {FormatMoney(calcularTotal(pdato))}\r\n \r\n \r\n \r\n {\r\n if (getItem('usuario').uTipo == \"tp\") {\r\n if (pdato.estado != 2 && pdato.estado != 11 && pdato.estado != 12) {\r\n showModalEditEstado(pdato)\r\n }\r\n }\r\n }}\r\n >\r\n {pdato.estadoString}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {getItem('usuario').uTipo == \"tp\" && pdato.estado != 2 && pdato.estado != 11 && pdato.estado != 12 ?\r\n \r\n : null}\r\n {getItem('usuario').uTipo == \"tp\" && pdato.estado == 11 || pdato.estado == 12 ?\r\n \r\n : null}\r\n\r\n
    \r\n
    \r\n {/**aqui va el use pagination */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setModalListEstados(false)}\r\n style={style}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {\"Historial de estados\"}
    \r\n setModalListEstados(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n objeto.HistorialEstadoPedido == null || objeto.HistorialEstadoPedido.length == 0 ?\r\n () : (\r\n objeto.HistorialEstadoPedido.map(pdato =>\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n )\r\n\r\n }\r\n \r\n
    IdUsuarioFechaMétodoEstado
    \r\n Sin Información\r\n
    \r\n {pdato.id}\r\n \r\n {pdato.usuario}\r\n \r\n \r\n {pdato.fecha ? moment(pdato.fecha).format('YYYY/MM/DD, hh:mm a') : null}\r\n \r\n \r\n {pdato.metodo}\r\n \r\n {pdato.EstadoPedido?.nombre}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n setModalEditEstado(false)}\r\n style={style}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {\"Modificar Estado del Pedido\"}
    \r\n setModalEditEstado(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n {/**estado */}\r\n
    \r\n\r\n\r\n \r\n {listEstados.cargando == false ? listEstados.data != null ?\r\n \r\n {\r\n listEstados.data.map((item) =>\r\n \r\n )\r\n }\r\n \r\n : \"Sin Información\" : \"Cargando...\"\r\n }\r\n {errors.estado ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n {/**error */}\r\n
    \r\n {enviado ? (\r\n mensajeError.error ? (\r\n
    \r\n {mensajeError.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n Registrado con éxito\r\n
    \r\n )\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n setModalEditEstado(false)}\r\n className=\"btn btn-primary\"\r\n >\r\n Cancelar\r\n \r\n\r\n <>\r\n \r\n \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n\r\n\r\n\r\n \r\n )\r\n}\r\nexport default withRouter(AdmPedidos);","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoDescripcion from \"../components/Visuales/EncabezadoDescripcion\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, MODAL_STYLES } from '../config/Config';\r\nimport { GetWithToken, SweetAlert, SweetAlert2, PostWithToken, SwalToast, UpdateWithToken, DeleteWithToken, Retrieve } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\nimport Modal from \"react-modal\";\r\n/*formulario */\r\nimport { Trash2, Edit, Cpu, Mail, Eye } from \"react-feather\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport ErrorForm from \"../components/Formularios/ErrorForm.js\";\r\nimport moment from 'moment';\r\nimport { img_default_info_evento } from \"../images/imagesURL.js\";\r\nimport BtnBack from '../components/Formularios/BtnBack';\r\n\r\nconst place = \"Promociones\";\r\nconst AdmPromociones = (props) => {\r\n\r\n const { history } = props;\r\n const [objeto, setObjeto] = useState({\r\n id: 0,\r\n codigo: \"\",\r\n fechaInicio: moment().format(\"YYYY-MM-DD\"),\r\n fechaFin: moment().format(\"YYYY-MM-DD\"),\r\n descripcion: \"\",\r\n descripcionInterna: \"\",\r\n fechaRegistro: moment().format(\"YYYY-MM-DD\"),\r\n descuento: 0.0,\r\n cantidadTotal: 0,\r\n cantidadUsadas: 0,\r\n estado: 0,\r\n });\r\n const [modalAddEdit, setModalAddEdit] = useState(false);\r\n const [edit, setEdit] = useState(false);\r\n const [titulo, setTitulo] = useState(\"Acción\");\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n\r\n //formulario\r\n const { register, handleSubmit, errors, reset } = useForm();\r\n const [mensajeError, setMensajeError] = useState({\r\n error: false,\r\n mensaje: \"\",\r\n });\r\n const [enviado, setEnviado] = useState(false);\r\n //fue necesaior hacer esto par apoder validar las fechas\r\n const [fechaI, setFechaI] = useState(moment().format(\"YYYY-MM-DD\"));\r\n const [fechaF, setFechaF] = useState(moment().add(1, \"month\").format(\"YYYY-MM-DD\"));\r\n const [modalPromo, setModalPromo] = useState(false);\r\n const [imagen, setImagen] = useState({ url: img_default_info_evento, change: false });\r\n //#region datatables\r\n const TblID = \"tblPromocionesAdm\";\r\n const [list, setList] = useState(null);\r\n const [datatable, setDatatable] = useState(null)\r\n useEffect(() => {\r\n initData();\r\n }, []);\r\n const startDatatable = () => {\r\n //console.log(\"start\")\r\n setDatatable($(\"#\" + TblID).DataTable({\r\n processing: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n scrollX: true,\r\n order: [[2, \"desc\"]]\r\n }));\r\n }\r\n const destroyDatatable = () => {\r\n\r\n if (datatable != null) {\r\n // console.log(\"destroy\");\r\n datatable.destroy();\r\n setDatatable(null)\r\n }\r\n }\r\n const recargarLista = async () => {\r\n destroyDatatable();\r\n listar().then((res) => {\r\n //console.log(\"res\", res)\r\n if (res) {\r\n startDatatable();\r\n }\r\n })\r\n }\r\n const initData = () => {//solo se deberia ejecutar una vez\r\n if (getItem('usuario')) {\r\n if (getItem('usuario').uTipo != \"tp\") {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n try {\r\n recargarLista();\r\n } catch (error) {\r\n console.error(\"Acción Interrumpida:\", error.message)\r\n\r\n }\r\n }\r\n } else {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n }\r\n //#endregion\r\n\r\n const listar = async () => {\r\n showSpinner();\r\n let ok = false;\r\n await GetWithToken(ListaEndpoints.CODIGO_APLICABLE, \"GetCodigoAplicable\").then((res) => {\r\n //console.log(\"res\", res.data)\r\n if (res.data) {\r\n setList(res.data);\r\n ok = true;\r\n } else {\r\n if (res.Message) {\r\n let err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n } else {\r\n let err = place + \":\" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n setList(null);\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setTimeout(() => {\r\n localStorage.clear(\"usuario\");\r\n localStorage.clear(\"carrito\");\r\n history.push(\"/login\");\r\n }, 3000);\r\n setList(null);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n // console.log(\"end\")\r\n });\r\n return ok;\r\n\r\n }\r\n const GetColor = (i) => {\r\n switch (i) {\r\n case 0:\r\n return \"rgb(226, 114, 114)\";\r\n\r\n case 1:\r\n return \"rgb(114, 162, 226)\";\r\n\r\n case 2:\r\n return \"rgb(118, 226, 114)\";\r\n\r\n default:\r\n return \"ffffff\";\r\n }\r\n }\r\n const agregar = async (data) => {\r\n let bool = true;\r\n\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n\r\n //setObjeto(data);\r\n data.estado = 0;\r\n data.descuento = data.descuento / 100;\r\n\r\n await PostWithToken(ListaEndpoints.CODIGO_APLICABLE, \"PostCodigoAplicable\", \"\", data).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false)\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e.message)\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });;\r\n }\r\n }\r\n const modificar = async (data) => {\r\n\r\n let bool = true;\r\n if (data.fileImg != null) {\r\n if (data.fileImg && data.fileImg.length) {\r\n var promise = new Promise(getBuffer(data.fileImg[0]));\r\n await promise.then(function (d) {\r\n data.typeImg = data.fileImg[0].type;\r\n data.fileImg = d.toString();\r\n\r\n }).catch(function (err) {\r\n console.error(err.message, err);\r\n bool = false;\r\n let e = place + \": \" + err.message;\r\n SweetAlert(3, \"Acción Interrumpida\", e, \"\", \"Entendido\",\r\n () => { })\r\n });\r\n }\r\n }\r\n\r\n if (bool) {\r\n showSpinner();\r\n setEnviado(false);\r\n //setObjeto(data);\r\n let datos = {\r\n id: edit ? objeto.id : data.id,\r\n codigo: data.codigo,\r\n fechaInicio: data.fechaInicio,\r\n fechaFin: data.fechaFin,\r\n descripcion: data.descripcion,\r\n descripcionInterna: data.descripcionInterna,\r\n fechaRegistro: data.fechaRegistro,\r\n descuento: data.descuento / 100,\r\n cantidadTotal: data.cantidadTotal,\r\n cantidadUsadas: data.cantidadUsadas,\r\n estado: edit ? objeto.estado : data.estado,\r\n idImagenCorreo: data.idImagenCorreo,\r\n urlImagenCorreo: data.urlImagenCorreo,\r\n fileImg: data.fileImg,\r\n typeImg: data.typeImg,\r\n };\r\n // console.log(datos);\r\n await UpdateWithToken(ListaEndpoints.CODIGO_APLICABLE, \"PutCodigoAplicable\", \"\", datos).then((res) => {\r\n if (res.data) {\r\n\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n setModalAddEdit(false);\r\n setEdit(false);\r\n } else {\r\n if (res.error) {\r\n setMensajeError({ error: true, mensaje: res.error });\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n setMensajeError({ error: true, mensaje: res.Message });\r\n console.error(res.error, res.Message)\r\n }\r\n }\r\n\r\n }).catch((e) => {\r\n setMensajeError({ error: true, mensaje: e.message });\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n }\r\n }\r\n const eliminar = async (data) => {\r\n showSpinner();\r\n await DeleteWithToken(ListaEndpoints.CODIGO_APLICABLE, \"DeleteCodigoAplicable\", \"\", data).then((res) => {\r\n if (res.data) {\r\n reset();\r\n SwalToast(2, res.msg, () => { }, 1000);\r\n setMensajeError({ error: false, mensaje: \"\" });\r\n } else {\r\n if (res.error) {\r\n let err = place + \": \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.error, res.errorDescription)\r\n }\r\n if (res.Message) {\r\n let err = place + \": \" + res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(res.Message)\r\n }\r\n }\r\n }).catch((e) => {\r\n let err = place + \": \" + e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n console.error(\"Acción Interrumpida:\", e);\r\n\r\n }).finally(() => {\r\n hideSpinner();\r\n recargarLista();\r\n setEnviado(true);\r\n });\r\n }\r\n const showModalAdd = () => {\r\n setModalAddEdit(true)\r\n setEdit(false);\r\n setTitulo(\"Agregar Promoción\");\r\n setEnviado(false);\r\n\r\n\r\n let datos = {\r\n id: 0,\r\n codigo: \"\",\r\n fechaInicio: moment().format(\"YYYY-MM-DD\"),\r\n fechaFin: moment().add(1, \"month\").format(\"YYYY-MM-DD\"),\r\n descripcion: \"\",\r\n descripcionInterna: \"\",\r\n fechaRegistro: moment().format(\"YYYY-MM-DD\"),\r\n descuento: 0.0,\r\n cantidadTotal: 0,\r\n cantidadUsadas: 0,\r\n estado: 0,\r\n idImagenCorreo: \"\",\r\n urlImagenCorreo: \"\",\r\n fileImg: null,\r\n typeImg: \"\"\r\n };\r\n let img = { url: img_default_info_evento, change: false };\r\n setImagen(img);\r\n setObjeto(datos);\r\n };\r\n const showModalEdit = (data) => {\r\n setModalAddEdit(true)\r\n setEdit(true);\r\n setEnviado(false);\r\n setTitulo(\"Editar Promoción\");\r\n let datos = {\r\n id: data.id,\r\n codigo: data.codigo,\r\n fechaInicio: moment(data.fechaInicio).format(\"YYYY-MM-DD\"),\r\n fechaFin: moment(data.fechaFin).format(\"YYYY-MM-DD\"),\r\n descripcion: data.descripcion,\r\n descripcionInterna: data.descripcionInterna,\r\n fechaRegistro: moment(data.fechaRegistro).format(\"YYYY-MM-DD\"),\r\n descuento: data.descuento * 100,\r\n cantidadTotal: data.cantidadTotal,\r\n cantidadUsadas: data.cantidadUsadas,\r\n estado: data.estado,\r\n idImagenCorreo: data.idImagenCorreo,\r\n urlImagenCorreo: data.urlImagenCorreo,\r\n fileImg: null,\r\n typeImg: null\r\n };\r\n // console.log(\"datos\",data);\r\n let img = { url: data.urlImagenCorreo, change: false }\r\n setImagen(img);\r\n setObjeto(datos);\r\n\r\n };\r\n const showModalDelete = (data) => {\r\n let msg = `¿Está seguro que desea eliminar esta promoción: ${data.codigo}?`;\r\n SweetAlert2(1, \"Eliminar promoción\", msg, \"Este cambio no se puede revertir.\",\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { eliminar(data) })\r\n\r\n };\r\n const showModalEditEstado = async (data) => {\r\n\r\n\r\n let datos = {\r\n id: data.id,\r\n codigo: data.codigo,\r\n fechaInicio: moment(data.fechaInicio).format(\"YYYY-MM-DD\"),\r\n fechaFin: moment(data.fechaFin).format(\"YYYY-MM-DD\"),\r\n descripcion: data.descripcion,\r\n descripcionInterna: data.descripcionInterna,\r\n fechaRegistro: moment(data.fechaRegistro).format(\"YYYY-MM-DD\"),\r\n descuento: data.descuento * 100,// no se le hace conversión porque se supone que e\r\n cantidadTotal: data.cantidadTotal,\r\n cantidadUsadas: data.cantidadUsadas,\r\n estado: data.estado == 1 ? 0 : 1,//cambio de estado, idImagenCorreo: data.idImagenCorreo \r\n idImagenCorreo: data.idImagenCorreo,\r\n urlImagenCorreo: data.urlImagenCorreo,\r\n };\r\n\r\n\r\n\r\n let msg = `¿Está seguro que desea ${data.estado == 1 ? \"desactivar\" : \"activar\"} la promoción: ${data.codigo}?`;\r\n SweetAlert2(1, \"Cambiar estado\", msg, `La promoción ${data.estado == 1 ? \"NO\" : \"\"} podrá ser aplicada por los clientes en la página previa al pago.`,\r\n \"Cancelar\", () => { },\r\n \"Aceptar\", () => { setObjeto(datos); modificar(datos); })\r\n };\r\n\r\n const onChangeFechaI = (val) => {\r\n // console.log(\"Fecha i\", val)\r\n setFechaI(val);\r\n }\r\n\r\n const onChangeFechaF = (val) => {\r\n setFechaF(val);\r\n }\r\n const generarCodigo = () => {\r\n let mes = [\r\n { val: 1, name: \"ENE\" }, { val: 2, name: \"FEB\" }, { val: 3, name: \"MAR\" }, { val: 4, name: \"ABR\" },\r\n { val: 8, name: \"AGO\" }, { val: 7, name: \"JUL\" }, { val: 6, name: \"JUN\" }, { val: 5, name: \"MAY\" },\r\n { val: 9, name: \"SET\" }, { val: 10, name: \"OCT\" }, { val: 11, name: \"NOV\" }, { val: 12, name: \"DIC\" },\r\n { val: 13, name: \"MOM\" }, { val: 14, name: \"DAD\" }, { val: 15, name: \"KID\" }, { val: 16, name: \"LIFE\" },\r\n { val: 17, name: \"ECO\" }, { val: 18, name: \"MEGA\" }, { val: 19, name: \"GUANA\" }, { val: 20, name: \"DIC\" },\r\n ]\r\n let promo = Math.floor(Math.random() * (5 - 41)) + 41;\r\n let cod = \"\";\r\n let numMes = Math.floor(Math.random() * (1 - 21)) + 21;\r\n let word = mes.find((e) => e.val == numMes).name;\r\n\r\n\r\n cod = `${promo}${word}${moment().format(\"YYYY\")}`;\r\n // console.log(\"datos\", cod)\r\n let input = document.getElementById(\"nptCodigoPromo\");\r\n input.value = cod;\r\n let inputDesc = document.getElementById(\"nptDescuentoPromo\");\r\n inputDesc.value = promo;\r\n }\r\n const showModalCorreoMasivo = (data) => {\r\n setModalPromo(true);\r\n\r\n setTitulo(\"Enviar correos masivos\");\r\n let datos = {\r\n id: data.id,\r\n codigo: data.codigo,\r\n fechaInicio: moment(data.fechaInicio).format(\"YYYY-MM-DD\"),\r\n fechaFin: moment(data.fechaFin).format(\"YYYY-MM-DD\"),\r\n descripcion: data.descripcion,\r\n descripcionInterna: data.descripcionInterna,\r\n fechaRegistro: moment(data.fechaRegistro).format(\"YYYY-MM-DD\"),\r\n descuento: data.descuento * 100,\r\n cantidadTotal: data.cantidadTotal,\r\n cantidadUsadas: data.cantidadUsadas,\r\n estado: data.estado,\r\n };\r\n //console.log(datos);\r\n setObjeto(datos);\r\n }\r\n const enviarCorreoMasivo = (data) => {\r\n showSpinner();\r\n // console.log(\"data promo\", data)\r\n PostWithToken(ListaEndpoints.CODIGO_APLICABLE, `EnviarCorreoMasivo`, data.idPromo, data.correos)\r\n .then((res) => {\r\n if (res) {\r\n //console.log(res);\r\n if (res.ok) {//si está disponible\r\n SwalToast(2, \"Correos Enviados\", () => { }, 3000);\r\n setModalPromo(false);\r\n\r\n } else {\r\n\r\n let err = \"Promociones: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n }\r\n\r\n } else {\r\n let err = \"Promociones: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n // console.log(res);\r\n }\r\n\r\n hideSpinner();\r\n })\r\n .catch((e) => {\r\n hideSpinner();\r\n let err =\r\n \"Promociones: No se pudo conectar al servidor, inténtelo de nuevo más tarde. \" +\r\n e.message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\", () => { });\r\n });\r\n }\r\n const irPromocion = (data) => {\r\n history.push(\"/adm/promociones/\" + data.id)\r\n }\r\n const getBuffer = (fileData) => {\r\n return function (resolve) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = function () {\r\n var arrayBuffer = reader.result\r\n // console.log(\"array\", fileData)\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpeg;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/png;base64,\", \"\");\r\n arrayBuffer = arrayBuffer.replace(\"data:image/jpg;base64,\", \"\");\r\n //var bytes = new Uint8Array(arrayBuffer);\r\n resolve(arrayBuffer);\r\n }\r\n }\r\n }\r\n const onChangeInputImagen = () => {\r\n const input = document.getElementById(\"InputImg\");\r\n let files = input.files;\r\n if (!files || !files.length) {\r\n let img = { url: edit ? objeto.urlImagen : img_default_info_evento, change: false }\r\n setImagen(img);\r\n } else {\r\n\r\n let img = { url: URL.createObjectURL(files[0]), change: false }\r\n setImagen(img);\r\n }\r\n\r\n }\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {list == null ?\r\n ( Cargando...) : (\r\n list.map(pdato =>\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n )\r\n }\r\n \r\n
    CódigoDescripciónFecha InicioFecha FinDescuentoCantidad

    usadas/total

    EstadoOpciones
    \r\n {pdato.codigo}\r\n \r\n {pdato.descripcionInterna}\r\n \r\n {pdato.fechaInicio ? moment(pdato.fechaInicio).format('YYYY/MM/DD') : null}\r\n \r\n {pdato.fechaFin ? moment(pdato.fechaFin).format('YYYY/MM/DD') : null}\r\n \r\n {(pdato.descuento * 100) + \"%\"}\r\n \r\n {pdato.cantidadUsadas + \" / \" + pdato.cantidadTotal}\r\n \r\n \r\n {\r\n showModalEditEstado(pdato)\r\n }}>\r\n {pdato.estado == 1 ? \"Activo\" : \"inactivo\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setModalAddEdit(false)}\r\n style={MODAL_STYLES}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n setModalAddEdit(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/**Codigo */}\r\n
    \r\n \r\n \r\n\r\n\r\n {errors.codigo ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n generarCodigo()}\r\n className=\"btn btn-primary\"\r\n style={{ padding: \"5px\", marginLeft: \"-25px\", marginTop: \"35px\" }}\r\n >\r\n \r\n \r\n\r\n\r\n
    \r\n\r\n {/**Fecha inicial */}\r\n
    \r\n \r\n\r\n onChangeFechaI(e.target.value)}\r\n ref={register({\r\n\r\n validate: {\r\n value: (val) => {\r\n\r\n /* console.log(moment(val), moment(moment().format(\"YYYY-MM-DD\")))\r\n console.log(moment(val) < moment(moment().format(\"YYYY-MM-DD\")))*/\r\n if (val) {\r\n if (moment(val) < moment(moment().format(\"YYYY-MM-DD\"))) {\r\n\r\n return \"La fecha inicial no puede ser anterior a la fecha actual\"\r\n } else {\r\n if (moment(val) > moment(moment(fechaF))) {\r\n return \"La fecha inicial no puede ser posterior a la fecha final\"\r\n } else {\r\n return true;\r\n }\r\n }\r\n } else {\r\n return \"Fecha Inválida\"\r\n }\r\n // return true // solo para pruebas\r\n },\r\n },\r\n })}\r\n />\r\n {errors.fechaInicio ? (\r\n \r\n ) : null}\r\n
    \r\n {/**Fecha final */}\r\n
    \r\n \r\n onChangeFechaF(e.target.value)}\r\n ref={register({\r\n\r\n validate: {\r\n value: (val) => {\r\n\r\n // console.log(moment(val), moment(moment().format(\"YYYY-MM-DD\")))\r\n // console.log(moment(val) < moment(moment().format(\"YYYY-MM-DD\")))*/\r\n //console.log(val);\r\n if (val) {\r\n if (moment(val) < moment(moment().format(\"YYYY-MM-DD\"))) {\r\n\r\n return \"La fecha final no puede ser anterior a la fecha actual\"\r\n } else {\r\n if (moment(val) < moment(moment(fechaI))) {\r\n return \"La fecha final no puede ser anterior a la fecha inicial\"\r\n } else {\r\n return true;\r\n }\r\n }\r\n } else {\r\n return \"Fecha Inválida\"\r\n }\r\n\r\n //return true // solo para pruebas\r\n },\r\n\r\n\r\n },\r\n\r\n })}\r\n />\r\n {errors.fechaFin ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {/**cantidadTotal */}\r\n
    \r\n \r\n\r\n objeto.cantidadUsadas ? {\r\n\r\n message: \"Debe almenos tener \" + (objeto.cantidadUsadas + 1) + \" a disposición\",\r\n value: (objeto.cantidadUsadas + 1)\r\n } : {\r\n message: \"Debe almenos tener \" + (objeto.cantidadTotal + 1) + \"a disposición\",\r\n value: (objeto.cantidadTotal + 1)\r\n }\r\n\r\n })}\r\n />\r\n {errors.cantidadTotal ? (\r\n \r\n ) : null}\r\n
    \r\n {/**descuento */}\r\n
    \r\n \r\n \r\n {errors.descuento ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {/**Decripcion interna*/}\r\n
    \r\n \r\n \r\n {errors.descripcionInterna ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n
    \r\n
    \r\n {/**Decripcion interna*/}\r\n
    \r\n \r\n \r\n {errors.descripcion ? (\r\n \r\n ) : null}\r\n
    \r\n {/**imaegen */}\r\n
    \r\n \r\n
    \r\n {/**imaegen file*/}\r\n
    \r\n \r\n { onChangeInputImagen() }}\r\n />\r\n {errors.fileImg ? (\r\n \r\n ) : null}\r\n
    \r\n {/**veces usado (solo visual) */}\r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n\r\n {/**error */}\r\n
    \r\n {enviado ? (\r\n mensajeError.error ? (\r\n
    \r\n {mensajeError.mensaje}\r\n
    \r\n ) : (\r\n
    \r\n Registrado con éxito\r\n
    \r\n )\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n setModalAddEdit(false)}\r\n className=\"btn btn-primary\"\r\n >\r\n Cancelar\r\n \r\n {edit ?\r\n <>\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n }\r\n {\r\n setModalPromo(false)}\r\n style={MODAL_STYLES}\r\n className=\"modal-dialog\"\r\n >\r\n
    \r\n
    \r\n
    {titulo}
    \r\n setModalPromo(false)}\r\n className=\"close\"\r\n >\r\n ×\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/**id Promo */}\r\n
    \r\n \r\n \r\n\r\n\r\n {errors.idPromo ? (\r\n \r\n ) : null}\r\n
    \r\n {/**codigo*/}\r\n
    \r\n \r\n \r\n\r\n\r\n {errors.codigo ? (\r\n \r\n ) : null}\r\n
    \r\n\r\n {/**Correos*/}\r\n
    \r\n \r\n \r\n {errors.correos ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n setModalPromo(false)}\r\n className=\"btn btn-primary\"\r\n >\r\n Cancelar\r\n \r\n \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n }\r\n \r\n )\r\n}\r\nexport default withRouter(AdmPromociones);","import React, { useState, useEffect } from 'react';\r\nimport EncabezadoFiguras from '../components/Visuales/EncabezadoFiguras';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { ListaEndpoints, IMPUESTO_VENTA } from '../config/Config';\r\nimport FormatMoney from \"../services/FormatMoney\";\r\nimport { PostWithToken, Retrieve, SweetAlert } from '../services/ControlActions';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport $ from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport moment from 'moment';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\n\r\nconst Planes = (props) => {\r\n const { history } = props;\r\n const [list, setList] = useState({ data: {}, cargando: true });\r\n const [table, setTable] = useState(true);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n const TBLID = \"tblHistorial\";\r\n useEffect(() => {\r\n\r\n try {\r\n if (!getItem('usuario')) {\r\n\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n if (list.cargando === true) {\r\n\r\n showSpinner();\r\n PostWithToken(ListaEndpoints.USUARIO, `TraerPlanes?correo=${getItem('usuario').cta_id}`).then((res) => {\r\n if (res.data) {\r\n\r\n //console.log(\"Respu\", res);\r\n\r\n\r\n setList({ data: res, cargando: false });\r\n } else {\r\n let err = \"Planes:\" + res.error;\r\n if (res.Message) {\r\n err = res.Message;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n setList({ data: null, cargando: false });\r\n } else {\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { })\r\n\r\n }\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setList({ data: null, cargando: false });\r\n\r\n }\r\n hideSpinner();\r\n }).catch((e) => {\r\n let err = \"Planes: No pudo conectar al servidor, inténtelo de nuevo más tarde. \" + e.message\r\n\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setList({ data: null, cargando: false });\r\n hideSpinner();\r\n });\r\n\r\n\r\n } else {\r\n if (table) {\r\n\r\n $(\"#\" + TBLID).DataTable({\r\n processing: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n scrollX: true,\r\n // order: [[2, \"desc\"]]\r\n });\r\n setTable(false);\r\n }\r\n }\r\n\r\n }\r\n } catch (error) {\r\n alert(\"Acción Interrumpida:\", error);\r\n }\r\n\r\n }, [history, list.cargando, showSpinner, hideSpinner, table]);\r\n\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {list.cargando === false ? (\r\n\r\n list.data === null ?\r\n (null) : (\r\n list.data.data.map((pdato, index) =>\r\n\r\n { }}>\r\n\r\n \r\n\r\n\r\n \r\n\r\n {/* \r\n */ }\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n )\r\n )\r\n ) : null\r\n }\r\n\r\n \r\n
    ImagenNombreFecha inicioFecha fin
    \r\n\r\n \r\n \r\n {pdato.producto.nombre}\r\n \r\n \r\n pdato.pla_FechaC ? moment(pdato.pla_FechaC).format('YYYY/MM/DD') : null\r\n \r\n \r\n \r\n {pdato.pla_FechaI ? moment(pdato.pla_FechaI).format('YYYY/MM/DD') : null}\r\n \r\n \r\n \r\n {pdato.pla_FechaF ? moment(pdato.pla_FechaF).format('YYYY/MM/DD') : null}\r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Planes);\r\n","import React, { useEffect, useState } from 'react';\r\nimport EncabezadoFiguras from '../components/Visuales/EncabezadoFiguras';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { getItem } from '../services/UseLocalStorage';\r\nimport { SweetAlert, GetWithToken} from '../services/ControlActions';\r\nimport { ListaEndpoints, IMPUESTO_VENTA } from '../config/Config';\r\nimport Spinner from '../components/Visuales/Spinner';\r\nimport moment from 'moment';\r\nimport $, { } from \"jquery\";\r\nimport 'datatables.net';\r\nimport 'datatables.net-bs4';\r\nimport AlertMessage from \"../components/Errors/AlertMessage\";\r\n\r\nconst Pedido = (props) => {\r\n const { history, match } = props;\r\n const [data, setData] = useState({ data: null, cargando: true });\r\n const [table, setTable] = useState(true);\r\n const [spinner, showSpinner, hideSpinner] = Spinner();\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n const ID = match.params.id;\r\n const TBLID = \"tblPromo\" + ID;\r\n\r\n useEffect(() => {\r\n\r\n if (!getItem('usuario')) {\r\n\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n } else {\r\n if (data.cargando === true) {\r\n\r\n showSpinner()\r\n let usuario = getItem(\"usuario\");\r\n GetWithToken(ListaEndpoints.CODIGO_APLICABLE, \"GetRegistrosCodigoAplicable\", ID).then((res) => {\r\n if (res.data) {\r\n\r\n if (usuario.uTipo !== \"tp\") {\r\n setData({ data: null, cargando: false });\r\n let err = \"Registros: No puedes visualizar este registro\";\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n\r\n } else {\r\n //console.log(\"rtes\",res);\r\n setData({ data: res, cargando: false });\r\n\r\n }\r\n } else {\r\n setData({ data: null, cargando: false });\r\n let err = \"Registros: \" + res.error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n }\r\n hideSpinner();\r\n }).catch((e) => {\r\n let err = \"Registros: No pudo conectar al servidor, inténtelo de nuevo más tarde. \"\r\n\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n setData({ data: null, cargando: false });\r\n hideSpinner();\r\n });\r\n\r\n } else {\r\n try {\r\n //console.log(\"tabla\", table)\r\n if (table) {\r\n setTable(false);\r\n $(\"#\" + TBLID).DataTable({ \r\n scrollX: true, \r\n processing: true,\r\n destroy: true,\r\n language: {\r\n url: \"//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json\"\r\n },\r\n \"ordering\": true,\r\n \"info\": true,\r\n \"colReorder\": true,\r\n // \"searching\": false,\r\n \"bLengthChange\": false,\r\n dom: 'Blfrtip',\r\n buttons: [\r\n {\r\n extend: 'collection',\r\n text: 'Exportar ',\r\n className: \"botonesSecundarios\",\r\n buttons: [\r\n {\r\n extend: 'csv',\r\n text: 'CSV',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_csv',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'pdfHtml5',\r\n text: 'PDF',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_pdf',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'excel',\r\n text: 'Excel',\r\n footer: true,\r\n title: 'Listado de Facturas',\r\n filename: 'Listado_Facturas_excel',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'copy',\r\n title: 'Listado de Facturas',\r\n text: 'Copiar',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n },\r\n {\r\n extend: 'print',\r\n title: 'Listado de Facturas',\r\n text: 'Imprimir',\r\n exportOptions: {\r\n columns: ':visible'\r\n }\r\n \r\n }\r\n ],\r\n }\r\n ],\r\n dropup: true,\r\n \"order\": [[0, \"desc\"]]\r\n });\r\n\r\n }\r\n } catch (error) {\r\n //console.log(\"error de datatables\", error)\r\n let err = \"_Table: Acción Interrumpida.\\n \" + error;\r\n SweetAlert(3, \"Acción Interrumpida\", err, \"\", \"Entendido\",\r\n () => { history.goBack() ? history.goBack() : history.push(\"/\") })\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }, [hideSpinner, history, data.cargando, showSpinner, table]);\r\n\r\n const irAtras = () => {\r\n history.goBack() ? history.goBack() : history.push(\"/\")\r\n }\r\n\r\n return (\r\n <>\r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n {spinner}\r\n {data.data === null ? (\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    No hay nada que mostrar\r\n

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Lista de clientes que usaron la promoción\r\n \r\n

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {data.cargando === false ? (\r\n\r\n data.data === null /*dataPedido.data.data.DetallePedido.length === 0 ? */ ?\r\n (null) : (\r\n data.data.data.map(pdato =>\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n )\r\n )\r\n ) : (\r\n
    cargando
    \r\n )\r\n }\r\n\r\n \r\n
    IdFechaCuentaId usuario
    \r\n {pdato.id}\r\n \r\n {pdato.fecha ? moment(pdato.fecha).format('YYYY/MM/DD, hh:mm a') : null}\r\n \r\n {pdato.cuenta}\r\n \r\n \r\n {pdato.idUsuario}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Pedido);\r\n","import React, { useState, useEffect } from \"react\";\r\n/* Prefiero manipularlos lo minimo, por lo que estan practicamente intactos. */\r\n/*primero importo los css de la plantilla*/\r\nimport \"./css/bootstrap.min.css\";//general\r\nimport \"./css/slick.min.css\";//de clientes\r\nimport \"./css/style.css\";//general\r\nimport \"./css/responsive.css\";\r\n\r\nimport \"bootstrap\";\r\n// Selecciona espaniol como el idioma por defecto del momentjs\r\nimport \"moment/locale/es\";\r\n\r\nimport Layout from \"./components/Layout/Layout\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\n/*pages*/\r\nimport LandingPage from \"./pages/LandingPage\";\r\nimport Servicios from \"./pages/Servicios\";\r\nimport ServiciosList from \"./pages/ServiciosList\";\r\nimport Contacto from \"./pages/Contacto\";\r\nimport Nosotros from \"./pages/Nosotros\";\r\nimport Registro from \"./pages/Registro\";\r\nimport Login from \"./pages/Login\";\r\nimport CarritoPage from \"./pages/CarritoPage\";\r\nimport HistorialPedidos from \"./pages/HistorialPedidos\";\r\nimport Pedido from \"./pages/Pedido\";\r\nimport Distribuidores from \"./pages/Distribuidores\";\r\nimport DesactivarNotificacion from \"./pages/DesactivarNotificacionPage\";\r\n\r\nimport $ from \"jquery\";\r\nimport { ArrowUp } from \"react-feather\";\r\nimport { Retrieve, SweetAlert } from \"./services/ControlActions\";\r\nimport ConfirmacionUsuario from \"./pages/ConfirmacionUsuario\";\r\nimport ErrorPage from \"./pages/ErrorPage\";\r\n\r\nimport PerfilPage from \"./pages/PerfilPage\";\r\nimport PoliticasPrivacidadPage from \"./pages/PoliticasPrivacidadPage\";\r\nimport TerminosCondicionesPage from \"./pages/TerminosCondicionesPage\";\r\nimport PagoPage from \"./pages/PagoPage\";\r\nimport AlertMessage from \"./components/Errors/AlertMessage\";\r\nimport Mantenimientos from \"./pages/Mantenimientos\";\r\nimport AdmServicios from \"./pages/AdmServicios\";\r\nimport AdmClientes from \"./pages/AdmClientes\";\r\nimport AdmProductos from \"./pages/AdmProductos\";\r\nimport AdmImagenes from \"./pages/AdmImagenes\";\r\nimport AdmPedidos from \"./pages/AdmPedidos\";\r\nimport AdmPromociones from \"./pages/AdmPromociones\";\r\nimport Planes from \"./pages/Planes\";\r\nimport RegistroPromocion from \"./pages/RegistroPromocion\";\r\n\r\n\r\nimport { ListaEndpoints, DOCUMENTO_DISTRIBUIDORES } from \"./config/Config\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst App = () => {\r\n let history = useHistory();\r\n const [datos, setDatos] = useState([]);\r\n const [cargando, setCargando] = useState(true);\r\n const [mensajeAlerta, setMensajeAlerta] = useState({ mensaje: \"\", error: false });\r\n\r\n //#region data servicios\r\n useEffect(() => {\r\n // setCargando(true);\r\n if (cargando) {\r\n Retrieve(ListaEndpoints.SERVICIO, \"GetServiciosActivos\").then((res) => {\r\n if (res != null) {\r\n if (res.data) {\r\n if (res.data?.length > 0) {\r\n setDatos(res.data);\r\n\r\n }\r\n } else {\r\n let err = \"Servicios: Acción Interrumpida.\\n \" + res.error;\r\n setMensajeAlerta({ mensaje: err, error: true });\r\n\r\n }\r\n } else {\r\n let mensaje = \"No hay servicios disponibles. \\n Respuesta nula\"\r\n SweetAlert(3, \"Acción Interrumpida\", mensaje, \"\", \"Ok\", () => { })\r\n\r\n }\r\n }).catch((e) => {\r\n let err = \"Servicios: No pudo conectar al servidor, inténtelo de nuevo más tarde.\\n \"\r\n setMensajeAlerta({ mensaje: err, error: true })\r\n // $(\"html, body\").animate({ scrollTop: \"0\" }, 10);\r\n });\r\n setCargando(false);\r\n }\r\n\r\n\r\n }, []);\r\n //#endregion\r\n //#region go to top\r\n // Go to Top\r\n $(() => {\r\n //Scroll event\r\n $(window).on(\"scroll\", () => {\r\n var scrolled = $(window).scrollTop();\r\n if (scrolled > 300) $(\".go-top\").fadeIn(\"slow\");\r\n if (scrolled < 300) $(\".go-top\").fadeOut(\"slow\");\r\n });\r\n //Click event\r\n $(\".go-top\").on(\"click\", () => {\r\n $(\"html, body\").animate({ scrollTop: \"0\" }, 500);\r\n });\r\n });\r\n //#endregion\r\n return (\r\n <>\r\n\r\n \r\n {mensajeAlerta.error ? (\r\n <>\r\n \r\n \r\n ) : null}\r\n \r\n \r\n\r\n \r\n (\r\n //JBL123 para que los 3 puntos\r\n )}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* {\r\n window.location.href = URL_SIGMA + 'redirectPago';\r\n return null;\r\n }} />*/}\r\n \r\n \r\n {\r\n window.location.href = 'https://www.facebook.com/SigmaCostaRica/';\r\n return null;\r\n }} />\r\n {\r\n window.location.href = 'https://www.instagram.com/sigma_asesoriascontables/';\r\n return null;\r\n }} />\r\n {\r\n \r\n window.location.href = 'https://cr.linkedin.com/';\r\n return null;\r\n }} />\r\n {\r\n window.location.href = 'https://wa.me/c/50689918111';\r\n return null;\r\n }} />\r\n {\r\n window.location.href = 'https://www.facelcr.com/index.html#/home';\r\n return null;\r\n }} />\r\n {\r\n window.location.href = 'https://facturelo.com/';\r\n return null;\r\n }} />\r\n {\r\n window.location.href = 'https://technosoftcr.com/ContadorMillenium.aspx';\r\n return null;\r\n }} />\r\n {\r\n window.location.href = DOCUMENTO_DISTRIBUIDORES;\r\n // window.location.href = 'D:\\Technosoft\\Sigmacr.net\\jBlanco\\Technosoft.Sigma.UI\\ClientApp\\public\\prueba.pdf'\r\n return null;\r\n }} />\r\n {/*Aqui inician los matenimientos*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import { Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nclass ScrollToTop extends Component {\r\n componentDidUpdate(prevProps) {\r\n if (this.props.location !== prevProps.location) {\r\n if (this.props.location.hash === \"\") {\r\n window.scrollTo(0, 0)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return this.props.children\r\n }\r\n}\r\n\r\nexport default withRouter(ScrollToTop)","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport { BrowserRouter, HashRouter } from 'react-router-dom';\nimport ScrollToTop from './components/Layout/ScrollToTop';\n\n\nReactDOM.render(\n \n \n \n \n \n , document.getElementById('root'));\n\nserviceWorker.unregister();\n"],"sourceRoot":""}