{"version":3,"sources":["components/Mercado/Filtros.js","providers/GlobalStatesProviders.js","components/Header/Header.js","components/Index/Carousel.js","components/Index/Index.js","components/Mercado/GrupoTallas.js","components/Mercado/Producto.js","components/Footer/Footer.js","components/Mercado/components/NotFound.js","providers/CategoriasProviders.js","components/Mercado/Mercado.js","components/Mercado/ListaProductos.js","components/Index/CarouselInfo.js","components/Mercado/Mayoristas.js","components/Usuario/FormRegistro.js","components/Usuario/Registro.js","components/Pedido/components/modal.js","components/Pedido/components/modalAddi.js","components/Pedido/Pedido.js","components/ConfirmacionPago/index.js","components/ConfirmacionPago/Rechazado.js","components/ConfirmacionPago/Pendiente.js","components/Modal/ModalGeneral.js","components/Usuario/InicioSesion.js","components/Ayuda/Ayuda.js","components/Landing/Landing.js","components/Admin/Indicadores/Indicadores.js","components/Admin/Indicadores/DetalleMeta.js","components/Mercado/Detalle.js","components/Admin/CrudIndicadores/CrudInicadores.js","components/Admin/Unidades/Unidades.js","components/Admin/Index/MenuPrincipal.js","components/Admin/Index/MenuUnidades.js","components/Admin/Dashboard/Sidebar.js","components/Admin/Dashboard/NavBar.js","components/Admin/Dashboard/Dashboard.js","components/Admin/Whatsapp/Templates/NuevaColeccion.js","components/Admin/Whatsapp/Templates/Descuentos.js","components/Admin/Whatsapp/Whatsapp.js","components/Concurso/registroConcurso.js","components/Admin/Rotacion/Rotacion.js","components/Admin/Rotacion/RotacionIndex.js","components/Admin/Rotacion/RotacionSeller.js","components/Epayco/index.js","components/Index/NewIndex.js","components/Admin/Imagenes/Imagenes.js","components/Vendedor/LoginVendedor.js","components/Admin/Descuentos/Descuentos.js","App.js","reportWebVitals.js","index.js"],"names":["Filtros","filtrosState","modificarFiltrosState","productosState","modificarProductosState","tallasState","modificarTallasState","coloresState","modificarColoresState","marcasState","modificarMarcasState","medidasState","modificarMedidasState","errorState","modificarErrorState","spinnerState","modificarSpinnerState","apiUrlState","recursosUrlState","modificarApiUrlState","categoriasState","modificarRecursosUrlState","modificarCategoriasState","headerState","categoriasMujerState","modificarCategoriasMujerState","CatalogoState","modificarHeaderState","subCategoriasState","actualizarSessionStorage","refNoCatalogoState","modificarSubCategoriasState","modificarRefNoCatalogoState","Bodega","vendedor","modificarVendedorState","BodegaCatalogos","setBodega","checkedProductos","setBodegaCatalogos","setCheckedProductos","CambioFiltro","CambioCategoria","Categoria","Genero","seleccionado","backgroundSize","outline","textDecoration","padding","border","useState","Hombre","Mujer","Niño","listaCategoriasState","modificarListaCategoriasState","listaMedidasState","modificarListaMedidasState","listaMarcasState","modificarListaMarcasState","listaTallasState","modificarListaTallasState","listaColoresState","modificarListaColoresState","listaGenerosState","modificarListaGenerosState","tipo","TypeCat","modificarTypeCat","unidades","setUnidades","minUnidades","setMinUnidades","window","location","pathname","Ruta","comprobarCategoriaSeleccionada","idCategoria","genero","comprobarMarcaSeleccionada","idMarca","i","length","comprobarMedidaSeleccionada","idMedida","comprobarTallaSeleccionada","idTalla","comprobarColorSeleccionado","idColor","capitalizarPrimeraLetra","str","charAt","toUpperCase","slice","cambioMatriz","a","filtroResumido","posicionFiltros","width","url","data","Categorias","Generos","Marcas","Medidas","Tallas","Colores","Subcategoria","ParametroOrdenamiento","ProductosNuevos","Descuentos","Todo","Origen","categoriaALlamar","push","Marca","undefined","Desplegar","Texto","CambioSeccion","Busqueda","irInicio","axios","post","then","response","Error","Mensaje","catch","err","limpiarFiltros","limpiarFiltros2","pro","cerrarFiltros","onChangeValueCategorias","categoria","palabra","rutaGenero","DeHombre","DeMujer","auxcategoria","toLowerCase","href","document","getElementById","value","_id","GrupoTallas","onChangeValueMedidas","medidaId","listaMedidaTemp","splice","indexOf","TipoCatalogo","e","tipoC","prepararCatalogo","catalogo","filter","producto","find","prodS","Referencia","comprobarCantidades","cantidad","tallas","Variantes","Cantidad","useEffect","Estado","DeNino","error","marcas","marcasObj","map","marca","get","medidasH","medidasM","medidasObjH","medidasObjM","medida","Medida","className","style","color","fontSize","marginTop","marginBottom","id","cursor","onClick","localStorage","setItem","reload","marginLeft","marginRight","cambioGenero","textAlign","marcaId","listaMarcaTemp","onChangeValueMarcas","talla","src","Talla","Nombre","tallaId","listaTallasTemp","onChangeValueTallas","alt","onError","target","onerror","Color","backgroundColor","Hexadecimal","colorId","listaColoresTemp","onChangeValueColores","title","display","justifyContent","flexDirection","margin","type","name","htmlFor","fontFamily","paddingLeft","accentColor","checked","maxWidth","onChange","productosEnCatalogo","medidas","linkSource","catalog","downloadLink","createElement","fileName","download","click","console","log","obtenerCatalogo","GlobalContext","createContext","useGlobalContext","useContext","GlobalStatesProvider","children","Registro","Accion","Sesion","TipoDocumento","NumeroDocumento","Nombres","Apellidos","Sucursal","Correo","Celular","FechaNacimiento","Pais","Ciudad","Departamento","Direccion","Barrio","clienteState","modificarClienteState","Provider","Header","colorActual","menuActual","ViewDetalle","carrito","modificarCarritoState","administradorState","modificarAdministradorState","LandingHeader","landingState","AdminHeaderState","consultaLupa","setConsultaLupa","RutaActual","srcLogo","srcBolsa","displayBuscar","displayMenu","presionEnter","propiedadesFiltro","position","top","left","flexWrap","alignContent","ActulizarDescuentoV2","Carrito","findProd","prod","Codigo","CodBodega","DescuentoMinorista","DescuentoMayorista","carritoNew","JSON","stringify","formatNumber","amount","temp","substring","cantidadTotal","contarProductos","obtenerProductosFiltro","matrizActual","ConsultarBodega","Producto","callback","idProducto","codBodega","rutaVerificacion","getItem","existe","error_message","tiene_caracter_especial","texto","aumentarCantidad","cantidadFisica","elemento","classList","add","setTimeout","remove","comprobarEnter","key","llevarAPedido","ReactPixel","track","cantidadProd","carritoSession","clienteSession","Cliente","tipoClienteSession","TipoCliente","administradorSession","Administrador","header","parse","calcularDescuento","precio","descuento","precioInt","parseInt","cambioPng","replace","second","background","principal","zIndex","antes","escribiendo","onKeyPress","consultarConEnter","autoComplete","removeItem","boxShadow","loading","codigo","imagen","img","innerHTML","comprobarImgProducto","tabIndex","disminuirCantidad","item","borrarElemento","bottom","height","total","calcularTotalCarrito","limpiarCarrito","Carousel","imagenFlechaArriba","imagenFlechaAbajo","imagenFlechaIzquierda","imagenFlechaDerecha","carousel","toCarouselUp","toCarouselDown","srcImagen","displayArriba","displayAbajo","flechaAbajo","flechaArriba","CambioProductos","mercado","srcFlecha","Seccion","BotonCatalogo","TagManager","dataLayer","event","path","textoBoton","to","draggable","Index","radioButtons","modificarRadioButtons","carousels","radioSeleccionado","radioSinSeleccionar","refCarousel1","useRef","refCarousel2","refCarousel3","refCarousel4","refCarousel5","radio1","radio2","radio3","radio4","radio5","scrollToC1","current","scrollIntoView","behavior","scrollToC2","scrollToC3","scrollToC4","scrollToC5","revisar","relativePositionC1","Scroll","getRelativeElementPosition","relativePositionC2","relativePositionC3","relativePositionC4","relativePositionC5","onChangeValue","car","onScroll","onLoad","ref","mostar","setTallas","tallaSeleccionada","setTallaSelecionada","setCantidad","adicion","setAdicion","handleChange","test","res","arreglarPrecio","separacion","split","separacion2","adicionar","cantidadActual","cantidadReal","crear","productoNuevo","PrecioMinorista","PrecioMayorista","adicionarV","cantidadAdicion","undAdicion","auxAdicionarV","swal","text","icon","buttons","cancel","visible","closeModal","confirm","obtenerCantidadTallaProductoActual","label","productoFiltrado","image","estado","ObtenerTallas","index","element","changeSelectedTalla","alignItems","min","cliente","selectedProductId","setSelectedProductId","individualChecked","setIndividualChecked","storedProductId","Mercado","parseFloat","Math","round","almacenarReferencias","productosCatalogoTemp","productId","right","fontWeight","borderColor","listaClases","contains","rotacionFlecha","paddingTop","Descripcion","Footer","rel","NotFoundComponent","redirectTo","size","CategoriasContext","useCategContext","CategoriasProvider","categorias","rutaDinamica","prod1","useParams","obtenerDatosCategoria","categ","getListaMarcas","listaMarcas","RutaLanding","dataConsulta","Ccategorias","Csubcategorias","Cmarcas","Cgeneros","Cnuevos","Cdescuentos","sub","marc","objCateg","Promise","all","getDataCategGene","datosConsulta","getCategorias","categoriaEncontrada","listaCategorias","busquedaTemp","getGeneros","generoEncontrado","listaGeneros","gen","categoriasConsulta","generosConsulta","obtenerSeccion","cateGene","textoCirculo","circulo","circleArray","textContent","trimStart","itemScope","itemType","itemProp","content","property","NotFound","ListaProductos","categoriasHombreState","modificarCategoriasHombreState","estadoBar","closed","CarouselInfo","images","styleImg","objectFit","isMobile","useMediaQuery","interval","controls","wrap","slide","Item","srcSet","img1","media","img2","img3","Mayoristas","Subgenero","barCamisetasMujer","barBlusas","barVestidos","barLycras","barBodys","barCamisas","barDescuentos","listaCamisetasHombre","listaCamisetasHombreBasicas","listaCamisetasHombreEstampadas","listaCamisetasHombreValtimor","listaHoodiesHombre","listaJoggersHombre","listaPantalonetasHombre","listaPolosHombre","listaGorras","listaCamisetasMujer","listaHoodiesMujer","listaJoggersMujer","listaBlusas","listaVestidos","listaLycras","listaBodys","listaCamisas","listaDescuentos","actualizarEstadoBar","GORRAS","Nuevo","Descuento","BASICAS","ESTAMPADAS","VALTIMOR","MUJER","POLOS","BLUSAS","VESTIDOS","LYCRAS","BODYS","CAMISAS","PANTALONETAS","HOODIES_H","HODDIES_M","JOGGER_H","JOGGER_M","actualizarData","obtenerProductos","refBar","categoriaId","generoId","subgeneroId","marcaExcluida","marcaALlamar","SubgeneroALlamar","MarcaExcluida","obtenerData","actualizarLista","queBar","MarcaId","SubgeneroId","estados","sessionStorage","FormRegistro","actualizar","setActualizar","useForm","register","handleSubmit","setValue","watch","errors","formState","departamentos","setDepartamentos","ciudades","setCiudades","vinculado","setVinculado","sucursales","setSucursales","selectSucursal","setSelectSucursal","consulta","setConsulta","timeoutRef","step","consultarDepartamentos","consultarCiudades","consultarVinculado","documento","Sucursales","consultarSucursales","handleChangeSucursal","idSucursal","sucursal","suc","Identificador","llenarFormVinculado","consultado","storageClient","clienteLocal","initialValues","Documento","Apellido","Telefono","Email","fecha","Date","toISOString","Object","keys","forEach","actualizarClienteState","llenarFormSucursal","Snombre","Semail","Stelefono","Spais","Sdepartamento","Sciudad","Sdireccion","Sbarrio","actualizarSucursal","dataSucursal","NuevosDatosUsuario","TipoTercero","onSubmit","Ejecucion","Usuario","placeholder","required","message","minLength","maxLength","pattern","doc","clearTimeout","handleChangeDoc","hidden","validate","dpto","ciudad","pedidoState","modificarPedidoState","useLocation","ModalEpayco","accion","role","ModalAddi","borderRadius","Pedido","metodoFact","setMetodoFact","Pagina","Efecty","EfectyImg","Baloto","BalotoImg","PSE","PSEImg","Credito","CreditoImg","Contraentrega","ContraentregaImg","Consignacion","ConsignacionImg","SuperGiros","SuperGirosImg","Epayco","EpaycoImg","Addi","AddiImg","cambioPagina","stylePagina1","stylePagina2","stylePagina3","EfectyBackground","ConsignacionBackground","ContarEntregaBackground","SuperGirosBackground","EpaycoBackground","totalCarritoState","modificarTotalCarritoState","codProducto","botonPago","letEfecty","letBaloto","letPSE","letCredito","letContraEntrega","letEpayco","letAddi","pagina","actualizarDatosUsuario","respuesta","vaciarCarrito","listaCarrito","listaALlevar","calcularPedido","Cupon","TotalPedido","crearDatosAddi","newItems","sku","quantity","unitPrice","tax","pictureUrl","category","brand","orderId","NumeroOperacion","totalAmount","shippingAmount","totalTaxesAmount","currency","items","client","idType","idNumber","firstName","lastName","email","cellphone","cellphoneCountryCode","address","lineOne","city","shippingAddress","billingAddress","country","pickUpAddress","allyUrlRedirection","logoUrl","callbackUrl","redirectionUrl","geoLocation","latitude","longitude","crearPedido","bancos","verificarCiudadEnvioRR","tipoPago","TipoPago","MedioDePago","Banco","Vendedor","Total","pin","MedioPago","description","external","acepted","rejected","pending","handler","ePayco","checkout","configure","open","auth","body","Link","Respuesta","UrlPse","Referencias","ProductosNoPermitidos","comprobarCupon","valorCupon","Tipo","descripcion","valor","PagoPorConsignacion","tipoConsignacion","mensaje","ciudaR","CostoEnvioRappi","includes","EnvioRR","Recaudo","CostoExtraPorRR","NuevoTotal","flechaIzquierdaPedido","backgroundImage","modificarFacturacion","mod","Facturacion","Remision","alignSelf","scope","paddingRight","max","disabled","align","PaymentConfirmation","setCliente","variableFromLocalStorage","class","faCheckCircle","PaymentRejected","props","status","reference","date","PaymentPending","ModalGeneral","useModal","isModalOpen","openModal","modificarPedidoCorrecto","cerrarModal","disabledRef","handleClick","tipoCliente","CrearRemision","nombreCiudad","linkPersonalizado","linkWhatsapp","tipoPagoNormalizado","link","volverMercado","volver","informacionAdicionalPSE","informacionAdicionalAddi","AjustarPedido","tipopago","j","AjustarValores","isOpen","transition","ModalTransition","BOTTOM_UP","InicioSesion","password","inputs","setInputs","setMensaje","setLoading","HandleChange","history","useHistory","preventDefault","token","revisionDatosUsuarios","dato","crearUsuario","getJWT","Nacimiento","headers","authorization","Creado","registrar","ConsultarUsuario","usuario","username","Identificacion","Id","Ayuda","ayudaState","modificarAyudaState","opcionAyuda","opcion","Envio","Cambios","Landing","modificarlandingState","SetLandingHeader","Video","bool","GetRuta","Product","GetProduct","GetRutaL","carouselx","obtenerSeccion2","Display","Posicion","positionlogo","transform","$","ride","borderLeft","backgroundRepeat","backgroundPosition","Indicadores","Periodo","Ingresos","Meta","Cumplida","Opciobes","ListMeta","GetListMeta","IngresosBancarios","obtenerMetas","DeleterMeta","dangerMode","willDelete","colSpan","MetaCumplida","DetalleMeta","IngresosEfectivo","IngresosTotales","NoVencido","TotalCxC","TotalPorVender","TotalVencido","VencidoMas90Dias","VencidoMax30Dias","VencidoMax60Dias","VencidoMax90Dias","abonosVentasCredito","ventasCredito","Ventas","Vendedor1","Devoluciones","Vendedor2","VendedorWeb","Maquila","obtenerDetalle","dataVentas","labels","datasets","borderWidth","Detalle","SetViewDetalle","ProductRel","ProductAux","f1","foto1","setFoto1","f2","foto2","setFoto2","f3","foto3","setFoto3","ProductoDetalle","descuentoAplicar","imgD","imgD2","VerificarFotos","ready","on","this","addClass","siblings","removeClass","rowGap","columnGap","product","CrudIndicadores","FechaI","FechaF","GetMeta","onFileChanges","CrearMeta","FechaInicial","FechaFinal","Unidades","grupo","S","M","L","XL","XXL","U","ListaUnidades","GetListaUnidades","TotalUnidades","GetTotalUnidades","obtenerUnidades","rowSpan","MenuPrincipal","MenuUnidades","SidebarData","cName","NavBar","menu","setView","sidebar","setSidebar","showSidebar","Dashboard","setMenuView","setAdminHeaderState","NuevaColeccion","vars","PMayorista","PMinorista","varsDesc","InicioDesc","FinDesc","Whatsapp","Plantilla","TipoEnvio","setVars","setVarsDesc","archivos","setArchivos","countClients","setcountClients","insertarArchivo","f","FormData","append","modChange","urlcount","dataCount","count","for","option","uploadFile","files","RegistroTercero","Universidad","registrarParticipante","revision","faltante","Rotacion","Final","vendidas","disponible","rotacion","VendidasDafiti","VendidasMercado","VendidasLinio","VendidasExito","VendidasTotal","LRotacion","GetListaRotacion","GetPeriodo","Costo","GetCosto","Venta","GetVenta","Marketplace","GetMarketplace","Totales","SetTotales","Markeplace","costo","venta","formatterPeso","Intl","NumberFormat","minimumFractionDigits","inventarioInicial","devoluciones","ventasUnidadesCroatta","ventasDafiti","ventasLinio","ventasMercado","ventasExito","ventasTotal","final","contadorR","mediaR","totales","format","RotacionIndex","periodo","mes","anio","RotacionSeller","Periodo2","SetPeriodo2","FechaIni","FechaFin","Fechas","SetFechas","Progreso","SetProgreso","Periodos","VerificarPeriodo","onChangeFecha","fechaI","generarInformeRotacion","io","pr","continuar","completed","bgColor","fechaActual","getFullYear","getMonth","onChangePeriodo_2","paddingBottom","EpaycoButton","NewIndex","subcategoria","nuevo","fondo","Imagenes","insertarArchivos","formData","fetch","method","carga","insertarHost","multiple","accept","file","ul","li","appendChild","createTextNode","listarArchivos","LoginVendedor","userData","setUserData","warning","setWarning","Mayorista","Minorista","descuentos","setDescuentos","colecciones","setColecciones","modificarDescuento","activarDescuentosAuto","desactivarDescuentosAuto","activarDescuentosColeccion","Coleccion","DctoMayorista","DctoMinorista","getColecciones","readOnly","initialize","gtmId","init","pageView","App","parsedBodegaC","Recuperar","localStorageBodegaC","parsedBodega","localStorageBodega","parsedVendedor","localStorageVendedor","nombreItem","from","exact","render","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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C,GAC5BslB,GACE,oBACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,SAAdvlB,GAAmC,WAAXC,GAC1BslB,GACE,mBACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,UAAdvlB,GACFulB,GACE,cACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,YAAdvlB,GACFulB,GACE,gBACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,UAAdvlB,GACFulB,GACE,cACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,SAAdvlB,GACFulB,GACE,aACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,WAAdvlB,GACFulB,GACE,eACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,gBAAdvlB,GAA0C,WAAXC,GACjCslB,GACE,0BACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,WAAdvlB,GAAqC,WAAXC,GAC5BslB,GACE,qBACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,WAAdvlB,GAAqC,UAAXC,GAC5BslB,GACE,oBACA,2BACA,2BACA,QACA,KACA,KACA,MAKY,aAAdvlB,GACW,WAAXC,GACU,aAAVyE,GAEA6gB,GACE,+BACA,2BACA,2BACA,SACA,KACA,KACA,4BAKY,aAAdvlB,GACW,WAAXC,GACc,eAAd8hB,GAEAwD,GACE,iCACA,2BACA,2BACA,SACA,2BACA,2BACA,MAMY,aAAdvlB,GACW,WAAXC,GACc,YAAd8hB,GAEAwD,GACE,8BACA,2BACA,2BACA,SACA,2BACA,2BACA,MAxNc,4CAAH,qDA+NjBxd,qBAAU,WACR,IAAIiL,EAASzC,KAAK0C,MAAM1C,KAAKC,UAAU5R,IAEvC,GAAmC,UAA/BA,EAAW,YAA6B,CAC1CrB,EAAsB,CACpB0C,OAAQ3C,EAAY,OACpB0C,UAAW1C,EAAY,UACvBwC,cAAc,EACdC,iBAAiB,EACjBwD,gBAAgB,EAChBC,gBAAiB,UAEnB,IAAMoP,EAAqBgT,eAAe/S,YAC1C7T,EAAqB,CACnBmQ,QAASvQ,EAAW,QACpBwQ,SAAU7Q,EAAmB,kCAC7B2X,UAAWtX,EAAW,UAC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","file":"static/js/main.695b8087.chunk.js","sourcesContent":["//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport jsPDF from \"jspdf\";\r\nimport \"jspdf-autotable\";\r\n//Zona de importacion de Css.\r\nimport \"./static/css/Filtros/Filtros.css\";\r\nimport { useInsertionEffect } from \"react\";\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nconst Filtros = ({\r\n filtrosState,\r\n modificarFiltrosState,\r\n productosState,\r\n modificarProductosState,\r\n tallasState,\r\n modificarTallasState,\r\n coloresState,\r\n modificarColoresState,\r\n marcasState,\r\n modificarMarcasState,\r\n medidasState,\r\n modificarMedidasState,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n categoriasState,\r\n modificarCategoriasState,\r\n categoriasMujerState,\r\n modificarCategoriasMujerState,\r\n headerState,\r\n modificarHeaderState,\r\n CatalogoState,\r\n actualizarSessionStorage,\r\n subCategoriasState,\r\n modificarSubCategoriasState,\r\n refNoCatalogoState,\r\n modificarRefNoCatalogoState,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n BodegaCatalogos,\r\n setBodegaCatalogos,\r\n checkedProductos,\r\n setCheckedProductos,\r\n}) => {\r\n //State de filtros en donde se extraen el Genero, Categoria, si hay cambio de filtro, si hay cambio de categoria.\r\n const { CambioCategoria, CambioFiltro, Categoria, Genero } = filtrosState;\r\n\r\n //Lo siguientes states son los de cada tipo de filtro aplicable, donde sus propiedades son la lista actual de filtros aplicados\r\n //para cada uno en la posicion de la lista y en la posicion 0 un json con true o false en cada atributo de este.\r\n\r\n //Propiedad para cuando un filtro es seleccionado y asi colocarle una linea mediante animacion.\r\n const seleccionado = {\r\n backgroundSize: \"33% 4px\",\r\n outline: \"none\",\r\n textDecoration: \"none\",\r\n padding: 0,\r\n border: 0,\r\n };\r\n\r\n const [listaCategoriasState, modificarListaCategoriasState] = useState({\r\n Hombre: [],\r\n Mujer: [],\r\n Niño: [],\r\n });\r\n const [listaMedidasState, modificarListaMedidasState] = useState({\r\n Hombre: [],\r\n Mujer: [],\r\n });\r\n const [listaMarcasState, modificarListaMarcasState] = useState([]);\r\n const [listaTallasState, modificarListaTallasState] = useState([]);\r\n const [listaColoresState, modificarListaColoresState] = useState([]);\r\n const [listaGenerosState, modificarListaGenerosState] = useState([]);\r\n const [TypeCat, modificarTypeCat] = useState({ tipo: \"SinPrecio\" });\r\n\r\n // Mostrar / Ocultar, cantidades por talla\r\n const [unidades, setUnidades] = useState(false);\r\n // Unidades minimas para ser agregadas al catalogo\r\n const [minUnidades, setMinUnidades] = useState(1);\r\n\r\n const [Ruta, setRuta] = useState(window.location.pathname);\r\n\r\n //Lleva a la vista de Inicio de Sesion.\r\n const llevarAMinorista = () => {\r\n window.location.href = \"/\";\r\n };\r\n\r\n const obtenerCategoriasApi = () => {\r\n axios\r\n .post(apiUrlState + \"/Api/Categoria/ObtenerCategorias\", {\r\n data: [\r\n {\r\n Estado: true,\r\n DeHombre: true,\r\n },\r\n {\r\n Estado: true,\r\n DeMujer: true,\r\n },\r\n {\r\n Estado: true,\r\n DeNino: true,\r\n },\r\n ],\r\n })\r\n .then((response) => {\r\n if (!response.data[0].error && !response.data[1].error) {\r\n modificarListaCategoriasState({\r\n Hombre: response.data[0].data,\r\n Mujer: response.data[1].data,\r\n Niño: [] //response.data[2].data,\r\n });\r\n modificarListaTallasState(\r\n response.data[0].data[0].GrupoTallas.Tallas\r\n );\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const obtenerMarcasApi = () => {\r\n axios\r\n .post(apiUrlState + \"/Api/Marca/ObtenerMarcas\", {\r\n data: {},\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n let marcas = response.data.data;\r\n let marcasObj = [];\r\n marcas.map((marca) => {\r\n if (marca.Marca !== \"QUEST\" && marca.Marca !== \"FISHBONE\") {\r\n marcasObj.push(marca);\r\n }\r\n });\r\n modificarListaMarcasState(marcasObj);\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const obtenerColoresApi = () => {\r\n axios\r\n .post(apiUrlState + \"/Api/Color/ObtenerColores\", {\r\n data: {},\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarListaColoresState(response.data.data);\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const obtenerGenerosApi = () => {\r\n axios\r\n .post(apiUrlState + \"/Api/Genero/ObtenerGeneros\", {\r\n data: {},\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarListaGenerosState(response.data.data);\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const obtenerMedidas = () => {\r\n // Esto puede hacerse desde la BD, pero no es necesario por el momento\r\n axios\r\n .get(apiUrlState + \"/Api/Inventario/GetMedidas\", {\r\n data: {},\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n let medidasH = response.data.data[0];\r\n let medidasM = response.data.data[1];\r\n let medidasObjH = [];\r\n let medidasObjM = [];\r\n medidasH.map((medida) => {\r\n if (medida !== \"\")\r\n medidasObjH.push({ _id: medida, Medida: medida });\r\n });\r\n medidasM.map((medida) => {\r\n if (medida !== \"\")\r\n medidasObjM.push({ _id: medida, Medida: medida });\r\n });\r\n modificarListaMedidasState({\r\n Hombre: medidasObjH,\r\n Mujer: medidasObjM,\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const comprobarCategoriaSeleccionada = (idCategoria, genero) => {\r\n return categoriasState[genero] === idCategoria;\r\n };\r\n\r\n const comprobarMarcaSeleccionada = (idMarca) => {\r\n for (let i = 0; i < marcasState.length; i++) {\r\n if (marcasState[i] === idMarca) return true;\r\n }\r\n return false;\r\n };\r\n\r\n const comprobarMedidaSeleccionada = (idMedida) => {\r\n for (let i = 0; i < medidasState.length; i++) {\r\n if (medidasState[i] === idMedida) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const comprobarTallaSeleccionada = (idTalla) => {\r\n for (let i = 0; i < tallasState.length; i++) {\r\n if (tallasState[i] === idTalla) return true;\r\n }\r\n return false;\r\n };\r\n\r\n const comprobarColorSeleccionado = (idColor) => {\r\n for (let i = 0; i < coloresState.length; i++) {\r\n if (coloresState[i] === idColor) return true;\r\n }\r\n return false;\r\n };\r\n\r\n const capitalizarPrimeraLetra = (str) => {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n\r\n //Funcion principal:\r\n // Despues obtener toda la lista de productos se verifica si hay seleccionados filtros actuales y se aplican a esta lista.\r\n //En caso de solicitar la seccion new se hace una peticion de ruta diferente.\r\n //Para la aplicacion de los filtros se trataron varios casos segun la cantidad de estos seleccionada.\r\n //(Este proceso se realizara mas adelante en el back, mediante mongo)\r\n const cambioMatriz = async () => {\r\n await modificarFiltrosState({\r\n Genero: Genero,\r\n Categoria: Categoria,\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: filtrosState[\"posicionFiltros\"],\r\n width: filtrosState[\"width\"],\r\n });\r\n let url = apiUrlState + \"/Api/Inventario/GetProductos\";\r\n let data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n Origen: \"Filtro1\"\r\n };\r\n let i;\r\n let categoriaALlamar;\r\n\r\n if (categoriasState.Hombre !== null) {\r\n categoriaALlamar = categoriasState.Hombre;\r\n } else if (categoriasState.Mujer !== null) {\r\n categoriaALlamar = categoriasState.Mujer;\r\n } else if (categoriasState.Niño !== null) {\r\n categoriaALlamar = categoriasState.Niño;\r\n } else if (filtrosState.Categoria === \"New\") {\r\n categoriaALlamar = null;\r\n } else {\r\n categoriaALlamar = \"Descuento\";\r\n }\r\n\r\n if (categoriaALlamar === \"Descuento\") {\r\n data[\"Descuentos\"] = false; // cambio a false para catalogos, revisar\r\n } else if (categoriaALlamar !== null) {\r\n // Para mostrar los bodys en la categoria blusas\r\n if(categoriaALlamar === \"651aec4251072238a0969749\") {\r\n data[\"Categorias\"].push(\r\n { Categoria: categoriaALlamar }, \r\n { Categoria: \"655bad5a1cdc932b9e974a01\" },\r\n { Categoria: \"6583763e8dfd4f911a2d0388\" },\r\n );\r\n } else {\r\n data[\"Categorias\"].push({ Categoria: categoriaALlamar });\r\n }\r\n if (categoriaALlamar !== \"607ed63e521b1c0910a581ac\")\r\n data[\"Generos\"].push({ Genero: Genero });\r\n } else data[\"ProductosNuevos\"] = true;\r\n\r\n for (i = 0; i < marcasState.length; i++) {\r\n data[\"Marcas\"].push({ Marca: marcasState[i] });\r\n }\r\n for (i = 0; i < medidasState.length; i++) {\r\n data[\"Medidas\"].push({ Medidas: medidasState[i] });\r\n }\r\n for (i = 0; i < tallasState.length; i++) {\r\n data[\"Tallas\"].push({ \"Variantes.Tallas.Talla\": tallasState[i] });\r\n }\r\n for (i = 0; i < coloresState.length; i++) {\r\n data[\"Colores\"].push({ \"Variantes.Color\": coloresState[i] });\r\n }\r\n if (subCategoriasState != \"\" && subCategoriasState != undefined) {\r\n // Para mostrar los bodys en la categoria blusas\r\n if(categoriaALlamar === \"651aec4251072238a0969749\") {\r\n data[\"Subcategoria\"].push(\r\n { Subcategoria: subCategoriasState }, \r\n { Subcategoria: \"607ed65a521b1c0910a581bd\" },\r\n { Subcategoria: \"65a53552e8989878c228d032\" } // General\r\n );\r\n } else if(categoriaALlamar === \"607ed63e521b1c0910a581aa\") {\r\n data[\"Subcategoria\"].push(\r\n { Subcategoria: subCategoriasState },\r\n { Subcategoria: \"65a53552e8989878c228d032\" } // General\r\n );\r\n } else {\r\n data[\"Subcategoria\"].push({ Subcategoria: subCategoriasState });\r\n }\r\n }\r\n if(window.location.pathname == \"/Admin/GeneradorDeCatalogos\") {\r\n data.Bodega = BodegaCatalogos;\r\n } else {\r\n data.Bodega = Bodega;\r\n }\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando productos...\",\r\n });\r\n }\r\n\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n [],\r\n ]);\r\n await axios\r\n .post(\r\n url,\r\n {\r\n data,\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n response.data.data,\r\n ]);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"])\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n });\r\n };\r\n\r\n //Limpia los states de todos los filtros para no dejar ninguno seleccionado.\r\n const limpiarFiltros = () => {\r\n if (\r\n categoriasState.Hombre !== null ||\r\n categoriasState.Mujer !== null ||\r\n categoriasState.Niño !== null\r\n )\r\n modificarCategoriasState({ Hombre: null, Mujer: null, Niño: null });\r\n if (tallasState.length > 0) modificarTallasState([]);\r\n if (coloresState.length > 0) modificarColoresState([]);\r\n if (marcasState.length > 0) modificarMarcasState([]);\r\n if (medidasState.length > 0) modificarMedidasState([]);\r\n modificarFiltrosState({\r\n Genero: Genero,\r\n Categoria: \"New\",\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n };\r\n const limpiarFiltros2 = async () => {\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n [],\r\n ]);\r\n await modificarFiltrosState({\r\n Genero: Genero,\r\n Categoria: \"Descuento\",\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n let url = apiUrlState + \"/Api/Inventario/GetProductos\";\r\n let data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: true,\r\n Todo: false,\r\n Origen: \"Filtro2\"\r\n };\r\n if(window.location.pathname == \"/Admin/GeneradorDeCatalogos\") {\r\n data.Bodega = BodegaCatalogos;\r\n } else {\r\n data.Bodega = Bodega;\r\n }\r\n let pro = [];\r\n productosState[1] = pro;\r\n await axios\r\n .post(\r\n url,\r\n {\r\n data,\r\n },\r\n {}\r\n )\r\n .then(async (response) => {\r\n await modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n response.data.data,\r\n ]);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"])\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n });\r\n };\r\n const cerrarFiltros = () => {\r\n modificarFiltrosState({\r\n Genero: filtrosState[\"Genero\"],\r\n Categoria: filtrosState[\"Categoria\"],\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n };\r\n\r\n //Cambia la categoria seleccionada en el state de filtros.\r\n const cambioGenero = (genero) => {\r\n limpiarFiltros();\r\n modificarFiltrosState({\r\n Genero: genero,\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"0%\",\r\n width: \"300px\",\r\n });\r\n };\r\n\r\n function convertirPalabra(palabra) {\r\n // Convertir la primera letra en mayúscula y el resto en minúsculas\r\n palabra = palabra.charAt(0).toUpperCase() + palabra.slice(1).toLowerCase();\r\n \r\n return palabra;\r\n }\r\n\r\n //VERSION SELECCION EXCLUSIVA CATEGORIAS.\r\n //Recibe el evento de seleccion o deseleccion de las categorias de hombre y modifica su state\r\n const onChangeValueCategorias = (categoria, genero) => {\r\n let rutaGenero = genero;\r\n if(categoria.DeHombre && categoria.DeMujer && categoria.Categoria !== \"CAMISETA\") {\r\n rutaGenero = \"Unisex\"\r\n }\r\n if(Ruta !== '/Admin/GeneradorDeCatalogos'){// Ruta === '/'\r\n let auxcategoria = convertirPalabra(categoria.Categoria)\r\n if(rutaGenero === \"Hombre\" && auxcategoria === \"Camiseta\"){\r\n auxcategoria = \"Estampada\"\r\n }\r\n if(auxcategoria === \"Gorra\"){\r\n rutaGenero = \"Unisex\"\r\n }\r\n if(auxcategoria === \"Sueter\"){\r\n auxcategoria = \"Hoodie\"\r\n }\r\n if(auxcategoria === \"Pantaloneta\"){\r\n auxcategoria = \"Pantalonetas\"\r\n }\r\n window.location.href = `/Mercado/${auxcategoria}/${rutaGenero}`\r\n }\r\n\r\n if (productosState[0][\"Busqueda\"]) {\r\n document.getElementById(\"Barra\").value = \"\";\r\n document.getElementById(\"BarraFiltro\").value = \"\";\r\n }\r\n limpiarFiltros();\r\n modificarCategoriasState({ ...categoriasState, [genero]: categoria._id });\r\n modificarListaTallasState(categoria.GrupoTallas.Tallas);\r\n modificarFiltrosState({\r\n Genero: rutaGenero === \"Unisex\"? \"658316d88dfd4f911a2d0379\" : Genero,\r\n Categoria: \"NoNew\",\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n };\r\n\r\n //Recibe el evento de seleccion o deseleccion de las marcas y modifica su state\r\n const onChangeValueMarcas = (marcaId) => {\r\n if (productosState[0][\"Busqueda\"] !== false) {\r\n document.getElementById(\"Barra\").value = \"\";\r\n document.getElementById(\"BarraFiltro\").value = \"\";\r\n limpiarFiltros();\r\n cerrarFiltros();\r\n }\r\n let listaMarcaTemp = marcasState;\r\n if (comprobarMarcaSeleccionada(marcaId))\r\n listaMarcaTemp.splice(listaMarcaTemp.indexOf(marcaId), 1);\r\n else listaMarcaTemp.push(marcaId);\r\n modificarMarcasState(listaMarcaTemp);\r\n modificarFiltrosState({\r\n Genero: Genero,\r\n Categoria: Categoria,\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"0%\",\r\n width: \"300px\",\r\n });\r\n };\r\n\r\n // const [medidasState, modificarMedidasState] = useState([]);\r\n const onChangeValueMedidas = (medidaId) => {\r\n if (productosState[0][\"Busqueda\"] !== false) {\r\n document.getElementById(\"Barra\").value = \"\";\r\n document.getElementById(\"BarraFiltro\").value = \"\";\r\n limpiarFiltros();\r\n cerrarFiltros();\r\n }\r\n let listaMedidaTemp = medidasState;\r\n if (comprobarMedidaSeleccionada(medidaId))\r\n listaMedidaTemp.splice(listaMedidaTemp.indexOf(medidaId), 1);\r\n else listaMedidaTemp.push(medidaId);\r\n modificarMedidasState(listaMedidaTemp);\r\n modificarRefNoCatalogoState([]);\r\n modificarFiltrosState({\r\n Genero: Genero,\r\n Categoria: Categoria,\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"0%\",\r\n width: \"300px\",\r\n });\r\n };\r\n\r\n //Recibe el evento de seleccion o deseleccion de las tallas y modifica su state\r\n const onChangeValueTallas = (tallaId) => {\r\n if (productosState[0][\"Busqueda\"] !== false) {\r\n document.getElementById(\"Barra\").value = \"\";\r\n document.getElementById(\"BarraFiltro\").value = \"\";\r\n limpiarFiltros();\r\n }\r\n let listaTallasTemp = tallasState;\r\n if (comprobarTallaSeleccionada(tallaId))\r\n listaTallasTemp.splice(listaTallasTemp.indexOf(tallaId), 1);\r\n else listaTallasTemp.push(tallaId);\r\n modificarTallasState(listaTallasTemp);\r\n modificarFiltrosState({\r\n Genero: Genero,\r\n Categoria: Categoria,\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"0%\",\r\n width: \"300px\",\r\n });\r\n };\r\n\r\n //Recibe el evento de seleccion o deseleccion de los colores y modifica su state\r\n const onChangeValueColores = (colorId) => {\r\n if (productosState[0][\"Busqueda\"] !== false) {\r\n document.getElementById(\"Barra\").value = \"\";\r\n document.getElementById(\"BarraFiltro\").value = \"\";\r\n limpiarFiltros();\r\n }\r\n let listaColoresTemp = coloresState;\r\n if (comprobarColorSeleccionado(colorId))\r\n listaColoresTemp.splice(listaColoresTemp.indexOf(colorId), 1);\r\n else listaColoresTemp.push(colorId);\r\n modificarColoresState(listaColoresTemp);\r\n modificarFiltrosState({\r\n Genero: Genero,\r\n Categoria: Categoria,\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n };\r\n\r\n const TipoCatalogo = (e, tipoC) => {\r\n modificarTypeCat({ tipo: tipoC });\r\n };\r\n\r\n const calcularDescuento = (precio, descuento) => {\r\n const precioInt = arreglarPrecio(precio);\r\n const descuentoAplicar = parseInt(descuento);\r\n return formatNumber(precioInt - precioInt * (descuentoAplicar / 100));\r\n };\r\n //Retorna el precio ingresado sin signos de peso ni puntos.\r\n const arreglarPrecio = (precio) => {\r\n var separacion = precio;\r\n if (precio.indexOf(\"$\") !== -1) separacion = precio.split(\" \")[1];\r\n var separacion2 = separacion.split(\".\");\r\n return parseInt(separacion2[0] + separacion2[1]);\r\n };\r\n\r\n const formatNumber = (amount) => {\r\n const total = Math.round(amount);\r\n\r\n var temp = total + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n };\r\n\r\n //Elimina del catalogo los productos no seleccionados\r\n const prepararCatalogo = () => {\r\n let catalogo = productosState[1];\r\n let filterCatalogo = catalogo;\r\n if (refNoCatalogoState.length > 0) {\r\n catalogo = productosState[1].filter((producto) => {\r\n let existe = refNoCatalogoState.find(\r\n (prodS) => prodS.Referencia === producto.Referencia\r\n );\r\n if (!existe) return producto;\r\n });\r\n }\r\n filterCatalogo = catalogo.filter(comprobarCantidades);\r\n return filterCatalogo;\r\n };\r\n\r\n /** Comprueba que la referencia tenga la cantidad minima disponible\r\n * para aparecer en el catálogo */\r\n const comprobarCantidades = (producto) => {\r\n let cantidad = 0;\r\n const tallas = producto.Variantes[0].Tallas;\r\n for(const talla of tallas) {\r\n cantidad += talla.Cantidad;\r\n }\r\n return (cantidad >= minUnidades) ? true : false;\r\n }\r\n\r\n const handleCheck = () => {\r\n let check = !checkedProductos;\r\n if(check) {\r\n setCheckedProductos(true);\r\n modificarRefNoCatalogoState([]);\r\n } else {\r\n setCheckedProductos(false);\r\n modificarRefNoCatalogoState(productosState[1]);\r\n }\r\n }\r\n\r\n const reduceImageQuality = async(imagePath, quality) => {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.src = imagePath;\r\n img.onload = () => {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(img, 0, 0);\r\n canvas.toBlob((blob) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onloadend = () => {\r\n const base64data = reader.result;\r\n resolve(base64data);\r\n };\r\n }, 'image/jpeg', quality);\r\n };\r\n img.onerror = (err) => reject(err);\r\n });\r\n }\r\n\r\n //Esta funcion permite generar catalogos dinamicos basados en los filtros de la ruta Catalogo-ventas\r\n const GenerarCatalogo = async () => {\r\n //Genero un nuevo objeto jsPDF para escribir sobre el\r\n const doc = new jsPDF();\r\n //Se crea la imagen del header\r\n\r\n let productosEnCatalogo = prepararCatalogo();\r\n var categoria = productosState[1][0].Categoria.Categoria;\r\n //(productosState[1][0].Categoria !== \"BATA\") ? productosState[1][0].Categoria : productosState[1][1].Categoria;\r\n const MESES = [\r\n \"Enero\",\r\n \"Febrero\",\r\n \"Marzo\",\r\n \"Abril\",\r\n \"Mayo\",\r\n \"Junio\",\r\n \"Julio\",\r\n \"Agosto\",\r\n \"Septiembre\",\r\n \"Octubre\",\r\n \"Noviembre\",\r\n \"Diciembre\",\r\n ];\r\n var fecha = new Date();\r\n var date =\r\n fecha.getDate() +\r\n \"/\" +\r\n MESES[fecha.getMonth()] +\r\n \"/\" +\r\n fecha.getFullYear();\r\n let Header = new Image();\r\n Header.src = \"/img/General/Catalogo-basicas.png\";\r\n let fit = \"\";\r\n medidasState.map((medida) => (fit += \"-\" + medida + \" \"));\r\n //Se definen las dimensiones del header donde 210 es el ancho y 25 es el alto\r\n doc.setTextColor(255, 255, 255);\r\n doc.setFont(\"Helvetica\", \"bold\");\r\n doc.setFontSize(10);\r\n doc.addImage(Header, \"PNG\", 0, 0, 210, 25);\r\n doc.text(\"CATEGORIÁ: \" + productosEnCatalogo[0].Categoria.Categoria, 5, 10);\r\n doc.text(\"GÉNERO: \" + productosEnCatalogo[0].Genero.Genero, 5, 15);\r\n doc.text(\"FÍT: \" + fit, 5, 20);\r\n doc.setFontSize(12);\r\n doc.text(\"Fecha: \" + date, 155, 14);\r\n doc.setTextColor(0, 0, 0);\r\n doc.setFontSize(10);\r\n\r\n //las siguientes variables hacen referencia al alto, top y cambio de pagina respectivamente\r\n var top = 28;\r\n var left = 22.5;\r\n var right = 57;\r\n var pag = 0;\r\n //Se mapea la lista de imagenes que se van a insertar en el archivo pdf\r\n for(const producto of productosEnCatalogo) {\r\n var categoriaInterna = productosEnCatalogo[0].Categoria.Categoria;\r\n if (producto[\"Codigo\"] !== \"salta\") {\r\n //Se toman las keys del json de tallas\r\n //var tallas = Object.keys(producto.productos[0].Cantidad);\r\n var tallas = [];\r\n producto.Variantes.forEach((variante) => {\r\n variante.Tallas.forEach((TallasD) => {\r\n if (TallasD.Cantidad > 0) {\r\n tallas.push(TallasD.Talla);\r\n }\r\n });\r\n });\r\n //var tallas = producto.Variantes[0].Tallas[0].Talla\r\n\r\n var lista = \"\";\r\n\r\n //Se verifica si el tipo de talla es s,m,l,xl\r\n if (\r\n tallas[0] === \"L\" ||\r\n tallas[0] === \"M\" ||\r\n tallas[0] === \"S\" ||\r\n tallas[0] === \"XL\" ||\r\n tallas[0] === \"XXL\"\r\n ) {\r\n }\r\n //tallas = [\"S\",\"M\",\"L\",\"XL\",\"XXL\"];\r\n\r\n //Se insertan las tallas en orden\r\n for (var i = 0; i < tallas.length; i++) {\r\n //if(producto.productos[0].Cantidad[tallas[i]] > 0){\r\n //lista = (lista === \"\") ? lista + tallas[i] : lista +\" / \"+ tallas[i];\r\n lista = lista === \"\" ? lista + tallas[i] : lista + \" / \" + tallas[i];\r\n //}\r\n }\r\n //se pagina el pdf cada 9 prendas\r\n if (pag === 9 || categoriaInterna !== categoria) {\r\n categoria = productosEnCatalogo[0].Categoria.Categoria;\r\n //categoria = \"Hi\";\r\n doc.addPage();\r\n doc.setFontSize(12);\r\n doc.setFont(\"Helvetica\", \"bold\");\r\n doc.setTextColor(255, 255, 255);\r\n doc.addImage(Header, \"PNG\", 0, 0, 210, 25);\r\n doc.text(\"CATALOGO\", 5, 14);\r\n doc.text(\"Fecha: \" + date, 155, 14);\r\n doc.setTextColor(0, 0, 0);\r\n top = 28;\r\n left = 22.5;\r\n pag = 0;\r\n }\r\n pag = pag + 1;\r\n\r\n let pruebaImg = new Image();\r\n doc.setFontSize(10);\r\n pruebaImg.src = \"/img/Productos/Ref \" + producto.Referencia + \".jpg\";\r\n const imageData = await reduceImageQuality(pruebaImg.src, 0.7);\r\n doc.addImage(imageData, \"JPEG\", left, top + 5, 40, 62);\r\n doc.setFont(\"Helvetica\", \"bold\");\r\n doc.text(\"Ref \" + producto.Referencia, left, top + 72);\r\n doc.setFont(\"Helvetica\", \"\");\r\n doc.text(\"Tallas disponibles: \" + lista, left, top + 77);\r\n if (TypeCat.tipo === \"Mayorista\") {\r\n if (producto[\"DescuentoMayorista\"] === 0) {\r\n doc.text(\r\n \"Mayorista: $\" + producto[\"PrecioMayorista\"],\r\n left,\r\n top + 82\r\n );\r\n } else {\r\n doc.setTextColor(255, 0, 0);\r\n doc.text(\r\n \"Mayorista -\" + producto.DescuentoMayorista + \"% DTO\",\r\n left,\r\n top + 82\r\n );\r\n doc.text(\r\n \"$\" +\r\n calcularDescuento(\r\n producto.PrecioMayorista,\r\n producto.DescuentoMayorista\r\n ),\r\n left,\r\n top + 87\r\n );\r\n doc.setTextColor(0, 0, 0);\r\n }\r\n } else if (TypeCat.tipo === \"Minorista\") {\r\n if (producto.DescuentoMinorista === 0) {\r\n doc.text(\r\n \"Unidad: $\" + producto[\"PrecioMinorista\"], // se quita el formatNumber()\r\n left,\r\n top + 82\r\n );\r\n } else {\r\n doc.setTextColor(255, 0, 0);\r\n doc.text(\r\n \"Unidad -\" + producto.DescuentoMinorista + \"% DTO\",\r\n\r\n left,\r\n top + 82\r\n );\r\n doc.text(\r\n \"$\" +\r\n calcularDescuento(\r\n producto.PrecioMinorista,\r\n producto.DescuentoMinorista\r\n ),\r\n left,\r\n top + 87\r\n );\r\n doc.setTextColor(0, 0, 0);\r\n }\r\n ///doc.text(\"Unidad: \"+producto[\"PrecioMinorista\"], left, top+77);\r\n } else if (TypeCat.tipo === \"Todo\") {\r\n if (producto[\"DescuentoMayorista\"] === 0) {\r\n doc.text(\r\n \"Mayorista: $\" + producto[\"PrecioMayorista\"],\r\n left,\r\n top + 82\r\n );\r\n } else {\r\n doc.setTextColor(255, 0, 0);\r\n doc.text(\r\n \"Mayorista -\" + producto.DescuentoMayorista + \"% DTO\",\r\n left,\r\n top + 82\r\n );\r\n doc.text(\r\n \"$\" +\r\n calcularDescuento(\r\n producto.PrecioMayorista,\r\n producto.DescuentoMayorista\r\n ),\r\n right,\r\n top + 82\r\n );\r\n doc.setTextColor(0, 0, 0);\r\n }\r\n if (producto.DescuentoMinorista === 0) {\r\n doc.text(\"Unidad: $\" + producto[\"PrecioMinorista\"], left, top + 87);\r\n } else {\r\n doc.setTextColor(255, 0, 0);\r\n doc.text(\r\n \"Unidad -\" + producto.DescuentoMinorista + \"% DTO\",\r\n\r\n left,\r\n top + 87\r\n );\r\n doc.text(\r\n \"$\" +\r\n calcularDescuento(\r\n producto.PrecioMinorista,\r\n producto.DescuentoMinorista\r\n ),\r\n right,\r\n top + 87\r\n );\r\n doc.setTextColor(0, 0, 0);\r\n }\r\n } else {\r\n }\r\n\r\n //doc.text(\"Mayorista: \"+producto[\"PrecioMinorista\"], left, top+77);\r\n //doc.text(\"Mayorista: \"+producto[\"PrecioMayorista\"], left, top+77);\r\n //doc.text(\"Unidad: \"+producto[\"PrecioMinorista\"], left, top+82);\r\n\r\n //Se reinician las dimensiones al cambiar de linea\r\n if (left === 147.5) {\r\n left = 22.5;\r\n top = top + 87;\r\n } else {\r\n left = left + 62.5;\r\n }\r\n if (right === 182) {\r\n right = 57;\r\n } else {\r\n right = right + 62.5;\r\n }\r\n }\r\n };\r\n //Genera el archivo pdf descargable\r\n doc.save(\r\n \"CATÁLOGO-\" +\r\n productosState[1][0].Categoria.Categoria +\r\n \" \" +\r\n productosState[1][0].Genero.Genero +\r\n fit +\r\n \" \" +\r\n TypeCat.tipo +\r\n \".pdf\"\r\n );\r\n //doc.save(\"Catalogo-\"+categoria+\"S.pdf\");\r\n };\r\n\r\n // Al iniciar el componente se pregunta si hay cambios de categoria o en los filtros para traer la lista de productos.\r\n // Se esta ejecuntando dos veces, revisar \r\n useEffect(() => {\r\n if (CambioFiltro) {\r\n // console.log(\"first\", CambioCategoria, CambioFiltro)\r\n cambioMatriz(Categoria, Genero);\r\n }\r\n if (\r\n listaCategoriasState[\"Hombre\"].length === 0 ||\r\n listaCategoriasState[\"Mujer\"].length === 0 \r\n // || listaCategoriasState[\"Niño\"].length === 0\r\n ){ obtenerCategoriasApi(); }\r\n if (listaMarcasState.length === 0) obtenerMarcasApi();\r\n if (listaColoresState.length === 0) obtenerColoresApi();\r\n if (listaGenerosState.length === 0) obtenerGenerosApi();\r\n if (\r\n listaMedidasState[\"Hombre\"].length === 0 ||\r\n listaMedidasState[\"Mujer\"].length === 0\r\n ) { obtenerMedidas(); }\r\n },[CambioFiltro]); // ,[CambioCategoria, CambioFiltro]\r\n\r\n const obtenerCatalogo = () => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Generando PDF...\",\r\n });\r\n }\r\n let productosEnCatalogo = prepararCatalogo();\r\n var categoria = productosState[1][0].Categoria.Categoria;\r\n // console.log(\"productosEnCatalogo: \", productosEnCatalogo)\r\n axios\r\n .post(apiUrlState + \"/Api/Catalogo/catalogos\", {\r\n data: {\r\n productosEnCatalogo: productosEnCatalogo,\r\n medidas: medidasState,\r\n TypeCat: TypeCat,\r\n categoria: categoria,\r\n genero: productosState[1][0].Genero.Genero,\r\n unidades: unidades,\r\n },\r\n })\r\n .then((response) => {\r\n if (true) {\r\n const linkSource = `data:application/pdf;base64,${response.data.catalog}`\r\n const downloadLink = document.createElement(\"a\")\r\n const fileName = \"CATÁLOGO-\" +\r\n productosState[1][0].Categoria.Categoria +\r\n \" \" +\r\n productosState[1][0].Genero.Genero +\r\n \" \" +\r\n TypeCat.tipo\r\n \r\n\r\n downloadLink.href = linkSource\r\n downloadLink.download = fileName\r\n downloadLink.click()\r\n }\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Descargando Catalogo...\",\r\n });\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n // modificarErrorState({\r\n // Error: true,\r\n // Mensaje: \"Error al recuperar datos del servidor\",\r\n // });\r\n }\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Descargando Catalogo...\",\r\n });\r\n console.log(\"Error: \", err)\r\n });\r\n };\r\n\r\n\r\n return (\r\n <>\r\n {window.location.pathname == \"/Admin/GeneradorDeCatalogos\"? (\r\n
\r\n
\r\n \r\n Bodega\r\n

\r\n
\r\n
\r\n {\r\n localStorage.setItem(\"BodegaCatalogos\", \"3\");\r\n window.location.reload();\r\n }}\r\n >\r\n Principal\r\n \r\n {\r\n localStorage.setItem(\"BodegaCatalogos\", \"2\");\r\n window.location.reload();\r\n }}\r\n >\r\n Cali\r\n \r\n {\r\n localStorage.setItem(\"BodegaCatalogos\", \"4\");\r\n window.location.reload();\r\n }}\r\n >\r\n Bogotá\r\n \r\n {\r\n localStorage.setItem(\"BodegaCatalogos\", \"6\");\r\n window.location.reload();\r\n }}\r\n >\r\n Preventa\r\n \r\n
\r\n\r\n
\r\n\r\n ) : null }\r\n
\r\n /*Ruta !== '/' ? limpiarFiltros() :*/ window.location.href = \"/Mercado/Nuevo/New\"}\r\n >\r\n Nuevo\r\n \r\n
\r\n
\r\n Ruta !== '/' ? limpiarFiltros2() : window.location.href = \"/Mercado/Descuento/Todo\" }\r\n >\r\n Rebajas🔥\r\n \r\n
\r\n \r\n
\r\n {listaGenerosState.map((genero) =>\r\n genero.Estado ? (\r\n cambioGenero(genero._id)}\r\n >\r\n {capitalizarPrimeraLetra(genero.Genero.toLowerCase())}\r\n \r\n ) : null\r\n )}\r\n
\r\n \r\n
\r\n {/* {Genero === \"607ed653521b1c0910a581b8\" ? ( */}\r\n {false ? (\r\n
\r\n {listaCategoriasState[\"Hombre\"].map((categoria) => (\r\n
\r\n onChangeValueCategorias(categoria, \"Hombre\")}\r\n >\r\n {capitalizarPrimeraLetra(categoria.Categoria.toLowerCase())}s\r\n \r\n
\r\n ))}\r\n
\r\n ) : Genero === \"607ed653521b1c0910a581b9\" ? (\r\n \r\n {listaCategoriasState[\"Mujer\"].map((categoria) => (\r\n
\r\n onChangeValueCategorias(categoria, \"Mujer\")}\r\n >\r\n {capitalizarPrimeraLetra(categoria.Categoria.toLowerCase())}s\r\n \r\n
\r\n ))}\r\n
\r\n ) : Genero === \"607ed653521b1c0910a581ba\" ? (\r\n
\r\n {listaCategoriasState[\"Niño\"].map((categoria) => (\r\n
\r\n onChangeValueCategorias(categoria, \"Niño\")}\r\n >\r\n {categoria.Categoria}s\r\n \r\n
\r\n ))}\r\n
\r\n ) : null}\r\n \r\n { \r\n Ruta !== '/'? \r\n <>\r\n
\r\n
\r\n
\r\n
\r\n \r\n Marcas\r\n

\r\n
\r\n
\r\n
\r\n {listaMarcasState.map((marca) =>\r\n marca.Estado ? (\r\n
\r\n onChangeValueMarcas(marca._id)}\r\n >\r\n {capitalizarPrimeraLetra(marca.Marca.toLowerCase())}\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 Fit\r\n

\r\n
\r\n
\r\n {Genero === \"607ed653521b1c0910a581b8\"\r\n ? listaMedidasState[\"Hombre\"].map((medida) => (\r\n
\r\n onChangeValueMedidas(medida._id)}\r\n >\r\n {capitalizarPrimeraLetra(medida.Medida.toLowerCase())}\r\n \r\n
\r\n ))\r\n : Genero === \"607ed653521b1c0910a581b9\"\r\n ? listaMedidasState[\"Mujer\"].map((medida) => (\r\n
\r\n onChangeValueMedidas(medida._id)}\r\n >\r\n {capitalizarPrimeraLetra(medida.Medida.toLowerCase())}\r\n \r\n
\r\n ))\r\n : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Tallas\r\n

\r\n
\r\n
\r\n {listaTallasState.map((talla) => (\r\n onChangeValueTallas(talla.Talla.Nombre)}\r\n alt={talla.Talla.Nombre}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Filtros/\" +\r\n talla.Talla.Nombre +\r\n (comprobarTallaSeleccionada(talla.Talla.Nombre)\r\n ? \"-negro.png\"\r\n : \"-blanco.png\");\r\n }}\r\n />\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Colores\r\n

\r\n
\r\n
\r\n {listaColoresState.map((color) => (\r\n onChangeValueColores(color._id)}\r\n title={color.Color}\r\n >\r\n ))}\r\n
\r\n
\r\n cerrarFiltros()}\r\n >\r\n Aplicar filtros\r\n

\r\n \r\n limpiarFiltros()}\r\n >\r\n Borrar filtros\r\n

\r\n
: null\r\n }\r\n \r\n {CatalogoState || headerState[\"BotonCatalogo\"] ? (\r\n <>\r\n \r\n
\r\n TipoCatalogo(e, \"Mayorista\")}\r\n />\r\n \r\n Mayorista\r\n \r\n
\r\n
\r\n TipoCatalogo(e, \"Minorista\")}\r\n />\r\n \r\n Minorista\r\n \r\n
\r\n
\r\n TipoCatalogo(e, \"Todo\")}\r\n />\r\n \r\n Ambos\r\n \r\n
\r\n
\r\n TipoCatalogo(e, \"SinPrecio\")}\r\n />\r\n \r\n Sin precio\r\n \r\n
\r\n
\r\n
\r\n setUnidades(!unidades)}\r\n />\r\n \r\n Cantidades\r\n \r\n
\r\n
\r\n handleCheck()}\r\n />\r\n \r\n Seleccionar\r\n \r\n
\r\n
\r\n setMinUnidades(e.target.value)}\r\n />\r\n \r\n
\r\n \r\n {/* GenerarCatalogo()}\r\n >\r\n Generar Catalogo\r\n

*/}\r\n obtenerCatalogo()}\r\n >\r\n Generar Catalogo\r\n

\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Filtros;\r\n","import { useState, useContext, createContext } from 'react'\r\n\r\nconst GlobalContext = createContext();\r\n\r\n/** contexto que contiene las variables de uso para preventa */\r\nexport const useGlobalContext = () => {\r\n return useContext(GlobalContext)\r\n}\r\n\r\nexport const GlobalStatesProvider = ({ children }) => {\r\n\r\n /**State de cliente en donde se guarda toda la informacion actual de este,\r\n * si ha inciado sesion o si esta en registro.*/\r\n const [clienteState, modificarClienteState] = useState({\r\n Registro: false,\r\n Accion: \"Recuperar\",\r\n Sesion: false,\r\n TipoDocumento: \"\",\r\n NumeroDocumento: \"\",\r\n Nombres: \"\",\r\n Apellidos: \"\",\r\n Sucursal: \"0\",\r\n Correo: \"\",\r\n Celular: \"\",\r\n FechaNacimiento: \"\",\r\n Genero: \"\",\r\n Pais: \"\",\r\n Ciudad: \"\",\r\n Departamento: \"\",\r\n Direccion: \"\",\r\n Barrio: \"\",\r\n });\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n//Zona de importacion de componentes internos.\r\nimport Filtros from \"../Mercado/Filtros\";\r\nimport \"./static/css/NewHeader.css\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nfunction Header({\r\n ViewDetalle,\r\n carrito,\r\n modificarCarritoState,\r\n headerState,\r\n modificarHeaderState,\r\n productosState,\r\n modificarProductosState,\r\n filtrosState,\r\n modificarFiltrosState,\r\n tallasState,\r\n modificarTallasState,\r\n coloresState,\r\n modificarColoresState,\r\n marcasState,\r\n modificarMarcasState,\r\n medidasState,\r\n modificarMedidasState,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n // clienteState,\r\n // modificarClienteState,\r\n categoriasState,\r\n modificarCategoriasState,\r\n administradorState,\r\n modificarAdministradorState,\r\n actualizarSessionStorage,\r\n landingState,\r\n LandingHeader,\r\n subCategoriasState,\r\n modificarSubCategoriasState,\r\n AdminHeaderState,\r\n refNoCatalogoState,\r\n modificarRefNoCatalogoState,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n BodegaCatalogos,\r\n setBodegaCatalogos,\r\n checkedProductos,\r\n setCheckedProductos,\r\n}) {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n const [consultaLupa, setConsultaLupa] = useState({ value: \"block\" });\r\n //const [AdminState, setAdminStare] = useState(\"SecondHeaderadm\");\r\n\r\n const [RutaActual, setRutaActual] = useState(window.location.pathname);\r\n\r\n const { srcLogo, srcBolsa, displayBuscar, displayMenu, color } = headerState;\r\n let presionEnter = false;\r\n const propiedadesFiltro = {\r\n position: \"absolute\",\r\n top: \"0%\",\r\n left: filtrosState[\"posicionFiltros\"],\r\n cursor: \"pointer\",\r\n width: filtrosState[\"width\"],\r\n display: \"flex\",\r\n flexDirection: \"colum\",\r\n flexWrap: \"wrap\",\r\n alignContent: \"flex-start\",\r\n justifyContent: \"flex-start\",\r\n };\r\n\r\n let colorActual; //Color de la pagina (Blanco - Negro)\r\n let menuActual; //Imagen del menu actual (Blanco - Negro)\r\n let inicioSesionActual; //Imagen de inicio de sesion (Blanco - Negro)\r\n if (color === \"blanco\") {\r\n colorActual = \"rgb(255, 255, 255)\";\r\n menuActual = \"/img/Header/iconos/menuBlanco.webp\";\r\n inicioSesionActual = \"/img/Header/botones/inicioSesion-blanco.webp\";\r\n } else {\r\n colorActual = \"rgb(0, 0, 0)\";\r\n menuActual = \"/img/Header/iconos/menuNegro.webp\";\r\n inicioSesionActual = \"/img/Header/botones/inicioSesion-negro.webp\";\r\n }\r\n\r\n //Retorna el total de productos añadidos en cantidades.\r\n const contarProductos = () => {\r\n let cantidad = 0;\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n cantidad += carrito[\"Carrito\"][i][\"Cantidad\"];\r\n }\r\n return cantidad;\r\n };\r\n\r\n //Se realiza la peticion para la verificacion de un producto solicitando el descuento correcto\r\n const ActulizarDescuento = async () => {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando Tu Pedido\",\r\n });\r\n for (let i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n await axios\r\n .get(\r\n apiUrlState +\r\n \"/Api/Inventario/BusquedaPalabraRef2/\" +\r\n carrito[\"Carrito\"][i].Codigo +`/${Bodega}`,\r\n {}\r\n )\r\n .then((response) => {\r\n if (response.data[0].existe) {\r\n if (headerState[\"Cliente\"] === \"Minoristas\") {\r\n carrito[\"Carrito\"][i].DescuentoMinorista =\r\n response.data[0].data[0].DescuentoMinorista;\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n actualizarSessionStorage(\"TipoCliente\", \"Minoristas\");\r\n } else {\r\n carrito[\"Carrito\"][i].DescuentoMayorista =\r\n response.data[0].data[0].DescuentoMayorista;\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n actualizarSessionStorage(\"TipoCliente\", \"Mayoristas\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n };\r\n\r\n /** Actualiza el carrito con los descuentos actuales */\r\n const ActulizarDescuentoV2 = async () => {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando Tu Pedido\",\r\n });\r\n await axios.post(apiUrlState + \"/Api/Inventario/VerificarDescuentos\", {Carrito: carrito[\"Carrito\"]})\r\n .then((response)=>{\r\n if(!response.data.error) {\r\n for (let i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n const findProd = response.data.data.find(\r\n prod => \r\n prod.Referencia === carrito[\"Carrito\"][i].Codigo\r\n && prod.CodBodega === carrito[\"Carrito\"][i].Bodega\r\n );\r\n carrito[\"Carrito\"][i].DescuentoMinorista = findProd.DescuentoMinorista;\r\n carrito[\"Carrito\"][i].DescuentoMayorista = findProd.DescuentoMayorista;\r\n }\r\n if (headerState[\"Cliente\"] === \"Minoristas\") {\r\n\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n actualizarSessionStorage(\"TipoCliente\", \"Minoristas\");\r\n } else {\r\n\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n actualizarSessionStorage(\"TipoCliente\", \"Mayoristas\");\r\n }\r\n\r\n }\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n };\r\n\r\n //Retorna el total del carrito a pagar segun los productos añadidos.\r\n const calcularTotalCarrito = () => {\r\n let total = 0;\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n total +=\r\n carrito[\"Carrito\"][i][\"Cantidad\"] *\r\n (headerState[\"Cliente\"] === \"Minoristas\"\r\n ? carrito[\"Carrito\"][i][\"DescuentoMinorista\"] !== 0\r\n ? calcularDescuento(\r\n carrito[\"Carrito\"][i][\"PrecioMinorista\"],\r\n carrito[\"Carrito\"][i][\"DescuentoMinorista\"]\r\n )\r\n : carrito[\"Carrito\"][i][\"PrecioMinorista\"]\r\n : carrito[\"Carrito\"][i][\"DescuentoMayorista\"] !== 0\r\n ? calcularDescuento(\r\n carrito[\"Carrito\"][i][\"PrecioMayorista\"],\r\n carrito[\"Carrito\"][i][\"DescuentoMayorista\"]\r\n )\r\n : carrito[\"Carrito\"][i][\"PrecioMayorista\"]);\r\n }\r\n return parseInt(total);\r\n };\r\n\r\n //Añade el punto de miles al precio ingresado y lo retorna.\r\n const formatNumber = (amount) => {\r\n var temp = amount + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n };\r\n\r\n //Variable que contiene la cantidad total de productos en el carrito.\r\n const cantidadTotal = contarProductos();\r\n\r\n // //Obtenemos el token JWT de la api rest de Croatta.\r\n // const getJWT = async (callback) => {\r\n // await axios\r\n // .post(apiUrlState + \"/auth/get-token/\", {\r\n // username: \"CroattaWeb\",\r\n // password: \"Since2013\",\r\n // })\r\n // .then((response) => {\r\n // if (errorState[\"Error\"]) {\r\n // modificarErrorState({\r\n // Error: false,\r\n // Mensaje: \"Todo bien, todo correcto\",\r\n // });\r\n // }\r\n // callback(response.data);\r\n // })\r\n // .catch(function (err) {\r\n // if (!errorState[\"Error\"]) {\r\n // modificarErrorState({\r\n // Error: true,\r\n // Mensaje: \"Error al recuperar datos del servidor\",\r\n // });\r\n // }\r\n // });\r\n // };\r\n\r\n //Obtiene una lista de productos, ya sea de lo New o filtrado por palabra de busqueda.\r\n const obtenerProductosFiltro = async (palabra) => {\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n [],\r\n ]);\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Obteniendo tu busqueda...\",\r\n });\r\n }\r\n if (palabra !== \"\") {\r\n await axios\r\n .get(apiUrlState + \"/Api/Inventario/BusquedaPalabraRef/\" + palabra +`/${Bodega}`, {})\r\n .then((response) => {\r\n let matrizActual = [];\r\n for (var i = 0; i < response.data[0].data.length; i += 1) {\r\n matrizActual.push(response.data[0].data[i]);\r\n }\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: palabra !== \"\", irInicio: true },\r\n matrizActual,\r\n ]);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: false },\r\n [],\r\n ]);\r\n });\r\n } else {\r\n let data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: true,\r\n Descuentos: false,\r\n Todo: false,\r\n Origen: \"Header\"\r\n\r\n };\r\n await axios\r\n .post(\r\n apiUrlState + \"/Api/Inventario/GetProductos\",\r\n {\r\n data,\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n console.log(\"por aqui pase\");\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n response.data.data,\r\n ]);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: false },\r\n [],\r\n ]);\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n //Se realiza la peticion para la verificacion de un producto solicitando la cantidad de este en bodega.\r\n const ConsultarBodega = async (Producto, callback) => {\r\n let idProducto = Producto[\"id\"];\r\n const codBodega = Producto.Bodega;\r\n // idProducto = idProducto.slice(-1) === \"U\"? idProducto.slice(0, -1) : idProducto\r\n // let posMarca = Producto.Nombre.indexOf(\"CROATTA\");\r\n // let Marca = posMarca == -1? \"DK\" : \"CROATTA\";\r\n\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Agregando producto...\",\r\n });\r\n }\r\n // Si hay un vendedor logueado, verifica cantidades disponibles en bodega 2 (Preventa)\r\n let rutaVerificacion = \"/Api/Manager/VerificarProducto/\" + idProducto\r\n if (localStorage.getItem(\"Vendedor\")) {\r\n console.log(\"Entra aca\", Bodega)\r\n rutaVerificacion = \"/Api/Manager/VerificarProducto/\" + idProducto + `/${codBodega}`\r\n }\r\n await axios\r\n .get(\r\n apiUrlState + rutaVerificacion,\r\n {}\r\n )\r\n .then((response) => {\r\n if (response.data.existe) {\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(response.data.cantidad);\r\n } else {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n callback(-100);\r\n }\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.error_message,\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n }\r\n });\r\n };\r\n\r\n //Limpia los states de todos los filtros para no dejar ninguno seleccionado.\r\n // const limpiarFiltros = () => {\r\n // if (categoriasState.Hombre !== null || categoriasState.Mujer !== null) {\r\n // modificarCategoriasState({ Hombre: null, Mujer: null });\r\n // }\r\n // if (tallasState[1].length > 0) {\r\n // modificarTallasState([\r\n // {\r\n // S: false,\r\n // M: false,\r\n // L: false,\r\n // XL: false,\r\n // XXL: false,\r\n // U: false,\r\n // t30: false,\r\n // t32: false,\r\n // t34: false,\r\n // t36: false,\r\n // t6: false,\r\n // t8: false,\r\n // t10: false,\r\n // t12: false,\r\n // },\r\n // [],\r\n // ]);\r\n // }\r\n // if (coloresState[1].length > 0)\r\n // modificarColoresState([\r\n // {\r\n // Azul: false,\r\n // Blanco: false,\r\n // Negro: false,\r\n // Rojo: false,\r\n // Violeta: false,\r\n // Gris: false,\r\n // Naranja: false,\r\n // Verde: false,\r\n // Rosa: false,\r\n // Amarillo: false,\r\n // },\r\n // [],\r\n // ]);\r\n // if (marcasState[1].length > 0)\r\n // modificarMarcasState([\r\n // { Croatta: false, Valtimor: false, Sambarlot: false, Fishbone: false },\r\n // [],\r\n // ]);\r\n // };\r\n\r\n //Determina si el texto ingresado contiene un caracter especial.\r\n const tiene_caracter_especial = (texto) => {\r\n var letras =\r\n \"abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789 \";\r\n texto = texto.toLowerCase();\r\n for (var i = 0; i < texto.length; i++) {\r\n if (letras.indexOf(texto.charAt(i), 0) === -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n //Detecta el evento de escritura y realiza la busqueda por filtro basado en este texto y validandolo.\r\n const escribiendo = (e) => {\r\n setConsultaLupa({ value: e.target.value });\r\n if (tiene_caracter_especial(e.target.value)) {\r\n var elemento = document.getElementById(e.target.id);\r\n elemento.value = e.target.value.replace(\r\n e.target.value[e.target.value.length - 1],\r\n \"\"\r\n );\r\n } else if (headerState[\"displayMenu\"] === \"Index\") {\r\n console.log(\"Buscar 1\")\r\n actualizarSessionStorage(\"TipoCliente\", \"Minoristas\");\r\n //modificarCarritoState({\"Accion\": \"Activo\" , \"Carrito\": []});\r\n //modificarHeaderState({\"srcLogo\": recursosUrlState + \"/img/Header/logos/logo-negro.webp\", \"srcBolsa\": recursosUrlState + \"/img/Header/iconos/bolso-negro.webp\", \"srcFlecha\": recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.webp\", \"displayBuscar\": \"in-line\", \"displayMenu\": \"Productos\", \"color\": \"negro\", \"Seccion\": \"New\", \"Cliente\": \"Minoristas\", \"BotonCatalogo\": headerState[\"BotonCatalogo\"]})\r\n // window.location.href = \"/Mercado\";\r\n } else if (headerState[\"displayMenu\"] !== \"Index\") {\r\n console.log(\"Buscar 2\")\r\n var antes = e.target.value;\r\n if (tiene_caracter_especial(antes)) {\r\n e.target.value = \"\";\r\n }\r\n /**\r\n * else{\r\n setTimeout(function() {\r\n if(antes === e.target.value && antes[0] !== \" \"){\r\n //limpiarFiltros();\r\n obtenerProductosFiltro(antes);\r\n }\r\n }, 500)\r\n }\r\n * \r\n */\r\n }\r\n };\r\n\r\n //Disminuye la cantidad de un producto en el carrito en 1 segun la talla ingresada de este.\r\n //Actualiza el state del carrito y tambien el sesion storage.\r\n const disminuirCantidad = (producto) => {\r\n if (!presionEnter) {\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n if (producto[\"id\"] === carrito[\"Carrito\"][i][\"id\"]) {\r\n if (carrito[\"Carrito\"][i][\"Cantidad\"] - 1 === 0)\r\n carrito[\"Carrito\"].splice(i, 1);\r\n else carrito[\"Carrito\"][i][\"Cantidad\"] -= 1;\r\n }\r\n }\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n }\r\n presionEnter = false;\r\n };\r\n\r\n //Se realiza la validacion en bodega para aumentar en 1 la cantidad en carrito de este, si no existe lo crea.\r\n //Actualiza el state del carrito y tambien el localStorage.\r\n const aumentarCantidad = async (producto, e) => {\r\n if (!presionEnter) {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Disminuyendo producto...\",\r\n });\r\n }\r\n await ConsultarBodega(producto, function (cantidadFisica) {\r\n if (producto[\"Cantidad\"] + 1 <= cantidadFisica) {\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n if (producto[\"id\"] === carrito[\"Carrito\"][i][\"id\"]) {\r\n carrito[\"Carrito\"][i][\"Cantidad\"] += 1;\r\n }\r\n }\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n modificarSpinnerState({ Desplegar: false, Texto: \"\" });\r\n } else {\r\n var elemento = document.getElementById(e.target.id + \"Cantidad\");\r\n elemento.classList.add(\"hint--always\");\r\n elemento.classList.add(\"hint--bottom\");\r\n elemento.classList.add(\"hint--bounce\");\r\n setTimeout(function () {\r\n elemento.classList.remove(\"hint--always\");\r\n elemento.classList.remove(\"hint--bottom\");\r\n elemento.classList.remove(\"hint--bounce\");\r\n }, 1000);\r\n }\r\n });\r\n }\r\n presionEnter = false;\r\n };\r\n\r\n //Elimina un producto del state del carrito.\r\n const borrarElemento = (producto) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Agregando producto...\",\r\n });\r\n }\r\n carrito[\"Carrito\"] = carrito[\"Carrito\"].filter(\r\n (item) => item[\"id\"] !== producto[\"id\"]\r\n );\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n modificarSpinnerState({ Desplegar: false, Texto: \"\" });\r\n };\r\n\r\n //Comprueba mediante el evento ingresado si la tecla presionada es 'Enter', y actualiza la variable global.\r\n const comprobarEnter = (e) => {\r\n presionEnter = e.key === \"Enter\";\r\n };\r\n\r\n //Limpia el carrito de todos los prudctos añadidos, dejando el state vacio.\r\n const limpiarCarrito = () => {\r\n const carritoNew = [];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n };\r\n\r\n //Lleva a la vista de pedido.\r\n const llevarAPedido = async () => {\r\n await axios.post(apiUrlState + \"/Api/Inventario/GuardarCarrito\", carrito);\r\n await ActulizarDescuentoV2();\r\n if (headerState[\"Cliente\"] === \"Mayoristas\") {\r\n ReactPixel.track(\"Carrito\", \"AddToCart\");\r\n var cantidadProd = 0;\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n cantidadProd += carrito[\"Carrito\"][i][\"Cantidad\"];\r\n }\r\n if (cantidadProd >= 6) {\r\n window.location.href = \"/Pedido\";\r\n } else\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Recuerda que debes añadir 6 unidades o más\",\r\n });\r\n } else {\r\n window.location.href = \"/Pedido\";\r\n }\r\n };\r\n\r\n //Lleva a la vista de Ayuda.\r\n const llevarAAyuda = () => {\r\n window.location.href = \"/Ayuda\";\r\n };\r\n\r\n //Lleva a la vista de Inicio de Sesion.\r\n // const llevarAIniciarSesion = () => {\r\n // window.location.href = \"/InicioSesion\";\r\n // };\r\n //Lleva a la vista de Inicio de Sesion.\r\n const llevarAMayorista = () => {\r\n window.location.href = \"/Mayoristas\";\r\n };\r\n //Lleva a la vista de Inicio de Sesion.\r\n const llevarAMinorista = () => {\r\n window.location.href = \"/\";\r\n };\r\n\r\n //Se hace una revision en la sessionStorage para recuperar el carrito y llevar a la vista de mercado, si es mayorista y no esta logueado lleva a inicio de sesion.\r\n const CambioProductos = (mercado) => {\r\n actualizarSessionStorage(\"TipoCliente\", mercado);\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.webp\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: mercado,\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n if (mercado === \"Minoristas\") {\r\n window.location.href = \"/Mercado\";\r\n } else window.location.href = \"/Mayoristas\";\r\n };\r\n\r\n //Desplegar menu de filtros en Header\r\n const desplegarFiltros = () => {\r\n modificarFiltrosState({\r\n Genero: filtrosState[\"Genero\"],\r\n Categoria: filtrosState[\"Categoria\"],\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"0%\",\r\n width: \"300px\",\r\n });\r\n };\r\n\r\n //Compactar menu de filtros en Header\r\n const cerrarFiltros = () => {\r\n modificarFiltrosState({\r\n Genero: filtrosState[\"Genero\"],\r\n Categoria: filtrosState[\"Categoria\"],\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n };\r\n\r\n //Cierra la sesion del cliente, limpiando los datos del clienteState y tambien actualizando el localStorage.\r\n const cerrarSesion = () => {\r\n let cierreDeSesion = {\r\n Registro: false,\r\n Accion: \"Activo\",\r\n Sesion: false,\r\n TipoDocumento: \"\",\r\n NumeroDocumento: \"\",\r\n Nombres: \"\",\r\n Apellidos: \"\",\r\n Correo: \"\",\r\n Celular: \"\",\r\n FechaNacimiento: \"\",\r\n Genero: \"\",\r\n Pais: \"\",\r\n Ciudad: \"\",\r\n Departamento: \"\",\r\n Direccion: \"\",\r\n Barrio: \"\",\r\n };\r\n localStorage.setItem(\"Cliente\", JSON.stringify(cierreDeSesion));\r\n modificarClienteState(cierreDeSesion);\r\n };\r\n //Esta funcion comprueba si existe la imagen en version jpg del producto, en caso que no, se lanza la imagen de respaldo general 'base'.\r\n\r\n const comprobarImgProducto = (codigo, talla) => {\r\n const imagen = document.getElementById(codigo + talla);\r\n let img = document.createElement(\"img\");\r\n img.src = recursosUrlState + \"/img/Productos/Ref \" + codigo + \".webp\";\r\n imagen.innerHTML =\r\n \"\" +\r\n      codigo +\r\n      \"\";\r\n img.onerror = function () {\r\n imagen.innerHTML =\r\n \"\" +\r\n        codigo +\r\n        \"\";\r\n };\r\n };\r\n\r\n const logOutVendedor = () => {\r\n localStorage.removeItem(\"Vendedor\");\r\n modificarVendedorState(null);\r\n localStorage.removeItem(\"Bodega\");\r\n setBodega(\"3\");\r\n localStorage.removeItem(\"Carrito\");\r\n window.location.href = \"/Preventa\";\r\n }\r\n\r\n const setearBodega = (bodega) => {\r\n console.log(\"Seteando bodega\")\r\n setBodega(bodega);\r\n localStorage.setItem(\"Bodega\", bodega);\r\n window.location.reload();\r\n }\r\n\r\n //Actualiza los states de cliente, el header y el carrito mediante el sessionStorage en caso de reinicio de pagina.\r\n useEffect(() => {\r\n const carritoSession = localStorage.Carrito;\r\n const clienteSession = localStorage.Cliente;\r\n const tipoClienteSession = localStorage.TipoCliente;\r\n const administradorSession = localStorage.Administrador;\r\n if (\r\n headerState[\"Cliente\"] === \"\" &&\r\n tipoClienteSession !== \"undefined\" &&\r\n tipoClienteSession !== \"\"\r\n ) {\r\n var header = JSON.parse(JSON.stringify(headerState));\r\n header[\"Cliente\"] = tipoClienteSession;\r\n modificarHeaderState(header);\r\n }\r\n if (\r\n carrito[\"Accion\"] === \"Recuperar\" &&\r\n carritoSession !== \"undefined\" &&\r\n carritoSession !== undefined &&\r\n carritoSession !== \"\"\r\n ) {\r\n modificarCarritoState({\r\n Accion: \"Activo\",\r\n Carrito: JSON.parse(carritoSession),\r\n });\r\n }\r\n if (\r\n administradorState[\"Recuperar\"] &&\r\n administradorSession !== \"undefined\" &&\r\n administradorSession !== undefined &&\r\n administradorSession !== \"\"\r\n ) {\r\n modificarAdministradorState(JSON.parse(administradorSession));\r\n }\r\n if (\r\n clienteState[\"Accion\"] === \"Recuperar\" &&\r\n clienteSession !== undefined &&\r\n clienteSession !== \"undefined\" &&\r\n clienteSession !== \"\"\r\n ) {\r\n modificarClienteState({\r\n ...JSON.parse(clienteSession),\r\n Accion: \"Activo\",\r\n });\r\n }\r\n });\r\n\r\n //Retorna el precio ingresado sin signos de peso ni puntos.\r\n // const arreglarPrecio = (precio) => {\r\n // var separacion = precio;\r\n // if (precio.indexOf(\"$\") !== -1) separacion = precio.split(\" \")[1];\r\n // var separacion2 = separacion.split(\".\");\r\n // return parseInt(separacion2[0] + separacion2[1]);\r\n // };\r\n\r\n const calcularDescuento = (precio, descuento) => {\r\n const precioInt = parseInt(precio);\r\n const descuentoAplicar = parseInt(descuento);\r\n return precioInt - precioInt * (descuentoAplicar / 100);\r\n };\r\n const consultar = (e) => {\r\n if (consultaLupa.value !== \"\") {\r\n obtenerProductosFiltro(consultaLupa.value);\r\n cerrarFiltros();\r\n }\r\n };\r\n const consultarConEnter = (e) => {\r\n if (e.key === \"Enter\" && consultaLupa.value !== \"\") {\r\n obtenerProductosFiltro(consultaLupa.value);\r\n cerrarFiltros();\r\n }\r\n };\r\n //Esta funcion reemplaza el 'webp' por 'png' en un string\r\n const cambioPng = (url) => {\r\n return url.replace(/webp/g, \"png\");\r\n };\r\n\r\n const opaco =\r\n headerState[\"Cliente\"] === \"Mayoristas\" ||\r\n LandingHeader[\"Estado\"] ||\r\n ViewDetalle[\"Estado\"]\r\n ? \"rgb(255, 255, 255, 255)\"\r\n : \"rgb(0, 0, 0, 0)\";\r\n\r\n return (\r\n <>\r\n {headerState[\"Cliente\"] === \"Mayoristas\" ? (\r\n \r\n \r\n
\r\n

\r\n Venta mayorista a partir de 6 prendas\r\n

\r\n
\r\n\r\n
\r\n {/*
\r\n \r\n Follow Us:\r\n

\r\n
*/}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n ) : (\r\n
\r\n \r\n
\r\n

\r\n Envíos gratis a partir de $100.000 - Aplica compras minoristas\r\n

\r\n
\r\n
\r\n {/*
\r\n \r\n Follow Us:\r\n

\r\n
*/}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n cerrarFiltros()}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-izquierda-negro.png\";\r\n }}\r\n />\r\n
\r\n {/*
\r\n \r\n
*/}\r\n\r\n
\r\n
\r\n \r\n Buscar\r\n \r\n escribiendo(e)}\r\n onKeyPress={(e) => consultarConEnter(e)}\r\n autoComplete=\"off\"\r\n >\r\n\r\n consultar(e)}\r\n >\r\n
\r\n\r\n {\r\n RutaActual !== \"/Mayoristas\" && !vendedor ?
\r\n \r\n
: null\r\n }\r\n \r\n
\r\n
\r\n {\r\n RutaActual !== \"/Mayoristas\" ? desplegarFiltros()}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + cambioPng(menuActual);\r\n }}\r\n > : null\r\n }\r\n \r\n \r\n\r\n \r\n\r\n
\r\n {localStorage.getItem(\"Vendedor\") ? (\r\n <>\r\n \r\n \r\n \r\n ) : null}\r\n\r\n \r\n llevarAMayorista()}\r\n >\r\n MAYORISTAS\r\n \r\n \r\n\r\n
llevarAAyuda()} style={{ padding: \"0.2rem\" }}>\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Header/botones/ayuda-negro.png\";\r\n }}\r\n >\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(srcBolsa);\r\n }}\r\n >\r\n \r\n {cantidadTotal}\r\n

\r\n
\r\n
\r\n
\r\n \r\n {cantidadTotal > 0 ? (\r\n
    \r\n
    \r\n {carrito[\"Carrito\"].map((producto) => (\r\n \r\n
    \r\n \r\n \r\n comprobarImgProducto(\r\n producto[\"Codigo\"],\r\n producto[\"Talla\"]\r\n )\r\n }\r\n />\r\n
    \r\n
    \r\n

    \r\n Categoria: {producto[\"Categoria\"]}\r\n

    \r\n

    \r\n Codigo: {producto[\"Codigo\"]}\r\n

    \r\n

    \r\n Talla: {producto[\"Talla\"]}\r\n

    \r\n

    \r\n Precio Und:{\" \"}\r\n {formatNumber(\r\n headerState[\"Cliente\"] === \"Mayoristas\"\r\n ? producto.DescuentoMayorista !== 0\r\n ? calcularDescuento(\r\n producto[\"PrecioMayorista\"],\r\n producto[\"DescuentoMayorista\"]\r\n )\r\n : producto[\"PrecioMayorista\"]\r\n : producto.DescuentoMinorista !== 0\r\n ? calcularDescuento(\r\n producto[\"PrecioMinorista\"],\r\n producto[\"DescuentoMinorista\"]\r\n )\r\n : producto[\"PrecioMinorista\"]\r\n )}\r\n

    \r\n \r\n {\r\n return comprobarEnter(e);\r\n }}\r\n tabIndex=\"-1\"\r\n style={{\r\n fontSize: 25,\r\n marginLeft: 15,\r\n marginRight: 10,\r\n marginBottom: 10,\r\n }}\r\n onClick={() => disminuirCantidad(producto)}\r\n >\r\n -\r\n \r\n \r\n {producto[\"Cantidad\"]}\r\n

    \r\n {\r\n return comprobarEnter(e);\r\n }}\r\n tabIndex=\"-1\"\r\n style={{\r\n fontSize: 25,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n marginBottom: 10,\r\n }}\r\n id={producto[\"Codigo\"] + producto[\"Talla\"]}\r\n onClick={(e) =>\r\n aumentarCantidad(producto, e)\r\n }\r\n >\r\n +\r\n \r\n borrarElemento(producto)}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Header/botones/papelera-negro.png\";\r\n }}\r\n />\r\n
    \r\n
    \r\n
\r\n \r\n ))}\r\n
\r\n \r\n
\r\n
\r\n

\r\n Total: $ {formatNumber(calcularTotalCarrito())}\r\n

\r\n
\r\n\r\n
\r\n limpiarCarrito()}\r\n >\r\n LIMPIAR\r\n

\r\n
\r\n
\r\n llevarAPedido()}\r\n >\r\n PAGAR\r\n

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

    \r\n ¿Aún no añades nada al carrito?\r\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 Header;\r\n","//Zona de importacion de componentes externos.\r\nimport React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport TagManager from \"react-gtm-module\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n\r\nconst Carousel = ({\r\n carousel,\r\n toCarouselUp,\r\n toCarouselDown,\r\n headerState,\r\n modificarHeaderState,\r\n recursosUrlState,\r\n actualizarSessionStorage,\r\n}) => {\r\n //Se extraen los atributos del state carousel.\r\n const { id, srcImagen, displayArriba, displayAbajo } = carousel;\r\n\r\n //Se obtiene el color en el que debe estar el header actual.\r\n const { color } = headerState;\r\n\r\n //Se definen las variables para los colores de botones y textos del carousel segun la constante de color actual.\r\n let colorActual;\r\n let imagenFlechaArriba;\r\n let imagenFlechaAbajo;\r\n let imagenFlechaIzquierda;\r\n let imagenFlechaDerecha;\r\n\r\n //Segun la constante del color se definen que recursos se utilizaran diferenciandose solamente en color (blanco o negro) de la imagen.\r\n if (color === \"blanco\") {\r\n colorActual = \"rgb(255, 255, 255)\";\r\n imagenFlechaArriba =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-arriba-blanco.webp\";\r\n imagenFlechaAbajo =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-abajo-blanco.webp\";\r\n imagenFlechaIzquierda =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-izquierda-blanco.webp\";\r\n imagenFlechaDerecha =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-blanco.webp\";\r\n } else {\r\n colorActual = \"rgb(0, 0, 0)\";\r\n imagenFlechaArriba =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-arriba-negro.webp\";\r\n imagenFlechaAbajo =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-abajo-negro.webp\";\r\n imagenFlechaIzquierda =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-izquierda-negro.webp\";\r\n imagenFlechaDerecha =\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.webp\";\r\n }\r\n\r\n //Propiedades de las flechas de arriba y abajo del carousel, el display se define mediante la proiedad traida en el state carousel.\r\n const flechaAbajo = {\r\n height: 15,\r\n width: 26,\r\n display: displayAbajo,\r\n cursor: \"pointer\",\r\n };\r\n\r\n const flechaArriba = {\r\n height: 15,\r\n width: 26,\r\n display: displayArriba,\r\n cursor: \"pointer\",\r\n };\r\n\r\n //Mediante el parametro url se determina la url de respuesta sustituyendo el 'webp' por el 'png'.\r\n /*\r\n const cambioPng = (url) => {\r\n return url.replace(/webp/g,\"png\")\r\n }*/\r\n\r\n //Esta funcion cambia el mercado al que se dirigira o esta actualmente, entre minoristas o mayoristas. Tambien modificando la sessionStorage de este.\r\n //Con el objetivo que tipo de mercado mostrarle al cliente en todo momento.\r\n //Finalmente lleva a la ruta de Mercado.\r\n const CambioProductos = (mercado) => {\r\n actualizarSessionStorage(\"TipoCliente\", mercado);\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.png\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: mercado,\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n if (mercado === \"Mayoristas\") {\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: \"Carrito\",\r\n path: \"/Mayoristas\",\r\n },\r\n });\r\n //ReactPixel.pageView();\r\n ReactPixel.track(\"BotonMayoristas\", \"ViewContent\");\r\n }\r\n if (mercado === \"Minoristas\") {\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: \"Carrito\",\r\n path: \"/Minoristas\",\r\n },\r\n });\r\n ReactPixel.track(\"BotonMinoristas\", \"ViewContent\");\r\n }\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.webp\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: mercado,\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n };\r\n\r\n //Mediante el parametro url se determina la url de respuesta sustituyendo el 'webp' por el 'png'.\r\n const cambioPng = (url) => {\r\n return url.replace(/webp/g, \"png\");\r\n };\r\n\r\n const textoBoton = () => {\r\n switch (id) {\r\n case 1:\r\n return \"Nuevo\";\r\n case 2:\r\n return \"Superior\";\r\n case 3:\r\n return \"Inferior\";\r\n case 4:\r\n return \"Accesorios\";\r\n default:\r\n return \"Ñunga\";\r\n }\r\n };\r\n\r\n /* La estructura del carousel es la siguiente:\r\n -Carousel 1, 2, 3, 4-\r\n Imagen central (banner)\r\n Boton central\r\n Flechas de mayorista o minorista (Version Web) / Botones de mayorista o minorista (Version Movil)\r\n\r\n -Carousel 5-\r\n Visualizacion de botones de redes sociales \r\n */\r\n return (\r\n
\r\n {id < 5 ? (\r\n
\r\n CambioProductos(\"Minoristas\")}>\r\n
\r\n \r\n
\r\n \r\n CambioProductos(\"Minoristas\")}>\r\n
\r\n \r\n
\r\n \r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(imagenFlechaArriba);\r\n }}\r\n />\r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(imagenFlechaAbajo);\r\n }}\r\n />\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = srcImagen + \"Web.png\";\r\n }}\r\n />\r\n CambioProductos(\"Minoristas\")}>\r\n
\r\n \r\n MINORISTAS\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(imagenFlechaIzquierda);\r\n }}\r\n />\r\n
\r\n \r\n CambioProductos(\"Mayoristas\")}\r\n >\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(imagenFlechaDerecha);\r\n }}\r\n />\r\n \r\n MAYORISTAS\r\n

\r\n
\r\n \r\n
\r\n\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = srcImagen + \"Movil.png\";\r\n }}\r\n />\r\n \r\n CambioProductos(\"Minoristas\")}\r\n >\r\n MINORISTAS\r\n

\r\n \r\n \r\n CambioProductos(\"Mayoristas\")}\r\n >\r\n MAYORISTAS\r\n

\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = srcImagen + \"Web.png\";\r\n }}\r\n />\r\n
\r\n\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = srcImagen + \"Movil.png\";\r\n }}\r\n />\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(imagenFlechaArriba);\r\n }}\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(imagenFlechaAbajo);\r\n }}\r\n >\r\n

\r\n BÚSCANOS EN REDES\r\n

\r\n
\r\n \r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(\r\n recursosUrlState + \"/img/Index/web/botones/fb.png\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(\r\n recursosUrlState + \"/img/Index/web/botones/ins.png\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(\r\n recursosUrlState + \"/img/Index/web/botones/pint.png\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(\r\n recursosUrlState + \"/img/Index/web/botones/wpp.png\"\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 Carousel;\r\n","//Zona de importacion de componentes externos.\r\nimport React, { useRef, useEffect } from \"react\";\r\nimport { Scroll } from \"scroll-utility\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n\r\n//Zona de importacion de componentes internos.\r\nimport Carousel from \"./Carousel\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nfunction Index({\r\n headerState,\r\n modificarHeaderState,\r\n radioButtons,\r\n modificarRadioButtons,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n // clienteState,\r\n // modificarClienteState,\r\n actualizarSessionStorage,\r\n}) {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n /*Los siguientes states son para la lista de banner (Carousel) que se visualiza en el Index\r\n En total son 5 carousels, cada uno tiene los siguientes atributos:\r\n id: Numero de referencia.\r\n srcImagen: ubicacion de almacenamiento de cada imagen del carousel.\r\n srcBoton: ubicacion de almacenamiento de cada imagen del boton central de cada carousel.\r\n displayArriba: estado de visualizacion de la flecha que apunta hacia arriba en cada carousel.\r\n displayAbajo: estado de visualizacion de la flecha que apunta hacia abajo en cada carousel.\r\n */\r\n ReactPixel.track(\"Home\", \"ViewContent\");\r\n const carousels = [\r\n {\r\n id: 1,\r\n srcImagen: recursosUrlState + \"/img/Index/web/carousel/fondo1\",\r\n displayArriba: \"none\",\r\n displayAbajo: \"in-line\",\r\n },\r\n {\r\n id: 2,\r\n srcImagen: recursosUrlState + \"/img/Index/web/carousel/fondo2\",\r\n displayArriba: \"in-line\",\r\n displayAbajo: \"in-line\",\r\n },\r\n {\r\n id: 3,\r\n srcImagen: recursosUrlState + \"/img/Index/web/carousel/fondo3\",\r\n displayArriba: \"in-line\",\r\n displayAbajo: \"in-line\",\r\n },\r\n {\r\n id: 4,\r\n srcImagen: recursosUrlState + \"/img/Index/web/carousel/fondo4\",\r\n displayArriba: \"in-line\",\r\n displayAbajo: \"in-line\",\r\n },\r\n {\r\n id: 5,\r\n srcImagen: recursosUrlState + \"/img/Index/web/carousel/fondo5\",\r\n displayArriba: \"in-line\",\r\n displayAbajo: \"none\",\r\n },\r\n ];\r\n\r\n const radioSeleccionado = {\r\n width: \"15px\",\r\n height: \"15px\",\r\n };\r\n\r\n const radioSinSeleccionar = {\r\n width: \"11px\",\r\n height: \"11px\",\r\n };\r\n\r\n //Contantes que hacen referencia a cada uno de los carousels del index, con el que se hara uso para la manipulacion de su visualizacion.\r\n const refCarousel1 = useRef(null);\r\n const refCarousel2 = useRef(null);\r\n const refCarousel3 = useRef(null);\r\n const refCarousel4 = useRef(null);\r\n const refCarousel5 = useRef(null);\r\n\r\n //Se extraen los atributos del state radioButtons, en total 5, cada uno con sus propiedades css.\r\n const { radio1, radio2, radio3, radio4, radio5 } = radioButtons;\r\n\r\n //Funciones para el desplazamiento auntomatico de los carousels con estilo de movimiento smooth.\r\n //Esta funcion hace que el scroll del usuario se desplace automáticamentehacia el carousel indicado.\r\n const scrollToC1 = () =>\r\n refCarousel1.current.scrollIntoView({ behavior: \"smooth\" });\r\n const scrollToC2 = () =>\r\n refCarousel2.current.scrollIntoView({ behavior: \"smooth\" });\r\n const scrollToC3 = () =>\r\n refCarousel3.current.scrollIntoView({ behavior: \"smooth\" });\r\n const scrollToC4 = () =>\r\n refCarousel4.current.scrollIntoView({ behavior: \"smooth\" });\r\n const scrollToC5 = () =>\r\n refCarousel5.current.scrollIntoView({ behavior: \"smooth\" });\r\n\r\n //Toma la posicion relativa de cada uno de los carousels por la que mediante esta, determina cual esta viendo el usuario actualmente y\r\n //se cambian las propiedades del state de radioButtons para determinar cual es el que se debe mostrar seleccionado.\r\n const revisar = () => {\r\n const relativePositionC1 = new Scroll().getRelativeElementPosition(\"#car1\");\r\n const relativePositionC2 = new Scroll().getRelativeElementPosition(\"#car2\");\r\n const relativePositionC3 = new Scroll().getRelativeElementPosition(\"#car3\");\r\n const relativePositionC4 = new Scroll().getRelativeElementPosition(\"#car4\");\r\n const relativePositionC5 = new Scroll().getRelativeElementPosition(\"#car5\");\r\n if (\r\n (relativePositionC5 === 1 && relativePositionC4 !== -0) ||\r\n relativePositionC5 === -0\r\n ) {\r\n modificarRadioButtons({\r\n radio1:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio2:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio3:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio4:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio5: recursosUrlState + \"/img/Index/web/botones/radioSeleccion.webp\",\r\n });\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.webp\",\r\n displayBuscar: \"none\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: \"\",\r\n Cliente: headerState[\"Cliente\"],\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n } else if (\r\n (relativePositionC4 === 1 &&\r\n relativePositionC3 !== -0 &&\r\n relativePositionC5 !== -0) ||\r\n relativePositionC4 === -0\r\n ) {\r\n modificarRadioButtons({\r\n radio1:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio2:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio3:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio4: recursosUrlState + \"/img/Index/web/botones/radioSeleccion.webp\",\r\n radio5:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n });\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Header/logos/logo-blanco.webp\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-derecha-blanca.webp\",\r\n displayBuscar: \"none\",\r\n displayMenu: \"Index\",\r\n color: \"blanco\",\r\n Seccion: \"Accesorios\",\r\n Cliente: headerState[\"Cliente\"],\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n } else if (\r\n (relativePositionC3 === 1 &&\r\n relativePositionC2 !== -0 &&\r\n relativePositionC4 !== -0) ||\r\n relativePositionC3 === -0\r\n ) {\r\n modificarRadioButtons({\r\n radio1:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio2:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio3: recursosUrlState + \"/img/Index/web/botones/radioSeleccion.webp\",\r\n radio4:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio5:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n });\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Header/logos/logo-blanco.webp\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-derecha-blanca.webp\",\r\n displayBuscar: \"none\",\r\n displayMenu: \"Index\",\r\n color: \"blanco\",\r\n Seccion: \"Inferior\",\r\n Cliente: headerState[\"Cliente\"],\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n } else if (\r\n (relativePositionC2 === 1 &&\r\n relativePositionC1 !== -0 &&\r\n relativePositionC3 !== -0) ||\r\n relativePositionC2 === -0\r\n ) {\r\n modificarRadioButtons({\r\n radio1:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio2: recursosUrlState + \"/img/Index/web/botones/radioSeleccion.webp\",\r\n radio3:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio4:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio5:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n });\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Header/logos/logo-blanco.webp\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-derecha-blanca.webp\",\r\n displayBuscar: \"none\",\r\n displayMenu: \"Index\",\r\n color: \"blanco\",\r\n Seccion: \"Superior\",\r\n Cliente: headerState[\"Cliente\"],\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n } else if (\r\n (relativePositionC1 === 1 && relativePositionC2 !== -0) ||\r\n relativePositionC1 === -0\r\n ) {\r\n modificarRadioButtons({\r\n radio1: recursosUrlState + \"/img/Index/web/botones/radioSeleccion.webp\",\r\n radio2:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio3:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio4:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n radio5:\r\n recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.webp\",\r\n });\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Header/logos/logo-blanco.webp\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-derecha-blanca.webp\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"blanco\",\r\n Seccion: \"New\",\r\n Cliente: headerState[\"Cliente\"],\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n }\r\n };\r\n\r\n //Mediante el parametro car se determina a que carousel se debe desplazar automaticamente.\r\n const onChangeValue = (car) => {\r\n switch (car) {\r\n case \"1\":\r\n scrollToC1();\r\n break;\r\n case \"2\":\r\n scrollToC2();\r\n break;\r\n case \"3\":\r\n scrollToC3();\r\n break;\r\n case \"4\":\r\n scrollToC4();\r\n break;\r\n case \"5\":\r\n scrollToC5();\r\n break;\r\n default:\r\n scrollToC1();\r\n break;\r\n }\r\n };\r\n\r\n //Mediante el parametro url se determina la url de respuesta sustituyendo el 'webp' por el 'png'.\r\n const cambioPng = (url) => {\r\n return url.replace(/webp/g, \"png\");\r\n };\r\n const CambioProductos = (mercado) => {\r\n actualizarSessionStorage(\"TipoCliente\", mercado);\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.png\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: mercado,\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.webp\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: mercado,\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n };\r\n //Funcion que se ejecuta cada vez que se inicia este componente.\r\n //Si al iniciar la ruta del Index el campo de registro se encutra hablitado en true, este\r\n //se cambia a false y se actualiza tambien en el localStorage.\r\n useEffect(() => {\r\n CambioProductos(\"Minoristas\");\r\n if (headerState[\"Cliente\"] !== \"\") {\r\n modificarHeaderState({\r\n ...headerState,\r\n Cliente: \"\",\r\n });\r\n actualizarSessionStorage(\"TipoCliente\", \"\");\r\n }\r\n if (clienteState[\"Registro\"]) {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n Registro: false,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n Registro: false,\r\n });\r\n }\r\n }, []);\r\n\r\n /* La vista del Index se compone de la siguiente estructura: \r\n Carousel 1 (LO NUEVO)\r\n Carousel 2 (SUPERIOR)\r\n Carousel 3 (INFERIOR)\r\n Carousel 4 (ACCESORIOS)\r\n Carousel 5 (REDES)\r\n A cada carousel se le envia el correspondiente del state de carousels.\r\n Tambien se maneja el sistema de radioButtons.\r\n */\r\n return (\r\n revisar()}\r\n onLoad={() => revisar()}\r\n >\r\n
\r\n scrollToC2()}\r\n headerState={headerState}\r\n modificarHeaderState={modificarHeaderState}\r\n recursosUrlState={recursosUrlState}\r\n modificarRecursosUrlState={modificarRecursosUrlState}\r\n actualizarSessionStorage={actualizarSessionStorage}\r\n />\r\n
\r\n\r\n
\r\n scrollToC1()}\r\n toCarouselDown={() => scrollToC3()}\r\n headerState={headerState}\r\n modificarHeaderState={modificarHeaderState}\r\n recursosUrlState={recursosUrlState}\r\n modificarRecursosUrlState={modificarRecursosUrlState}\r\n actualizarSessionStorage={actualizarSessionStorage}\r\n />\r\n
\r\n\r\n
\r\n scrollToC2()}\r\n toCarouselDown={() => scrollToC4()}\r\n headerState={headerState}\r\n modificarHeaderState={modificarHeaderState}\r\n recursosUrlState={recursosUrlState}\r\n modificarRecursosUrlState={modificarRecursosUrlState}\r\n actualizarSessionStorage={actualizarSessionStorage}\r\n />\r\n
\r\n\r\n
\r\n scrollToC3()}\r\n toCarouselDown={() => scrollToC5()}\r\n headerState={headerState}\r\n modificarHeaderState={modificarHeaderState}\r\n recursosUrlState={recursosUrlState}\r\n modificarRecursosUrlState={modificarRecursosUrlState}\r\n actualizarSessionStorage={actualizarSessionStorage}\r\n />\r\n
\r\n\r\n
\r\n scrollToC4()}\r\n headerState={headerState}\r\n modificarHeaderState={modificarHeaderState}\r\n recursosUrlState={recursosUrlState}\r\n modificarRecursosUrlState={modificarRecursosUrlState}\r\n actualizarSessionStorage={actualizarSessionStorage}\r\n />\r\n
\r\n
\r\n
\r\n onChangeValue(\"1\")}\r\n style={\r\n radio1.indexOf(\"Seleccion\") !== -1\r\n ? radioSeleccionado\r\n : radioSinSeleccionar\r\n }\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(radio1);\r\n }}\r\n />\r\n
\r\n
\r\n onChangeValue(\"2\")}\r\n style={\r\n radio2.indexOf(\"Seleccion\") !== -1\r\n ? radioSeleccionado\r\n : radioSinSeleccionar\r\n }\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(radio2);\r\n }}\r\n />\r\n
\r\n
\r\n onChangeValue(\"3\")}\r\n style={\r\n radio3.indexOf(\"Seleccion\") !== -1\r\n ? radioSeleccionado\r\n : radioSinSeleccionar\r\n }\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(radio3);\r\n }}\r\n />\r\n
\r\n
\r\n onChangeValue(\"4\")}\r\n style={\r\n radio4.indexOf(\"Seleccion\") !== -1\r\n ? radioSeleccionado\r\n : radioSinSeleccionar\r\n }\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(radio4);\r\n }}\r\n />\r\n
\r\n
\r\n onChangeValue(\"5\")}\r\n style={\r\n radio5.indexOf(\"Seleccion\") !== -1\r\n ? radioSeleccionado\r\n : radioSinSeleccionar\r\n }\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(radio5);\r\n }}\r\n />\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Index;\r\n","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\nimport swal from \"sweetalert\";\r\n\r\n//Zona de importacion de componentes internos.\r\nimport axios from \"axios\";\r\n\r\n//Zona de importacion de Css.\r\nimport \"./static/css/GrupoTallas/Tallas.css\";\r\n\r\nconst GrupoTallas = ({\r\n ViewDetalle,\r\n carrito,\r\n modificarCarritoState,\r\n producto,\r\n errorState,\r\n modificarErrorState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n headerState,\r\n modificarHeaderState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n actualizarSessionStorage,\r\n tallasState,\r\n modificarTallasState,\r\n mostar,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n}) => {\r\n const [tallas, setTallas] = useState([]);\r\n const [tallaSeleccionada, setTallaSelecionada] = useState([]);\r\n const [cantidad, setCantidad] = useState(0);\r\n const [adicion, setAdicion] = useState(0);\r\n\r\n /** Control del input de cantidades para que no se puedan ingresar mas de dos digitos */\r\n const handleChange = (e) => {\r\n const value = e.target.value;\r\n if (/^\\d{0,3}$/.test(value)) { // Limitar a 3 dígitos\r\n setAdicion(value);\r\n }\r\n };\r\n\r\n //Se realiza la peticion para la verificacion de un producto solicitando la cantidad de este en bodega.\r\n const ConsultarBodega = async (idProducto, codBodega) => {\r\n let res = -100;\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Agregando producto...\",\r\n });\r\n }\r\n // if (idProducto.indexOf(\"GU\") !== -1 || idProducto.indexOf(\"GFU\") !== -1)\r\n // if (idProducto.slice(-1) === \"U\")\r\n // idProducto = idProducto.slice(0, -1);\r\n\r\n\r\n let rutaVerificacion = \"/Api/Manager/VerificarProducto/\" + idProducto\r\n if (localStorage.getItem(\"Vendedor\")) {\r\n rutaVerificacion = \"/Api/Manager/VerificarProducto/\" + idProducto + `/${codBodega}`\r\n }\r\n\r\n await axios\r\n .get(\r\n apiUrlState + rutaVerificacion,\r\n {},\r\n {}\r\n )\r\n .then((response) => {\r\n if (response.data.existe) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"])\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n res = response.data.cantidad;\r\n return response.data.cantidad;\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"])\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Talla no disponible para esta referencia.\",\r\n });\r\n return -100;\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.error_message,\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n }\r\n });\r\n return res;\r\n };\r\n\r\n //Retorna el precio ingresado sin signos de peso ni puntos.\r\n const arreglarPrecio = (precio) => {\r\n var separacion = precio;\r\n if (precio.indexOf(\"$\") !== -1) separacion = precio.split(\" \")[1];\r\n var separacion2 = separacion.split(\".\");\r\n return parseInt(separacion2[0] + separacion2[1]);\r\n };\r\n\r\n //Se realiza la validacion en bodega para aumentar en 1 la cantidad en carrito de este, si no existe lo crea.\r\n //Actualiza el state del carrito y tambien el sessionStorage.\r\n const adicionar = async (talla, cantidadActual) => {\r\n if (tallaSeleccionada.length !== 0) {\r\n let cantidadReal = await ConsultarBodega(producto.Referencia + talla, producto.CodBodega);\r\n if (cantidadActual + 1 <= cantidadReal) {\r\n let crear = true;\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n if (producto.Referencia + talla === carrito[\"Carrito\"][i][\"id\"]) {\r\n carrito[\"Carrito\"][i][\"Cantidad\"] += 1;\r\n crear = false;\r\n }\r\n }\r\n if (crear) {\r\n const productoNuevo = {\r\n _id: producto._id,\r\n id: producto.Referencia + talla,\r\n Nombre: producto.Nombre,\r\n Codigo: producto.Referencia,\r\n Talla: talla,\r\n Bodega: producto.CodBodega,\r\n Categoria: producto.Categoria.Categoria,\r\n PrecioMinorista: arreglarPrecio(producto.PrecioMinorista),\r\n PrecioMayorista: arreglarPrecio(producto.PrecioMayorista),\r\n // PrecioMayoristaSinIva: Math.round(parseFloat(producto.PrecioMayoristaSinIva)),\r\n DescuentoMayorista: producto.DescuentoMayorista,\r\n DescuentoMinorista: producto.DescuentoMinorista,\r\n Cantidad: 1,\r\n };\r\n const carritoNew = [...carrito[\"Carrito\"], productoNuevo];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n } else {\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n }\r\n }\r\n }\r\n };\r\n\r\n /** Agrega las cantidades del input al carrito validando existencias */\r\n const adicionarV = async (talla, cantidadActual, cantidadAdicion) => {\r\n let undAdicion = cantidadAdicion;\r\n if (tallaSeleccionada.length !== 0) {\r\n let cantidadReal = await ConsultarBodega(producto.Referencia + talla, producto.CodBodega);\r\n if (cantidadActual + parseInt(undAdicion) <= cantidadReal) {\r\n auxAdicionarV(talla, undAdicion)\r\n setAdicion(1);\r\n } else {\r\n undAdicion = cantidadReal - cantidadActual;\r\n if(undAdicion > 0) {\r\n swal({\r\n title: \"Aviso\",\r\n text: `La cantidad solicitada de la referencia ${producto.Referencia + talla} no está disponible.\r\n Se agregarán ${undAdicion} de ${cantidadAdicion} al carrito, desea continuar?`,\r\n icon: \"info\",\r\n buttons: {\r\n cancel: {\r\n text: \"No\",\r\n value: null,\r\n visible: true,\r\n closeModal: true,\r\n },\r\n confirm: {\r\n text: \"Si\",\r\n value: true,\r\n visible: true,\r\n closeModal: true\r\n }\r\n }\r\n }).then(response => {\r\n if(response) {\r\n auxAdicionarV(talla, undAdicion)\r\n }\r\n setAdicion(1);\r\n });\r\n } else {\r\n if(obtenerCantidadTallaProductoActual(tallaSeleccionada.label) == 0) {\r\n swal({\r\n title: \"¡Importante!\",\r\n text: `La referencia ${producto.Referencia + talla} no será agregada al carrito,\r\n es posible que esté agotada. Si se presenta la novedad con todas las referencias,\r\n solicite soporte.`,\r\n icon: \"warning\",\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const auxAdicionarV = (talla, cantidadAdicion) => {\r\n let crear = true;\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n if (producto.Referencia + talla === carrito[\"Carrito\"][i][\"id\"]) {\r\n carrito[\"Carrito\"][i][\"Cantidad\"] += parseInt(cantidadAdicion);\r\n crear = false;\r\n }\r\n }\r\n if (crear) {\r\n const productoNuevo = {\r\n _id: producto._id,\r\n id: producto.Referencia + talla,\r\n Nombre: producto.Nombre,\r\n Codigo: producto.Referencia,\r\n Talla: talla,\r\n Bodega: producto.CodBodega,\r\n Categoria: producto.Categoria.Categoria,\r\n PrecioMinorista: arreglarPrecio(producto.PrecioMinorista),\r\n PrecioMayorista: arreglarPrecio(producto.PrecioMayorista),\r\n DescuentoMayorista: producto.DescuentoMayorista,\r\n DescuentoMinorista: producto.DescuentoMinorista,\r\n Cantidad: parseInt(cantidadAdicion),\r\n };\r\n const carritoNew = [...carrito[\"Carrito\"], productoNuevo];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n } else {\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n }\r\n }\r\n\r\n const obtenerCantidadTallaProductoActual = (talla) => {\r\n const productoFiltrado = carrito[\"Carrito\"].filter(\r\n (prod) => prod[\"id\"] === producto.Referencia + talla\r\n );\r\n return productoFiltrado.length > 0 ? productoFiltrado[0][\"Cantidad\"] : 0;\r\n };\r\n\r\n const ObtenerTallas = () => {\r\n let tallas = [];\r\n for (let talla of producto.Variantes[0].Tallas) {\r\n if (talla.Cantidad > 0) {\r\n tallas.push({\r\n value: talla._id,\r\n label: talla.Talla,\r\n image:\r\n recursosUrlState + \"/img/Filtros/\" + talla.Talla + \"-blanco.webp\",\r\n Cantidad: talla.Cantidad,\r\n estado: false,\r\n });\r\n }\r\n }\r\n setTallas(tallas);\r\n //modificarTallasState(tallas);\r\n };\r\n\r\n //Recibe el evento de seleccion o deseleccion de las tallas y modifica su state\r\n const changeSelectedTalla = (value, talla) => {\r\n let temp = tallas;\r\n setAdicion(1);\r\n temp = temp.map((element) => {\r\n return { ...element, estado: value === element.value ? true : false };\r\n });\r\n setCantidad(talla.Cantidad);\r\n setTallaSelecionada(talla);\r\n setTallas(temp);\r\n };\r\n\r\n useEffect(() => {\r\n ObtenerTallas();\r\n }, []);\r\n\r\n return (\r\n
\r\n {/*

Tallas disponibles

*/}\r\n\r\n {tallas?.map((talla, index) => (\r\n changeSelectedTalla(talla.value, talla)}\r\n \r\n />\r\n ))}\r\n\r\n
\r\n {cantidad === 0 ? (\r\n \r\n ) : cantidad === 1 ? (\r\n

\r\n ! Última unidad disponible¡\r\n

\r\n ) : (\r\n

\r\n {cantidad + \" \"} unidades disponibles\r\n

\r\n )}\r\n {tallaSeleccionada.length !== 0 ? (\r\n obtenerCantidadTallaProductoActual(tallaSeleccionada.label) ===\r\n cantidad ? (\r\n

\r\n Cantidad Maxima en tu carrito\r\n

\r\n ) : (\r\n <>\r\n {vendedor? (\r\n
\r\n handleChange(e)}\r\n min={1}\r\n />\r\n \r\n adicionarV(\r\n tallaSeleccionada.label,\r\n obtenerCantidadTallaProductoActual(tallaSeleccionada.label),\r\n adicion\r\n )\r\n }\r\n >\r\n AGREGAR AL CARRITO\r\n

\r\n
\r\n ) : (\r\n \r\n adicionar(\r\n tallaSeleccionada.label,\r\n obtenerCantidadTallaProductoActual(tallaSeleccionada.label)\r\n )\r\n }\r\n style={{\r\n height: \"auto\",\r\n width: \"100%\",\r\n marginTop: \"-9px\",\r\n }}\r\n alt=\"agregar\"\r\n />\r\n )}\r\n

\r\n {obtenerCantidadTallaProductoActual(tallaSeleccionada.label) +\r\n \" \"}{\" \"}\r\n Unidades en tu carrito\r\n

\r\n \r\n )\r\n ) : mostar ? (\r\n <>\r\n {vendedor? (\r\n
\r\n handleChange(e)}\r\n min={1}\r\n />\r\n \r\n adicionarV(\r\n tallaSeleccionada.label,\r\n obtenerCantidadTallaProductoActual(tallaSeleccionada.label),\r\n adicion\r\n )\r\n }\r\n >\r\n AGREGAR AL CARRITO\r\n

\r\n
\r\n ) : (\r\n \r\n adicionar(\r\n tallaSeleccionada.label,\r\n obtenerCantidadTallaProductoActual(tallaSeleccionada.label)\r\n )\r\n }\r\n style={{\r\n height: \"auto\",\r\n width: \"80%\",\r\n marginTop: \"-23px\",\r\n }}\r\n alt=\"agregar\"\r\n />\r\n )}\r\n

\r\n {obtenerCantidadTallaProductoActual(tallaSeleccionada.label) +\r\n \" \"}{\" \"}\r\n Unidades en tu carrito\r\n

\r\n \r\n ) : null}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GrupoTallas;\r\n","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n//Zona de importacion de componentes internos.\r\nimport GrupoTallas from \"./GrupoTallas\";\r\nimport { Link } from \"react-router-dom\";\r\nimport \"./static/css/Producto/producto.css\";\r\n\r\nconst Producto = ({\r\n ViewDetalle,\r\n cliente,\r\n index,\r\n producto,\r\n carrito,\r\n modificarCarritoState,\r\n headerState,\r\n modificarHeaderState,\r\n errorState,\r\n modificarErrorState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n actualizarSessionStorage,\r\n tallasState,\r\n modificarTallasState,\r\n refNoCatalogoState,\r\n modificarRefNoCatalogoState,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n checkedProductos,\r\n setCheckedProductos,\r\n}) => {\r\n const [tallas, setTallas] = useState([]);\r\n const [selectedProductId, setSelectedProductId] = useState(null);\r\n const [individualChecked, setIndividualChecked] = useState(true);\r\n\r\n const handleProductSelect = (productId) => {\r\n //setSelectedProductId(productId);\r\n localStorage.setItem(\"selectedProductId\", productId);\r\n //history.push(`/products/${productId}`);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n const storedProductId = localStorage.getItem(\"selectedProductId\");\r\n // console.log(\"asigna id \", storedProductId)\r\n if (storedProductId) {\r\n setSelectedProductId(storedProductId);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const rutaCompleta = window.location.pathname;\r\n const partesRuta = rutaCompleta.split('/');\r\n const Mercado = partesRuta[1];\r\n const element = document.getElementById(selectedProductId);\r\n if (element && Mercado === \"Mercado\") {\r\n element.scrollIntoView({ behavior: \"instant\" }); // para animar la visualizacion { behavior: 'smooth' })\r\n setTimeout(() => {\r\n //localStorage.removeItem(\"selectedProductId\");\r\n }, 30000);\r\n }\r\n }, [selectedProductId]);\r\n //let tallas1; //Aqui se guardaran las cantidades de cada talla del producto.\r\n //let tallasL1; //Aqui se guardara una lisra con las tallas dependientes del producto.\r\n //Retorna un json con las tallas correspondientes igualadas a 0 segun la categoria del product ingresado.\r\n /*const queListaTalla = (producto) => {\r\n return (producto[\"Categoria\"] === \"CAMISETA\" || \r\n producto[\"Categoria\"] === \"CAMISETA VALTIMORT\" || \r\n producto[\"Categoria\"] === \"HOODIE\" ||\r\n producto[\"Categoria\"] === \"JOGGER\" ||\r\n producto[\"Categoria\"] === \"POLO\" ||\r\n producto[\"Categoria\"] === \"POLO SAMBARLOT\") ? {\"S\": 0, \"M\": 0, \"L\": 0, \"XL\": 0, \"XXL\": 0} \r\n \r\n : ((producto[\"Categoria\"] === \"GORRA\" ||\r\n producto[\"Categoria\"] === \"GAFAS\") ? {\"U\": 0} \r\n : ((producto[\"Categoria\"] === \"JEAN\" &&\r\n producto[\"Genero\"] === \"MUJER\") ? {\"30\": 0, \"32\": 0, \"34\": 0, \"36\": 0, \"38\": 0} \r\n : {\"6\": 0, \"8\": 0, \"10\": 0, \"12\": 0, \"14\": 0}))\r\n }*/\r\n //Esta funcion comprueba si existe la imagen en version jpg del producto, en caso que no, se lanza la imagen de respaldo general 'base'.\r\n\r\n const comprobarImgProducto = (codigo) => {\r\n const imagen = document.getElementById(codigo);\r\n let img = document.createElement(\"img\");\r\n img.src = recursosUrlState + \"/img/Productos/Ref \" + codigo + \".jpg\";\r\n imagen.innerHTML =\r\n \"\" +\r\n      codigo +\r\n      \"\";\r\n img.onerror = function () {\r\n imagen.innerHTML =\r\n \"\" +\r\n        codigo +\r\n        \"\";\r\n };\r\n };\r\n\r\n /*\r\n //Revisa si una lista de tallas contiene la talla ingresada.\r\n const existeTallaNombre = (talla, arreglo) => {\r\n for(var i = 0; i < arreglo.length; i++){\r\n if(arreglo[i] === talla)\r\n return true;\r\n }\r\n return false;\r\n }*/\r\n\r\n const rotacionFlecha = (codigo) => {\r\n var listaClases = document.getElementById(\"Flecha\" + codigo);\r\n if (listaClases.classList.contains(\"giroFlechaArriba\")) {\r\n listaClases.classList.remove(\"giroFlechaArriba\");\r\n listaClases.classList.add(\"giroFlechaAbajo\");\r\n } else {\r\n listaClases.classList.remove(\"giroFlechaAbajo\");\r\n listaClases.classList.add(\"giroFlechaArriba\");\r\n }\r\n };\r\n\r\n /*\r\n //Se crea la lista de las talla de cada producto, si contiene la talla L, se condiciona si se debe añadir la talla XXL, XXXL o XXXXL a la lista.\r\n if(producto !== \"\"){\r\n let tallasP1 = producto[\"productos\"][0][\"Cantidad\"];\r\n var t1Temp = Object.keys(tallasP1);\r\n tallasL1 = t1Temp;\r\n if(t1Temp[0] === \"L\"){\r\n tallasL1 = [\"S\", \"M\", \"L\", \"XL\"];\r\n if(existeTallaNombre(\"XXL\", t1Temp))\r\n tallasL1.push(\"XXL\");\r\n if(existeTallaNombre(\"XXXL\", t1Temp))\r\n tallasL1.push(\"XXXL\");\r\n if(existeTallaNombre(\"XXXXL\", t1Temp))\r\n tallasL1.push(\"XXXXL\");\r\n }\r\n tallas1 = tallasP1;\r\n }*/\r\n\r\n //Añade el punto de miles al precio ingresado y lo retorna.\r\n const formatNumber = (amount) => {\r\n var temp = Math.round(amount) + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n };\r\n\r\n //Retorna el precio ingresado sin signos de peso ni puntos.\r\n const arreglarPrecio = (precio) => {\r\n var separacion = precio;\r\n if (precio.indexOf(\"$\") !== -1) separacion = precio.split(\" \")[1];\r\n var separacion2 = separacion.split(\".\");\r\n return parseFloat(separacion2[0] + separacion2[1]);\r\n };\r\n\r\n const calcularDescuento = (precio, descuento) => {\r\n const precioInt = arreglarPrecio(precio);\r\n const descuentoAplicar = parseFloat(descuento);\r\n return formatNumber(precioInt - precioInt * (descuentoAplicar / 100));\r\n };\r\n\r\n const ObtenerTallas = () => {\r\n let tallas = [];\r\n for (let talla of producto.Variantes[0].Tallas) {\r\n if (talla.Cantidad > 0) {\r\n tallas.push({\r\n value: talla._id,\r\n label: talla.Talla,\r\n image:\r\n recursosUrlState + \"/img/Filtros/\" + talla.Talla + \"-blanco.webp\",\r\n Cantidad: talla.Cantidad,\r\n estado: false,\r\n });\r\n }\r\n }\r\n setTallas(tallas);\r\n //modificarTallasState(tallas);\r\n };\r\n\r\n const almacenarReferencias = async (e, producto) => {\r\n const value = e.target.checked;\r\n setIndividualChecked(!individualChecked);\r\n if (!value) {\r\n await modificarRefNoCatalogoState([...refNoCatalogoState, producto]);\r\n } else {\r\n let productosCatalogoTemp = refNoCatalogoState.filter(\r\n (prod) => prod.Referencia !== producto.Referencia\r\n );\r\n await modificarRefNoCatalogoState(productosCatalogoTemp);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setIndividualChecked(checkedProductos)\r\n }, [checkedProductos])\r\n \r\n\r\n //State que contendra el json de cantidades del producto.\r\n //const [tallas1State, modificarTallas1State] = useState(queListaTalla(producto));\r\n\r\n //Estructura del producto:\r\n // Imagen.\r\n // Categoria del producto.\r\n // Codigo producto.\r\n // Componente grupo de tallas.\r\n\r\n useEffect(() => {\r\n ObtenerTallas();\r\n }, []);\r\n return (\r\n
\r\n {producto !== \"\" && producto[\"Codigo\"] !== \"salta\" ? (\r\n <>\r\n
\r\n {headerState[\"Cliente\"] === \"Minoristas\" ? (\r\n handleProductSelect(producto.Referencia)}\r\n >\r\n
\r\n {/* \"VISTA */}\r\n e.target.src = `${recursosUrlState}/img/General/base2.png`}\r\n />\r\n
\r\n \r\n ) : (\r\n <>\r\n e.target.src = `${recursosUrlState}/img/General/base2.png`}\r\n />\r\n {headerState[\"BotonCatalogo\"] ? (\r\n \r\n almacenarReferencias(e, producto)}\r\n >\r\n
\r\n ) : null}\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n {producto.Categoria.Categoria} {producto.Marca.Marca}{\" \"}\r\n {producto.Genero.Genero}{producto.Medidas !== \"SinDefinir\"? ` - ${producto.Medidas}` : \"\"}\r\n
\r\n
\r\n REF {producto.Referencia}\r\n
\r\n \r\n \r\n {headerState[\"Cliente\"] === \"Minoristas\" ? (\r\n producto.DescuentoMinorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {calcularDescuento(\r\n producto.PrecioMinorista,\r\n producto.DescuentoMinorista\r\n )}\r\n \r\n \r\n \r\n {producto.PrecioMinorista}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n $ {producto.PrecioMinorista}{\" \"}\r\n \r\n \r\n \r\n )\r\n ) : producto.DescuentoMayorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {calcularDescuento(\r\n producto.PrecioMayorista,\r\n producto.DescuentoMayorista\r\n )}\r\n \r\n \r\n \r\n {producto.PrecioMayorista}\r\n \r\n \r\n ) : (\r\n \r\n \r\n $ {producto.PrecioMayorista}\r\n \r\n \r\n )}\r\n {headerState[\"Cliente\"] === \"Mayoristas\" && !vendedor? (\r\n
\r\n \r\n
\r\n
\r\n rotacionFlecha(producto.Referencia)}\r\n >\r\n

\r\n \r\n Mas información\r\n \r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n \r\n

\r\n \r\n Material: \r\n {\" \"}\r\n {producto.Descripcion}\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Medidas/medidas\" +\r\n producto.Categoria.Categoria +\r\n producto.Genero.Genero +\r\n producto.Medidas +\r\n \".png\";\r\n }}\r\n />\r\n

\r\n \r\n Cuidados especiales: \r\n {\" \"}\r\n Lavar en lavadora con agua fria 30ºC, ciclo delicado con\r\n colores similares, lavar con jabón suave, no exprimir.\r\n

\r\n
\r\n
\r\n \r\n \r\n ) : null}\r\n {/* */}\r\n {headerState[\"Cliente\"] === \"Mayoristas\" ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\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 Producto;\r\n","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\nimport \"./static/css/footer.css\";\r\n\r\n//Zona de importacion de componentes internos.\r\n\r\nfunction Footer() {\r\n return (\r\n <>\r\n \r\n
\r\n
    \r\n {/*
  • \r\n \r\n \r\n \r\n
  • */}\r\n\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n

\r\n © Copyright 2024. DK. All rights reserved.\r\n

\r\n
\r\n \r\n );\r\n}\r\nexport default Footer;\r\n","import React from \"react\";\r\nimport { FaExclamationCircle } from \"react-icons/fa\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst NotFoundComponent = ({ redirectTo }) => {\r\n return (\r\n \r\n \r\n

No se encontraron productos para estas características

\r\n

\r\n Lo sentimos, intenta aplicar un filtro diferente o da click en el\r\n siguiente boton y sigue comprando.\r\n

\r\n {/* \r\n {\" \"}\r\n \r\n Volver\r\n

\r\n
*/}\r\n \r\n );\r\n};\r\n\r\nexport default NotFoundComponent;\r\n","import { useState, useContext, createContext } from 'react'\r\n\r\n\r\n/** Se crea un contexto para usar en NewIndex y Mercado\r\n * para manejar las categorias\r\n */\r\nconst CategoriasContext = createContext();\r\n\r\nexport const useCategContext = () => {\r\n return useContext(CategoriasContext);\r\n}\r\n\r\nexport const CategoriasProvider = ({children}) => {\r\n\r\n const [categorias, setCategorias] = useState([\r\n /** Categoria Ejemplo */\r\n // [\r\n // \"NOMBRE CATEGORIA\",\r\n // \"URL_IMAGEN_CATEGORIA\",\r\n // [\"LISTA_CATEGORIAS\"],\r\n // [\"LISTA_SUBCATEGORIAS\"],\r\n // [\"LISTA_MARCAS\"],\r\n // [\"GENERO\"],\r\n // \"CONSULTA_PRODUCTOS_NUEVOS\",\r\n // \"Hombre ó Mujer\",\r\n // \"IDENTIFICACION_CATEGORIA\",\r\n // \"CONSULTA_PRODUCTOS_DESCUENTO\"\r\n // ],\r\n // [\r\n // \"NEW\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/carousel/fondo2Movil.png\", \r\n // [],\r\n // [],\r\n // [],\r\n // [],\r\n // true,\r\n // \"New\",\r\n // \"Nuevo\",\r\n // false\r\n // ],\r\n // [\r\n // \"CAMISETAS ESTAMPADAS HOMBRE\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/CATEGORIA%20ESTAMPADAS%20HOMBRE.webp\",\r\n // [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n // [ { Subcategoria: \"607ed65a521b1c0910a581bf\" },\r\n // ],\r\n // [],\r\n // [{ Genero: \"607ed653521b1c0910a581b8\" }],\r\n // false,\r\n // \"Hombre\",\r\n // \"Estampada\",\r\n // false,\r\n // ],\r\n [\r\n \"CAMISETAS ESTAMPADAS MUJER\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/CATEGORIA%20ESTAMPADAS%20MUJER.webp\",\r\n [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n [],\r\n [],\r\n [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n false,\r\n \"Mujer\",\r\n \"Camiseta\",\r\n false,\r\n ],\r\n \r\n // [\r\n // \"CAMISETAS BÁSICAS HOMBRE\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/CATEGORIA%20BASICAS.webp\",\r\n // [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n // [\r\n // { Subcategoria: \"607ed65a521b1c0910a581bd\" },\r\n // { Subcategoria: \"65a53552e8989878c228d032\" },\r\n // ],\r\n // [],\r\n // [{ Genero: \"607ed653521b1c0910a581b8\" }],\r\n // false,\r\n // \"Hombre\",\r\n // \"Basica\",\r\n // false,\r\n // ],\r\n \r\n [\r\n \"BLUSAS BÁSICAS DK\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BLUSAS%20BASICAS.webp\",\r\n [\r\n { Categoria: \"651aec4251072238a0969749\" }, // Blusa\r\n { Categoria: \"655bad5a1cdc932b9e974a01\" }, // Body\r\n { Categoria: \"6583763e8dfd4f911a2d0388\" }, // Seamless - Tubular\r\n ],\r\n [\r\n { Subcategoria: \"607ed65a521b1c0910a581bd\" }, // basica\r\n { Subcategoria: \"65a53552e8989878c228d032\" }, // general\r\n ],\r\n [], // { Marca: \"64f8df51ab8f6199b7154137\" }\r\n [ { Genero: \"607ed653521b1c0910a581b9\" } ],\r\n false,\r\n \"Mujer\",\r\n \"Blusa\",\r\n false,\r\n ],\r\n \r\n // [\r\n // \"CAMISETAS ESTAMPADAS DK\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BasicasM.png\",\r\n // { Categoria: \"607ed63e521b1c0910a581aa\" },\r\n // { Subcategoria: \"607ed65a521b1c0910a581bf\" },\r\n // [{ Marca: \"64f8df51ab8f6199b7154137\" }],\r\n // { Genero: \"607ed653521b1c0910a581b9\" },\r\n // false,\r\n // \"Mujer\",\r\n // \"CamisetaEsDk\",\r\n // false,\r\n // ],\r\n \r\n // [\r\n // \"VALTIMOR\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/Camisetas%20hombre.png\",\r\n // { Categoria: \"607ed63e521b1c0910a581aa\" },\r\n // null,\r\n // [\r\n // { Marca: \"607ed64c521b1c0910a581b6\" }, //fishbone\r\n // { Marca: \"607ed64c521b1c0910a581b5\" }, //staff\r\n // { Marca: \"607ed64c521b1c0910a581b4\" }, //urbi\r\n // { Marca: \"607ed64c521b1c0910a581b7\" }, //valtimor\r\n // ],\r\n // { Genero: \"607ed653521b1c0910a581b8\" },\r\n // false,\r\n // ],\r\n \r\n // [\r\n // \"POLOS\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/CATEGORIA%20POLOS.webp\",\r\n // [{ Categoria: \"607ed63f521b1c0910a581b1\" }],\r\n // [], // subcategoria\r\n // [], // Marca\r\n // [ { Genero: \"607ed653521b1c0910a581b8\" } ],\r\n // false,\r\n // \"Hombre\",\r\n // \"Polo\",\r\n // false,\r\n // ],\r\n // [\r\n // \"GORRAS\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/CATEGORIA%20GORRAS.webp\",\r\n // [{ Categoria: \"607ed63e521b1c0910a581ac\" }],\r\n // [], // subcategoria\r\n // [], // marca\r\n // [ { Genero: \"658316d88dfd4f911a2d0379\" } ], // genero\r\n // false,\r\n // \"Unisex\",\r\n // \"Gorra\",\r\n // false,\r\n // ],\r\n \r\n [\r\n \"VESTIDOS\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/VESTIDOS.webp\",\r\n [ { Categoria: \"65578d4701bf5211b63d14bc\" } ],\r\n [],\r\n [ { Marca: \"64f8df51ab8f6199b7154137\" } ],\r\n [ { Genero: \"607ed653521b1c0910a581b9\" } ],\r\n false,\r\n \"Mujer\",\r\n \"Vestido\",\r\n false,\r\n ],\r\n \r\n [\r\n \"LYCRAS\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/LYCRAS.webp\",\r\n [{ Categoria: \"6525a7906b44bb8bf3323210\" }],\r\n [],\r\n [],\r\n [ { Genero: \"607ed653521b1c0910a581b9\" } ],\r\n false,\r\n \"Mujer\",\r\n \"Lycra\",\r\n false,\r\n ],\r\n // [\r\n // \"PANTALONETAS\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/Pantalonetas.png\",\r\n // { Categoria: \"607ed63e521b1c0910a581b0\" },\r\n // null,\r\n // null,\r\n // null,\r\n // false,\r\n // \"Hombre\",\r\n // \"Pantalonetas\",\r\n // ],\r\n // [\r\n // \"HOODIES HOMBRE\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/Hoodies%20Hombre.png\",\r\n // { Categoria: \"607ed63e521b1c0910a581ad\" },\r\n // null,\r\n // null,\r\n // { Genero: \"607ed653521b1c0910a581b8\" },\r\n // false,\r\n // \"Hombre\",\r\n // \"Hoodie\",\r\n // ],\r\n // [\r\n // \"HOODIES MUJER\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/Hoodies%20Mujer.png\",\r\n // { Categoria: \"607ed63e521b1c0910a581ad\" },\r\n // null,\r\n // null,\r\n // { Genero: \"607ed653521b1c0910a581b9\" },\r\n // false,\r\n // \"Mujer\",\r\n // \"Hoodie\",\r\n // ],\r\n // [\r\n // \"JOGGER HOMBRE\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/Jogger%20hombre.png\",\r\n // { Categoria: \"607ed63e521b1c0910a581af\" },\r\n // null,\r\n // null,\r\n // { Genero: \"607ed653521b1c0910a581b8\" },\r\n // false,\r\n // \"Hombre\",\r\n // \"Jogger\",\r\n // ],\r\n // [\r\n // \"JOGGER MUJER\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/Jogger%20mujer.png\",\r\n // { Categoria: \"607ed63e521b1c0910a581af\" },\r\n // null,\r\n // null,\r\n // { Genero: \"607ed653521b1c0910a581b9\" },\r\n // false,\r\n // false,\r\n // \"Mujer\",\r\n // \"Jogger\",\r\n // ],\r\n // [\r\n // \"NIÑOS\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/carousel/fondo3Movil.png\",\r\n // null,\r\n // null,\r\n // null,\r\n // { Genero: \"607ed653521b1c0910a581ba\" },\r\n // false,\r\n // \"Niño\",\r\n // \"Camiseta\",\r\n // ],\r\n // [\r\n // \"REBAJAS\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/Descuentos.webp\",\r\n // [],\r\n // [],\r\n // [],\r\n // [],\r\n // false,\r\n // \"Todo\",\r\n // \"Descuento\",\r\n // true,\r\n // ],\r\n ]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n\r\n}","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport axios from \"axios\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n\r\n//Zona de importacion de componentes internos.\r\nimport Producto from \"./Producto\";\r\nimport Filtros from \"./Filtros\";\r\n\r\n//Zona de importacion de Css.\r\nimport \"./static/css/Mercado/Mercado.css\";\r\nimport \"./static/css/Mercado/Mercado_MovilGrande.css\";\r\nimport \"./static/css/Mercado/Mercado_MovilPequeño.css\";\r\nimport \"./static/css/Mercado/Mercado_MovilHorizontal.css\";\r\nimport \"./static/css/Mercado/Mercado_Web.css\";\r\nimport { useParams } from \"react-router\";\r\nimport Footer from \"../Footer/Footer\";\r\nimport NotFoundComponent from \"./components/NotFound\";\r\nimport { useCategContext } from \"../../providers/CategoriasProviders\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nconst Mercado = ({\r\n ViewDetalle,\r\n headerState,\r\n modificarHeaderState,\r\n filtrosState,\r\n modificarFiltrosState,\r\n productosState,\r\n modificarProductosState,\r\n tallasState,\r\n modificarTallasState,\r\n coloresState,\r\n modificarColoresState,\r\n marcasState,\r\n modificarMarcasState,\r\n medidasState,\r\n modificarMedidasState,\r\n carrito,\r\n modificarCarritoState,\r\n cliente,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n // clienteState,\r\n // modificarClienteState,\r\n categoriasState,\r\n modificarCategoriasState,\r\n CatalogoState,\r\n actualizarSessionStorage,\r\n rutaDinamica = true,\r\n subCategoriasState,\r\n modificarSubCategoriasState,\r\n refNoCatalogoState,\r\n modificarRefNoCatalogoState,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n BodegaCatalogos,\r\n setBodegaCatalogos,\r\n checkedProductos,\r\n setCheckedProductos,\r\n}) => {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n ReactPixel.track(\"HomeMinoristas\", \"ViewContent\");\r\n //Esta constante hace referencia al primer producto de la slista de productos actual.\r\n const prod1 = useRef(null);\r\n let { Categoria, Genero } = useParams();\r\n\r\n const categorias = useCategContext();\r\n // console.log(\"Context\", categorias)\r\n\r\n /** Busca la categoria que cumple con los parametros (Categoria, Genero)\r\n * para extraer la informacion completa\r\n */\r\n const obtenerDatosCategoria = (categoria, genero) => {\r\n const data = categorias.find(categ => categ[8] === categoria && categ[7] === genero);\r\n return data;\r\n }\r\n\r\n /** Obtiene solo los ids de la lista de marcas */\r\n const getListaMarcas = (Marcas) => {\r\n let listaMarcas = [];\r\n for(const marca of Marcas) {\r\n listaMarcas.push(marca.Marca)\r\n }\r\n return listaMarcas;\r\n }\r\n\r\n /** Retorna los parametros de consulta de productos segun\r\n * la categoria seleccionada */\r\n const RutaLanding = async () => {\r\n // console.log(\"LOGGG\", Categoria, Genero)\r\n /** Consulta general de productos en Preventa */\r\n if (window.location.pathname === \"/Preventa/Catalogo\") {\r\n return {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n const dataConsulta = obtenerDatosCategoria(Categoria, Genero);\r\n if (dataConsulta) {\r\n /** Para las mismas categorias del home */\r\n const Ccategorias = dataConsulta[2];\r\n const Csubcategorias = dataConsulta[3];\r\n const Cmarcas = dataConsulta[4];\r\n const Cgeneros = dataConsulta[5];\r\n const Cnuevos = dataConsulta[6];\r\n const Cdescuentos = dataConsulta[9];\r\n \r\n const sub = Csubcategorias.length == 0 ? \"\" : Csubcategorias[0].Subcategoria;\r\n const marc = getListaMarcas(Cmarcas);\r\n \r\n let objCateg = { ...categoriasState };\r\n if(Ccategorias.length > 0 && Cgeneros.length > 0) {\r\n if(Cgeneros[0].Genero === \"607ed653521b1c0910a581b8\") {\r\n objCateg = {\r\n ...categoriasState,\r\n Hombre: Ccategorias[0].Categoria,\r\n }\r\n } else {\r\n objCateg = {\r\n ...categoriasState,\r\n Mujer: Ccategorias[0].Categoria,\r\n }\r\n }\r\n }\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: Cgeneros.length > 0? Cgeneros[0].Genero : \"\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n \r\n modificarCategoriasState(objCateg),\r\n modificarSubCategoriasState(sub),\r\n modificarMarcasState(marc),\r\n ]);\r\n \r\n return {\r\n Categorias: Ccategorias,\r\n Generos: Cgeneros,\r\n Marcas: Cmarcas,\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: Csubcategorias,\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: Cnuevos,\r\n Descuentos: Cdescuentos,\r\n Todo: false,\r\n };\r\n\r\n } else if(Categoria === \"Nuevo\") {\r\n /** Para buscar los productos nuevos */\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n \r\n \r\n modificarSubCategoriasState(\"\"),\r\n modificarMarcasState([]),\r\n ]);\r\n return {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: true,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n } else if(Categoria === \"Descuento\") {\r\n // Para buscar los productos con descuento\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n \r\n modificarCategoriasState({\r\n Hombre: null,\r\n Mujer: null,\r\n Niño: null,\r\n }),\r\n modificarSubCategoriasState(\"\"),\r\n modificarMarcasState([]),\r\n ]);\r\n return {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: true,\r\n Todo: false,\r\n };\r\n } else {\r\n /** Para las categorias adicionales que no estan definidas en el home\r\n * Pero si en la base de datos */\r\n const datosConsulta = await getDataCategGene();\r\n let objCateg = { ...categoriasState }\r\n if (Genero === \"Hombre\") {\r\n objCateg = {\r\n ...categoriasState,\r\n Hombre: datosConsulta.Categorias[0].Categoria,\r\n }\r\n } else if(Genero === \"Mujer\") {\r\n objCateg = {\r\n ...categoriasState,\r\n Mujer: datosConsulta.Categorias[0].Categoria,\r\n }\r\n }\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: datosConsulta.Generos[0].Genero,\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n \r\n modificarCategoriasState(objCateg),\r\n modificarSubCategoriasState(\"\"),\r\n modificarMarcasState([]),\r\n ]);\r\n return datosConsulta;\r\n }\r\n }\r\n\r\n /** Obtiene los datos de la categoria seleccionada en el filtro\r\n * para realizar la consulta de productos\r\n */\r\n const getCategorias = async () => {\r\n let categoriaEncontrada = []\r\n const response = await axios.post(apiUrlState + \"/Api/Categoria/ObtenerCategorias\", {\r\n data: \r\n [\r\n { Estado: true }\r\n ]\r\n })\r\n if (!response.data[0].error && Categoria) {\r\n const listaCategorias = response.data[0].data;\r\n const busquedaTemp = listaCategorias.find( categ => categ.Categoria == Categoria.toUpperCase());\r\n categoriaEncontrada = [{ Categoria: busquedaTemp._id }]\r\n return categoriaEncontrada;\r\n };\r\n }\r\n\r\n /** Obtiene los datos del genero seleccionado en el filtro\r\n * para realizar la consulta de productos\r\n */\r\n const getGeneros = async () => {\r\n let generoEncontrado = [];\r\n const response = await axios.post(apiUrlState + \"/Api/Genero/ObtenerGeneros\", {\r\n data: {},\r\n })\r\n if (!response.data.error && Genero) {\r\n const listaGeneros = response.data.data;\r\n const busquedaTemp = listaGeneros.find( gen => gen.Genero === Genero.toUpperCase());\r\n generoEncontrado = [{ Genero: busquedaTemp._id }]\r\n return generoEncontrado;\r\n }\r\n }\r\n\r\n /** Genera el objeto de busqueda para las categorias de los filtros */\r\n const getDataCategGene = async() => {\r\n const categoriasConsulta = await getCategorias();\r\n const generosConsulta = await getGeneros();\r\n return {\r\n Categorias: categoriasConsulta,\r\n Generos: generosConsulta,\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n\r\n //Ruta landing -> Replanteado para que se mas dinámico\r\n const RutaLanding2 = async () => {\r\n if (Categoria === \"Camiseta\" && Genero === \"Mujer\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"607ed63e521b1c0910a581aa\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [\r\n { Marca: \"607ed64c521b1c0910a581b3\" },\r\n { Marca: \"64f8df51ab8f6199b7154137\" }\r\n ],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Basica\" && Genero === \"Hombre\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Hombre: \"607ed63e521b1c0910a581aa\",\r\n }),\r\n modificarSubCategoriasState(\"607ed65a521b1c0910a581bd\"),\r\n modificarMarcasState([\"607ed64c521b1c0910a581b3\"]),\r\n ]);\r\n\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b8\" }],\r\n // Marcas: [{ Marca: \"607ed64c521b1c0910a581b3\" }],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n // Subcategoria: [{ Subcategoria: \"607ed65a521b1c0910a581bd\" }],\r\n Subcategoria: [\r\n { Subcategoria: \"607ed65a521b1c0910a581bd\" }, // Basicas\r\n { Subcategoria: \"65a53552e8989878c228d032\" } // General\r\n ],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Blusa\" && Genero === \"Mujer\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"651aec4251072238a0969749\",\r\n }),\r\n modificarSubCategoriasState(\"607ed65a521b1c0910a581bd\"),\r\n modificarMarcasState([\"64f8df51ab8f6199b7154137\"]),\r\n ]);\r\n\r\n return {\r\n Categorias: [\r\n { Categoria: \"651aec4251072238a0969749\" }, // Blusa\r\n { Categoria: \"655bad5a1cdc932b9e974a01\" }, // Body\r\n { Categoria: \"6583763e8dfd4f911a2d0388\" }, // Seamless\r\n ],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [{ Marca: \"64f8df51ab8f6199b7154137\" }],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [\r\n { Subcategoria: \"607ed65a521b1c0910a581bd\" }, // Basica\r\n { Subcategoria: \"65a53552e8989878c228d032\" } // General\r\n ],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Seamless\" && Genero === \"Mujer\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"6583763e8dfd4f911a2d0388\",\r\n }),\r\n modificarSubCategoriasState(\"607ed65a521b1c0910a581bd\"),\r\n modificarMarcasState([\"64f8df51ab8f6199b7154137\"]),\r\n ]);\r\n\r\n return {\r\n Categorias: [\r\n { Categoria: \"6583763e8dfd4f911a2d0388\" }, // Tubular\r\n ],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [{ Marca: \"64f8df51ab8f6199b7154137\" }],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [\r\n { Subcategoria: \"607ed65a521b1c0910a581bd\" }, // Basica\r\n { Subcategoria: \"65a53552e8989878c228d032\" } // General\r\n ],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"CamisetaEsDk\" && Genero === \"Mujer\") {\r\n // Incuidas en Camisetas Estampadas\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"607ed63e521b1c0910a581aa\",\r\n }),\r\n modificarSubCategoriasState(\"607ed65a521b1c0910a581bf\"),\r\n modificarMarcasState([\"64f8df51ab8f6199b7154137\"]),\r\n ]);\r\n\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [{ Marca: \"64f8df51ab8f6199b7154137\" }],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [{ Subcategoria: \"607ed65a521b1c0910a581bf\" }],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Vestido\" && Genero === \"Mujer\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: true,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"65578d4701bf5211b63d14bc\",\r\n }),\r\n modificarSubCategoriasState(\"607ed65a521b1c0910a581bd\"),\r\n modificarMarcasState([\"64f8df51ab8f6199b7154137\"]),\r\n ]);\r\n\r\n return {\r\n Categorias: [{ Categoria: \"65578d4701bf5211b63d14bc\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [{ Marca: \"64f8df51ab8f6199b7154137\" }],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [{ Subcategoria: \"607ed65a521b1c0910a581bd\" }],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Lycra\" && Genero === \"Mujer\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"6525a7906b44bb8bf3323210\",\r\n }),\r\n modificarSubCategoriasState(\"607ed65a521b1c0910a581bd\"),\r\n modificarMarcasState([\"64f8df51ab8f6199b7154137\"]),\r\n ]);\r\n\r\n return {\r\n Categorias: [{ Categoria: \"6525a7906b44bb8bf3323210\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [{ Marca: \"64f8df51ab8f6199b7154137\" }],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [{ Subcategoria: \"607ed65a521b1c0910a581bd\" }],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n } \r\n if (Categoria === \"Estampada\" && Genero === \"Hombre\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n Descuentos: false,\r\n Todo: false,\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Hombre: \"607ed63e521b1c0910a581aa\",\r\n }),\r\n modificarSubCategoriasState(\"607ed65a521b1c0910a581bf\"),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b8\" }],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n // Subcategoria: [{ Subcategoria: \"607ed65a521b1c0910a581bf\" }],\r\n Subcategoria: [\r\n { Subcategoria: \"607ed65a521b1c0910a581bf\" }, // Estampadas\r\n { Subcategoria: \"65a53552e8989878c228d032\" } // General\r\n ],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Polo\" && Genero === \"Hombre\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Hombre: \"607ed63f521b1c0910a581b1\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63f521b1c0910a581b1\" }],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Gorra\" && Genero === \"Unisex\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Hombre: \"607ed63e521b1c0910a581ac\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581ac\" }],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Pantalonetas\" && Genero === \"Hombre\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Hombre: \"607ed63e521b1c0910a581b0\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581b0\" }],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Hoodie\" && Genero === \"Hombre\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Hombre: \"607ed63e521b1c0910a581ad\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581ad\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b8\" }],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Hoodie\" && Genero === \"Mujer\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"607ed63e521b1c0910a581ad\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581ad\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Jogger\" && Genero === \"Hombre\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Hombre: \"607ed63e521b1c0910a581af\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581af\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b8\" }],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Jogger\" && Genero === \"Mujer\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581b9\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n modificarCategoriasState({\r\n ...categoriasState,\r\n Mujer: \"607ed63e521b1c0910a581af\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [{ Categoria: \"607ed63e521b1c0910a581af\" }],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581b9\" }],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Camiseta\" && Genero === \"Niño\") {\r\n await Promise.all([\r\n modificarFiltrosState({\r\n Genero: \"607ed653521b1c0910a581ba\",\r\n Categoria: \"NoNew\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: true,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n }),\r\n ]);\r\n return {\r\n Categorias: [],\r\n Generos: [{ Genero: \"607ed653521b1c0910a581ba\" }],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Nuevo\" && Genero === \"New\") {\r\n return {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: true,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n }\r\n if (Categoria === \"Nuevo\" && Genero === \"Descuento\") {\r\n return {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: true,\r\n Todo: false,\r\n };\r\n }\r\n if (window.location.pathname === \"/Preventa/Catalogo\") {\r\n if (!localStorage.getItem(\"Vendedor\")) {\r\n window.location.href = \"/Preventa\"\r\n } else {\r\n return {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n Bodega: 2,\r\n };\r\n }\r\n }\r\n\r\n // Revisar este return si se muestran productos que no deberian\r\n return {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"Marca\",\r\n ProductosNuevos: false,\r\n Descuentos: true,\r\n Todo: false,\r\n };\r\n };\r\n //!Modificar variable \"Seccion\" con el parametro de la ruta rutaDinamica\r\n //Se hace una consulta a la api para obtener los productos segun la seccion ingresada por parametro en la ruta '/Inventario/ConsultarProductos/{Seccion}'\r\n const obtenerSeccion = async (Seccion) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando productos...\",\r\n });\r\n }\r\n let data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n };\r\n if(window.location.pathname == \"/Admin/GeneradorDeCatalogos\") {\r\n data.Bodega = BodegaCatalogos;\r\n } else {\r\n data.Bodega = Bodega;\r\n }\r\n if (rutaDinamica) {\r\n const cateGene = await RutaLanding();\r\n // console.log(rutaDinamica, \"RUTA\", cateGene)\r\n data = cateGene;\r\n data.Origen = \"Mercado\";\r\n data.Bodega = Bodega;\r\n }\r\n await modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n [],\r\n ]);\r\n await axios\r\n .post(\r\n apiUrlState + \"/Api/Inventario/GetProductos\",\r\n {\r\n data,\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n response.data.data,\r\n ]);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: false },\r\n [],\r\n ]);\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n //Mediante la referenca del primer producto se desplaza el scroll de forma suave hacia el.\r\n const irInicio = () => {\r\n if (prod1[\"current\"] !== null) {\r\n prod1.current.scrollIntoView({ behavior: \"smooth\" });\r\n modificarProductosState([\r\n {\r\n CambioSeccion: false,\r\n Busqueda: productosState[0][\"Busqueda\"],\r\n irInicio: false,\r\n },\r\n productosState[1],\r\n ]);\r\n }\r\n };\r\n\r\n //Funcion que se ejecuta cada vez que se inicia este componente.\r\n //Pregunta si hay que dirigirse al inicio de la lista de productos\r\n //Pregunta si hubo un cambio de seccion.\r\n //Pregunta si el header esta configurado en version Index, para cambiarloo a version Mercado y actualizar tambien el localStorage.\r\n //Si la sesion es de Mayoristas y no ha iniciado sesion, al intentar acceder a /Mercado se redirecciona automaticamente a /InicioSesion.\r\n //Si en la sesion actual esta activado el modo de registro, se cambia a 'false', tambien actualizando el localStorage.\r\n useEffect(() => {\r\n if (Categoria != undefined && Genero != undefined && vendedor == null) {\r\n obtenerSeccion(\" \");\r\n modificarHeaderState({ ...headerState, Cliente: \"Minoristas\" });\r\n } else {\r\n if (Categoria)\r\n if (productosState[0][\"irInicio\"]) {\r\n irInicio();\r\n }\r\n if (productosState[0][\"CambioSeccion\"]) {\r\n if (headerState[\"Seccion\"] === \"\") {\r\n obtenerSeccion(\"New\");\r\n } else {\r\n obtenerSeccion(headerState[\"Seccion\"]);\r\n }\r\n }\r\n if (headerState[\"displayMenu\"] === \"Index\") {\r\n modificarFiltrosState({\r\n Genero: filtrosState[\"Genero\"],\r\n Categoria: filtrosState[\"Categoria\"],\r\n CambioFiltro: true,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n const tipoClienteSession = localStorage.TipoCliente;\r\n modificarHeaderState({\r\n srcLogo: headerState[\"srcLogo\"],\r\n srcBolsa: headerState[\"srcBolsa\"],\r\n srcFlecha: headerState[\"srcFlecha\"],\r\n displayBuscar: headerState[\"displayBuscar\"],\r\n displayMenu: \"Productos\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: tipoClienteSession,\r\n BotonCatalogo: CatalogoState,\r\n });\r\n }\r\n if (\r\n headerState[\"Cliente\"] === undefined ||\r\n headerState[\"Cliente\"] === \"Mayoristas\"\r\n ) {\r\n modificarHeaderState({\r\n srcLogo: headerState[\"srcLogo\"],\r\n srcBolsa: headerState[\"srcBolsa\"],\r\n srcFlecha: headerState[\"srcFlecha\"],\r\n displayBuscar: headerState[\"displayBuscar\"],\r\n displayMenu: \"Productos\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: \"Minoristas\",\r\n BotonCatalogo: CatalogoState,\r\n });\r\n\r\n if (\r\n localStorage.TipoCliente !== \"Minoristas\" &&\r\n localStorage.TipoCliente !== \"Mayoristas\"\r\n )\r\n actualizarSessionStorage(\"TipoCliente\", \"Minoristas\");\r\n }\r\n if (clienteState[\"Registro\"]) {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n Registro: false,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n Registro: false,\r\n });\r\n }\r\n }\r\n textoCirculo();\r\n }, []);\r\n const textoCirculo = () => {\r\n const circulo = document.getElementById(\"circle\");\r\n const circleArray = circulo.textContent.trimStart().split(\"\");\r\n\r\n circulo.textContent = \" \";\r\n for (var i = 0; i < circleArray.length; i++) {\r\n circulo.innerHTML +=\r\n '' +\r\n circleArray[i] +\r\n \"\";\r\n }\r\n };\r\n\r\n //Estructura del mercado:\r\n //Componente de Filtros.\r\n //Lista de productos - (Si no hay ningun producto en la lista se muestra la imagen de 'No hay')\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n

¿Necesitas Ayuda?

\r\n \r\n {/*Subir productos al catalogo por pixel */}\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
0 ? \"fila\" : null }>\r\n {productosState[1].length > 0 ? (\r\n productosState[1].map((producto, index) =>\r\n index === 0 ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n ) : (\r\n \r\n
\r\n {headerState[\"displayMenu\"] === \"Index\" ||\r\n productosState[0][\"CambioSeccion\"] !== false ||\r\n window.location.pathname == \"/Admin/GeneradorDeCatalogos\" ||\r\n window.location.pathname == \"/Preventa/Catalogo\" ? (\r\n \r\n \r\n ) : (\r\n <>\r\n //
\r\n //
\r\n // ´\r\n // {/*\"noHayWeb\"*/}\r\n //

\r\n //

No obtuvimos resultados para tu búsqueda

\r\n\r\n //

¡Por favor inténtalo nuevamente!

\r\n\r\n //
    \r\n //

    Tips para la búsqueda:

    \r\n //
  • \r\n // {\" \"}\r\n // Revisa tu ortografía para ver si tuviste errores de\r\n // digitación, por ejemplo \"Boats\" en lugar de \"Botas\".\r\n //
  • \r\n //
  • Prueba buscando un término similar o sinónimo.
  • \r\n //
  • \r\n // {\" \"}\r\n // Intenta de nuevo, buscando únicamente una palabra.\r\n //
  • \r\n //
  • \r\n // {\" \"}\r\n // Intenta de nuevo, buscando términos más genéricos -\r\n // puedes filtrar los resultados después\r\n //
  • \r\n //
\r\n //

\r\n //
\r\n //
\r\n // {/*\"noHayMovil\"*/}\r\n\r\n //

\r\n //

No obtuvimos resultados para tu búsqueda

\r\n //

\r\n //

¡Por favor inténtalo nuevamente!

\r\n //

\r\n\r\n //
\r\n //
    \r\n //

    Tips para la búsqueda:

    \r\n //
  • \r\n // {\" \"}\r\n // Revisa tu ortografía para ver si tuviste errores de\r\n // digitación, por ejemplo \"Boats\" en lugar de \"Botas\".\r\n //
  • \r\n //
  • Prueba buscando un término similar o sinónimo.
  • \r\n //
  • \r\n // {\" \"}\r\n // Intenta de nuevo, buscando únicamente una palabra.\r\n //
  • \r\n //
  • \r\n // {\" \"}\r\n // Intenta de nuevo, buscando términos más genéricos -\r\n // puedes filtrar los resultados después\r\n //
  • \r\n //
\r\n //
\r\n //

\r\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 Mercado;\r\n","//Zona de importacion de componentes externos.\r\nimport React from \"react\";\r\nimport { SlideDown } from \"react-slidedown\";\r\nimport \"react-slidedown/lib/slidedown.css\";\r\n\r\nimport Producto from \"./Producto\";\r\nimport \"./static/css/Mayoristas/Mayoristas.css\";\r\n\r\nconst ListaProductos = ({\r\n ViewDetalle,\r\n headerState,\r\n modificarHeaderState,\r\n filtrosState,\r\n modificarFiltrosState,\r\n productosState,\r\n modificarProductosState,\r\n tallasState,\r\n modificarTallasState,\r\n coloresState,\r\n modificarColoresState,\r\n marcasState,\r\n modificarMarcasState,\r\n carrito,\r\n modificarCarritoState,\r\n cliente,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n categoriasHombreState,\r\n modificarCategoriasHombreState,\r\n categoriasMujerState,\r\n modificarCategoriasMujerState,\r\n CatalogoState,\r\n actualizarSessionStorage,\r\n estadoBar,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n}) => {\r\n return (\r\n \r\n
\r\n {productosState[1].length > 0 ? (\r\n
\r\n {productosState[1].map((producto, index) =>\r\n index === 0 ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )\r\n )}\r\n
\r\n ) : (\r\n
\r\n {estadoBar && !spinnerState[\"Desplegar\"] ? (\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/General/noHayWeb.jpg\";\r\n }}\r\n />\r\n
\r\n {/*
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/General/noHayMovil.jpg\";\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 ListaProductos;\r\n","import { height } from '@fortawesome/free-regular-svg-icons/faAddressBook';\r\nimport React from 'react';\r\nimport Carousel from 'react-bootstrap/Carousel'\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\nconst CarouselInfo = ({\r\n index,\r\n images,\r\n}) => {\r\n\r\n const styleImg = {\r\n width: \"100%\",\r\n height: \"auto\",\r\n objectFit: \"cover\"\r\n }\r\n\r\n const isMobile = useMediaQuery({ maxWidth: 767 });\r\n return (\r\n \r\n \r\n \r\n \r\n {/* 2000x500 */}\r\n \r\n {/* 1400x500 */}\r\n \r\n {/* 800x600 */}\r\n \r\n {/* 600x500 */}\r\n \r\n \r\n \r\n \r\n \r\n {/* 2000x500 */}\r\n \r\n {/* 1400x500 */}\r\n \r\n {/* 800x600 */}\r\n \r\n {/* 600x500 */}\r\n \r\n \r\n \r\n \r\n \r\n {/* 2000x500 */}\r\n \r\n {/* 1400x500 */}\r\n \r\n {/* 800x600 */}\r\n \r\n {/* 600x500 */}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CarouselInfo;","//Zona de importacion de componentes externos.\r\nimport React, { useState, useRef, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n//Zona de importacion de componentes internos.\r\nimport ListaProductos from \"./ListaProductos\";\r\nimport { useParams } from \"react-router\";\r\nimport Footer from \"../Footer/Footer\";\r\nimport \"./static/css/Mayoristas/Mayoristas.css\";\r\nimport CarouselInfo from \"../Index/CarouselInfo\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nconst Mayoristas = ({\r\n ViewDetalle,\r\n headerState,\r\n modificarHeaderState,\r\n filtrosState,\r\n modificarFiltrosState,\r\n productosState,\r\n modificarProductosState,\r\n tallasState,\r\n modificarTallasState,\r\n coloresState,\r\n modificarColoresState,\r\n marcasState,\r\n modificarMarcasState,\r\n carrito,\r\n modificarCarritoState,\r\n cliente,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n // clienteState,\r\n // modificarClienteState,\r\n categoriasHombreState,\r\n modificarCategoriasHombreState,\r\n categoriasMujerState,\r\n modificarCategoriasMujerState,\r\n CatalogoState,\r\n actualizarSessionStorage,\r\n rutaDinamica,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n}) => {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n let { Categoria, Genero, Subgenero, Marca } = useParams();\r\n //Referencia para el primer producto.\r\n const barCamisetasHombre = useRef(null);\r\n const barCamisetasHombreBasicas = useRef(null);\r\n const barCamisetasHombreEstampadas = useRef(null);\r\n const barCamisetasHombreValtimor = useRef(null);\r\n const barHoodiesHombre = useRef(null);\r\n const barJoggersHombre = useRef(null);\r\n const barPantalonetasHombre = useRef(null);\r\n const barPolosHombre = useRef(null);\r\n const barGorras = useRef(null);\r\n const barCamisetasMujer = useRef(null);\r\n const barHoodiesMujer = useRef(null);\r\n const barJoggersMujer = useRef(null);\r\n const barBlusas = useRef(null);\r\n const barVestidos = useRef(null);\r\n const barLycras = useRef(null);\r\n const barBodys = useRef(null);\r\n const barCamisas = useRef(null);\r\n const barDescuentos = useRef(null);\r\n\r\n // Creamos un state para cada Bar de categoria.\r\n const [estadoBar, actualizarEstadoBar] = useState({\r\n listaCamisetasHombre: false,\r\n listaCamisetasHombreBasicas: false,\r\n listaCamisetasHombreEstampadas: false,\r\n listaCamisetasHombreValtimor: false,\r\n listaHoodiesHombre: false,\r\n listaJoggersHombre: false,\r\n listaPantalonetasHombre: false,\r\n listaPolosHombre: false,\r\n listaGorras: false,\r\n listaCamisetasMujer: false,\r\n listaHoodiesMujer: false,\r\n listaJoggersMujer: false,\r\n listaBlusas: false,\r\n listaVestidos: false,\r\n listaLycras: false,\r\n listaBodys: false,\r\n listaCamisas: false,\r\n listaDescuentos: false,\r\n });\r\n\r\n const [data, actualizarData] = useState({\r\n GORRAS: { Nuevo: false, Descuento: 0 },\r\n BASICAS: { Nuevo: false, Descuento: 0 },\r\n ESTAMPADAS: { Nuevo: false, Descuento: 0 },\r\n VALTIMOR: { Nuevo: false, Descuento: 0 },\r\n MUJER: { Nuevo: false, Descuento: 0 },\r\n POLOS: { Nuevo: false, Descuento: 0 },\r\n BLUSAS: { Nuevo: false, Descuento: 0 },\r\n VESTIDOS: { Nuevo: false, Descuento: 0 },\r\n LYCRAS: { Nuevo: false, Descuento: 0 },\r\n BODYS: { Nuevo: false, Descuento: 0 },\r\n CAMISAS: { Nuevo: false, Descuento: 0 },\r\n PANTALONETAS: { Nuevo: false, Descuento: 0 },\r\n HOODIES_H: { Nuevo: false, Descuento: 0 },\r\n HODDIES_M: { Nuevo: false, Descuento: 0 },\r\n JOGGER_H: { Nuevo: false, Descuento: 0 },\r\n JOGGER_M: { Nuevo: false, Descuento: 0 },\r\n });\r\n\r\n ReactPixel.track(\"HomeMayoristas\", \"ViewContent\");\r\n //Se hace una consulta a la api para obtener los productos segun la seccion ingresada por parametro en la ruta '/Inventario/ConsultarProductos/{Categoria}/{Genero}'\r\n const obtenerProductos = async (\r\n refBar,\r\n categoriaId,\r\n generoId,\r\n marcaId,\r\n subgeneroId,\r\n marcaExcluida\r\n ) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando productos...\",\r\n });\r\n }\r\n let url = apiUrlState + \"/Api/Inventario/GetProductos\";\r\n let data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n Origen: \"Mayorista\"\r\n };\r\n let i;\r\n const categoriaALlamar = categoriaId;\r\n const marcaALlamar = marcaId;\r\n const SubgeneroALlamar = subgeneroId;\r\n const MarcaExcluida = marcaExcluida;\r\n if (categoriaALlamar === \"Descuentos\") {\r\n data[\"Descuentos\"] = true;\r\n } else if (categoriaALlamar !== null) {\r\n if (MarcaExcluida === \"607ed64c521b1c0910a581b3\") {\r\n data[\"Marcas\"].push({ Marca: \"607ed64c521b1c0910a581b4\" });\r\n data[\"Marcas\"].push({ Marca: \"607ed64c521b1c0910a581b5\" });\r\n data[\"Marcas\"].push({ Marca: \"607ed64c521b1c0910a581b6\" });\r\n data[\"Marcas\"].push({ Marca: \"607ed64c521b1c0910a581b7\" });\r\n }\r\n if (marcaALlamar !== null) {\r\n data[\"Marcas\"].push({ Marca: marcaALlamar });\r\n }\r\n if (SubgeneroALlamar !== null) {\r\n data[\"Subcategoria\"].push({ Subcategoria: SubgeneroALlamar });\r\n }\r\n // data[\"Categorias\"].push({ Categoria: categoriaALlamar });\r\n // Mostrar blusas dk en categoria camiseta mujer\r\n if (categoriaALlamar === \"607ed63e521b1c0910a581aa\" && generoId === \"607ed653521b1c0910a581b9\" ){\r\n data[\"Categorias\"].push({ Categoria: categoriaALlamar });\r\n // data[\"Categorias\"].push({ Categoria: \"651aec4251072238a0969749\" });\r\n } else {\r\n data[\"Categorias\"].push({ Categoria: categoriaALlamar });\r\n }\r\n // end mostrar blusas dk en categoria camiseta mujer\r\n if (categoriaALlamar !== \"607ed63e521b1c0910a581ac\")\r\n data[\"Generos\"].push({ Genero: generoId });\r\n } else data[\"ProductosNuevos\"] = true;\r\n\r\n for (i = 0; i < marcasState.length; i++) {\r\n data[\"Marcas\"].push({ Marca: marcasState[i] });\r\n }\r\n for (i = 0; i < tallasState.length; i++) {\r\n data[\"Tallas\"].push({ \"Variantes.Tallas.Talla\": tallasState[i] });\r\n }\r\n for (i = 0; i < coloresState.length; i++) {\r\n data[\"Colores\"].push({ \"Variantes.Color\": coloresState[i] });\r\n }\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando productos...\",\r\n });\r\n }\r\n\r\n await axios\r\n .post(\r\n url,\r\n {\r\n data,\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n response.data.data,\r\n ]);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n //refBar.current.scrollIntoView({behavior: \"smooth\"});\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: false },\r\n [],\r\n ]);\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const obtenerData = async () => {\r\n let url = apiUrlState + \"/Api/Producto/getData\";\r\n await axios.get(url).then((response) => {\r\n actualizarData(response.data[0]);\r\n });\r\n };\r\n //Limpia los states de todos los filtros para no dejar ninguno seleccionado.\r\n const limpiarFiltros = () => {\r\n if (tallasState.length > 0) modificarTallasState([]);\r\n if (coloresState.length > 0) modificarColoresState([]);\r\n if (marcasState.length > 0) modificarMarcasState([]);\r\n };\r\n\r\n //Funcion para actualizar el estado de cada lista de productos.\r\n const actualizarLista = (\r\n queBar,\r\n categoriaId,\r\n generoId,\r\n refBar,\r\n MarcaId,\r\n SubgeneroId,\r\n MarcaExcluida\r\n ) => {\r\n if (queBar === \"listaGorras\") {\r\n ReactPixel.track(\"Gorras\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaPolosHombre\") {\r\n ReactPixel.track(\"Polos\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaCamisetasMujer\") {\r\n ReactPixel.track(\"Camisetas Mujer\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaHoodiesHombre\") {\r\n ReactPixel.track(\"Hoodies Hombre\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaHoodiesMujer\") {\r\n ReactPixel.track(\"Hoodies Mujer\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaPantalonetasHombre\") {\r\n ReactPixel.track(\"Pantalonetas\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaJoggersHombre\") {\r\n ReactPixel.track(\"Joggers Hombre\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaJoggersMujer\") {\r\n ReactPixel.track(\"Joggers Mujer\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaCamisetasHombreBasicas\") {\r\n ReactPixel.track(\"Camisetas Basicas\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaCamisetasHombreEstampadas\") {\r\n ReactPixel.track(\"Camisetas Estampadas\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaCamisetasHombreValtimor\") {\r\n ReactPixel.track(\"Camisetas Valtimor\", \"ViewContent\");\r\n }\r\n\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n [],\r\n ]);\r\n limpiarFiltros();\r\n if (!estadoBar[queBar]) {\r\n obtenerProductos(\r\n refBar,\r\n categoriaId,\r\n generoId,\r\n MarcaId,\r\n SubgeneroId,\r\n MarcaExcluida\r\n );\r\n }\r\n let estados = {\r\n listaCamisetasHombre: false,\r\n listaCamisetasHombreBasicas: false,\r\n listaCamisetasHombreEstampadas: false,\r\n listaCamisetasHombreValtimor: false,\r\n listaHoodiesHombre: false,\r\n listaJoggersHombre: false,\r\n listaPantalonetasHombre: false,\r\n listaPolosHombre: false,\r\n listaGorras: false,\r\n listaCamisetasMujer: false,\r\n listaHoodiesMujer: false,\r\n listaJoggersMujer: false,\r\n listaBlusas: false,\r\n listaVestidos: false,\r\n listaLycras: false,\r\n listaBodys: false,\r\n listaCamisas: false,\r\n listaDescuentos: false,\r\n };\r\n estados[queBar] = !estadoBar[queBar];\r\n actualizarEstadoBar(estados);\r\n };\r\n\r\n //Ruta landing\r\n const RutaLanding = async () => {\r\n //rutaDinamica = false\r\n\r\n if (Categoria === \"Camiseta\" && Genero === \"Hombre\") {\r\n actualizarLista(\r\n \"listaCamisetasHombre\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barCamisetasHombre\r\n );\r\n }\r\n if (Categoria === \"Camiseta\" && Genero === \"Mujer\") {\r\n actualizarLista(\r\n \"listaCamisetasMujer\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barCamisetasMujer\r\n );\r\n }\r\n if (Categoria === \"Gorra\" && Genero === \"Unisex\") {\r\n actualizarLista(\r\n \"listaGorras\",\r\n \"607ed63e521b1c0910a581ac\",\r\n \"607ed653521b1c0910a581bb\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barGorras\r\n );\r\n }\r\n if (Categoria === \"Hoodie\" && Genero === \"Hombre\") {\r\n actualizarLista(\r\n \"listaHoodiesHombre\",\r\n \"607ed63e521b1c0910a581ad\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barHoodiesHombre\r\n );\r\n }\r\n if (Categoria === \"Hoodie\" && Genero === \"Mujer\") {\r\n actualizarLista(\r\n \"listaHoodiesMujer\",\r\n \"607ed63e521b1c0910a581ad\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barHoodiesMujer\r\n );\r\n }\r\n if (Categoria === \"Polo\" && Genero === \"Hombre\") {\r\n actualizarLista(\r\n \"listaPolosHombre\",\r\n \"607ed63f521b1c0910a581b1\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barPolosHombre\r\n );\r\n }\r\n if (Categoria === \"Blusa\") {\r\n actualizarLista(\r\n \"listaBlusas\",\r\n \"651aec4251072238a0969749\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barBlusas\r\n );\r\n }\r\n if (Categoria === \"Vestido\") {\r\n actualizarLista(\r\n \"listaVestidos\",\r\n \"65578d4701bf5211b63d14bc\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barVestidos\r\n );\r\n }\r\n if (Categoria === \"Lycra\") {\r\n actualizarLista(\r\n \"listaLycras\",\r\n \"6525a7906b44bb8bf3323210\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barLycras\r\n );\r\n }\r\n if (Categoria === \"Body\") {\r\n actualizarLista(\r\n \"listaBodys\",\r\n \"655bad5a1cdc932b9e974a01\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barBodys\r\n );\r\n }\r\n if (Categoria === \"Camisa\") {\r\n actualizarLista(\r\n \"listaCamisas\",\r\n \"655bac441cdc932b9e9749ff\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barCamisas\r\n );\r\n }\r\n if (Categoria === \"Pantaloneta\" && Genero === \"Hombre\") {\r\n actualizarLista(\r\n \"listaPantalonetasHombre\",\r\n \"607ed63e521b1c0910a581b0\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barPantalonetasHombre\r\n );\r\n }\r\n if (Categoria === \"Jogger\" && Genero === \"Hombre\") {\r\n actualizarLista(\r\n \"listaJoggersHombre\",\r\n \"607ed63e521b1c0910a581af\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barJoggersHombre\r\n );\r\n }\r\n if (Categoria === \"Jogger\" && Genero === \"Mujer\") {\r\n actualizarLista(\r\n \"listaJoggersMujer\",\r\n \"607ed63e521b1c0910a581af\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barJoggersMujer\r\n );\r\n }\r\n if (\r\n Categoria === \"Camiseta\" &&\r\n Genero === \"Hombre\" &&\r\n Marca === \"Valtimor\"\r\n ) {\r\n actualizarLista(\r\n \"listaCamisetasHombreValtimor\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n \"607ed64c521b1c0910a581b3\",\r\n barCamisetasHombreValtimor\r\n );\r\n }\r\n if (\r\n Categoria === \"Camiseta\" &&\r\n Genero === \"Hombre\" &&\r\n Subgenero === \"Estampadas\"\r\n ) {\r\n actualizarLista(\r\n \"listaCamisetasHombreEstampadas\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n \"607ed64c521b1c0910a581b3\",\r\n \"607ed65a521b1c0910a581bf\",\r\n null,\r\n null,\r\n barCamisetasHombreEstampadas\r\n );\r\n }\r\n if (\r\n Categoria === \"Camiseta\" &&\r\n Genero === \"Hombre\" &&\r\n Subgenero === \"Basicas\"\r\n ) {\r\n actualizarLista(\r\n \"listaCamisetasHombreBasicas\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n \"607ed64c521b1c0910a581b3\",\r\n \"607ed65a521b1c0910a581bd\",\r\n null,\r\n barCamisetasHombreBasicas\r\n );\r\n }\r\n //actualizarEstadoBar(estados);\r\n };\r\n\r\n useEffect(() => {\r\n var header = JSON.parse(JSON.stringify(headerState));\r\n\r\n if (headerState[\"displayMenu\"] === \"Index\") {\r\n modificarFiltrosState({\r\n Genero: filtrosState[\"Genero\"],\r\n Categoria: filtrosState[\"Categoria\"],\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"-100%\",\r\n });\r\n const tipoClienteSession = sessionStorage.TipoCliente;\r\n modificarHeaderState({\r\n srcLogo: headerState[\"srcLogo\"],\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha: headerState[\"srcFlecha\"],\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Productos\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: tipoClienteSession,\r\n BotonCatalogo: CatalogoState,\r\n });\r\n }\r\n if (headerState[\"Cliente\"] === undefined) {\r\n modificarHeaderState({\r\n srcLogo: headerState[\"srcLogo\"],\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha: headerState[\"srcFlecha\"],\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Productos\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: \"Mayoristas\",\r\n BotonCatalogo: CatalogoState,\r\n });\r\n actualizarSessionStorage(\"TipoCliente\", \"Mayoristas\");\r\n if (header[\"displayBuscar\"] !== \"in-line\") {\r\n header[\"displayBuscar\"] = \"in-line\";\r\n modificarHeaderState(header);\r\n }\r\n RutaLanding();\r\n }\r\n if (clienteState[\"Registro\"]) {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n Registro: false,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n Registro: false,\r\n });\r\n }\r\n });\r\n useEffect(() => {\r\n textoCirculo();\r\n obtenerData();\r\n }, []);\r\n const textoCirculo = () => {\r\n const circulo = document.getElementById(\"circle\");\r\n const circleArray = circulo.textContent.trimStart().split(\"\");\r\n circulo.textContent = \" \";\r\n for (var i = 0; i < circleArray.length; i++) {\r\n circulo.innerHTML +=\r\n '' +\r\n circleArray[i] +\r\n \"\";\r\n }\r\n };\r\n\r\n const images = {\r\n img1: [\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL1.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL2.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL3.webp\",\r\n ],\r\n img2: [\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL21.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL22.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL23.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL24.webp\",\r\n ],\r\n img3: [\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL31.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL32.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL33.webp\",\r\n \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL34.webp\",\r\n ]\r\n\r\n }\r\n /*\r\n //Mediante la referenca del primer producto se desplaza el scroll de forma suave hacia el.\r\n const irInicio = () => {\r\n if(prod1[\"current\"] !== null){\r\n prod1.current.scrollIntoView({behavior: \"smooth\"});\r\n modificarProductosState([{\"CambioSeccion\": false, \"Busqueda\": productosState[0][\"Busqueda\"], \"irInicio\": false}, productosState[1]]);\r\n }\r\n }*/\r\n return (\r\n
\r\n \r\n \r\n \r\n

¿Necesitas ayuda?

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

\r\n Haz click sobre los productos que quieres ver\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-grande-abajo.png\";\r\n }}\r\n />\r\n
*/}\r\n \r\n {/*
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
*/}\r\n {/*
\r\n \r\n actualizarLista(\r\n \"listaGorras\",\r\n \"607ed63e521b1c0910a581ac\",\r\n \"607ed653521b1c0910a581bb\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barGorras\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Categorias/gorras.png\";\r\n }}\r\n />\r\n
\r\n

Gorras

\r\n {data.GORRAS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.GORRAS.Descuento > 0 ? (\r\n

{data.GORRAS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n
*/}\r\n {/*
\r\n \r\n actualizarLista(\r\n \"listaCamisetasHombreBasicas\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n \"607ed64c521b1c0910a581b3\",\r\n \"607ed65a521b1c0910a581bd\",\r\n null,\r\n barCamisetasHombreBasicas\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/camisetasHombre.png\";\r\n }}\r\n >\r\n
\r\n

Camisetas Básicas

\r\n {data.BASICAS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.BASICAS.Descuento > 0 ? (\r\n

{data.BASICAS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n */}\r\n {/*
\r\n \r\n actualizarLista(\r\n \"listaCamisetasHombreEstampadas\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n \"607ed64c521b1c0910a581b3\",\r\n \"607ed65a521b1c0910a581bf\",\r\n null,\r\n barCamisetasHombreEstampadas\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/camisetasHombre.png\";\r\n }}\r\n >\r\n
\r\n

Camisetas Estampadas

\r\n {data.ESTAMPADAS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.ESTAMPADAS.Descuento > 0 ? (\r\n

{data.ESTAMPADAS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n */}\r\n {/*
\r\n \r\n actualizarLista(\r\n \"listaCamisetasHombreValtimor\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n \"607ed64c521b1c0910a581b3\",\r\n barCamisetasHombreValtimor\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Categorias/camisetasHombreValtimor.png\";\r\n }}\r\n >\r\n
\r\n

Camisetas Valtimor

\r\n {data.VALTIMOR.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.VALTIMOR.Descuento > 0 ? (\r\n

{data.VALTIMOR.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n */}\r\n
\r\n \r\n actualizarLista(\r\n \"listaCamisetasMujer\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barCamisetasMujer\r\n )\r\n }\r\n >\r\n {/* {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/camisetaMujer.png\";\r\n }}\r\n />\r\n
*/}\r\n

Camisetas Mujer

\r\n {data.MUJER.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.MUJER.Descuento > 0 ? (\r\n

{data.MUJER.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {/*
\r\n \r\n actualizarLista(\r\n \"listaPolosHombre\",\r\n \"607ed63f521b1c0910a581b1\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barPolosHombre\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/polosHombre.png\";\r\n }}\r\n >\r\n
\r\n

Polos

\r\n {data.POLOS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.POLOS.Descuento > 0 ? (\r\n

{data.POLOS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n */}\r\n
\r\n \r\n actualizarLista(\r\n \"listaBlusas\",\r\n \"651aec4251072238a0969749\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barBlusas\r\n )\r\n }\r\n >\r\n {/* {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/blusa.png\";\r\n }}\r\n >\r\n
*/}\r\n

Blusas

\r\n {data.BLUSAS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.BLUSAS.Descuento > 0 ? (\r\n

{data.BLUSAS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaVestidos\",\r\n \"65578d4701bf5211b63d14bc\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barVestidos\r\n )\r\n }\r\n >\r\n {/* {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/vestido.png\";\r\n }}\r\n >\r\n
*/}\r\n

Vestidos

\r\n {data.VESTIDOS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.VESTIDOS.Descuento > 0 ? (\r\n

{data.VESTIDOS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaLycras\",\r\n \"6525a7906b44bb8bf3323210\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barLycras\r\n )\r\n }\r\n >\r\n {/* {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/lycra.png\";\r\n }}\r\n >\r\n
*/}\r\n

Lycras

\r\n {data.LYCRAS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.LYCRAS.Descuento > 0 ? (\r\n

{data.LYCRAS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaBodys\",\r\n \"655bad5a1cdc932b9e974a01\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barBodys\r\n )\r\n }\r\n >\r\n {/* {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/body.png\";\r\n }}\r\n >\r\n
*/}\r\n

Bodys

\r\n {data.BODYS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.BODYS.Descuento > 0 ? (\r\n

{data.BODYS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaCamisas\",\r\n \"655bac441cdc932b9e9749ff\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barCamisas\r\n )\r\n }\r\n >\r\n {/* {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/camisa.png\";\r\n }}\r\n >\r\n
*/}\r\n

Camisas

\r\n {data.CAMISAS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.CAMISAS.Descuento > 0 ? (\r\n

{data.CAMISAS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {/*
\r\n \r\n actualizarLista(\r\n \"listaPantalonetasHombre\",\r\n \"607ed63e521b1c0910a581b0\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barPantalonetasHombre\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/pantalonetas.png\";\r\n }}\r\n >\r\n
\r\n

Pantalonetas

\r\n {data.PANTALONETAS.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.PANTALONETAS.Descuento > 0 ? (\r\n

{data.PANTALONETAS.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaHoodiesHombre\",\r\n \"607ed63e521b1c0910a581ad\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barHoodiesHombre\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/hoodiesHombre.png\";\r\n }}\r\n >\r\n
\r\n

Hoodies Hombre

\r\n {data.HOODIES_H.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.HOODIES_H.Descuento > 0 ? (\r\n

{data.HOODIES_H.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaHoodiesMujer\",\r\n \"607ed63e521b1c0910a581ad\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barHoodiesMujer\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/hoodiesMujer.png\";\r\n }}\r\n />\r\n
\r\n

Hoodies Mujer

\r\n {data.HODDIES_M.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.HODDIES_M.Descuento > 0 ? (\r\n

{data.HODDIES_M.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaJoggersHombre\",\r\n \"607ed63e521b1c0910a581af\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barJoggersHombre\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/joggersHombre.png\";\r\n }}\r\n >\r\n
\r\n

Joggers Hombre

\r\n {data.JOGGER_H.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.JOGGER_H.Descuento > 0 ? (\r\n

{data.JOGGER_H.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n actualizarLista(\r\n \"listaJoggersMujer\",\r\n \"607ed63e521b1c0910a581af\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n null,\r\n null,\r\n barJoggersMujer\r\n )\r\n }\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Categorias/joggerMujer.png\";\r\n }}\r\n />\r\n
\r\n

Joggers Mujer

\r\n {data.JOGGER_M.Nuevo ? (\r\n

\r\n NEW\r\n

\r\n ) : (\r\n <>\r\n )}\r\n {data.JOGGER_M.Descuento > 0 ? (\r\n

{data.JOGGER_M.Descuento}% OFF

\r\n ) : (\r\n <>\r\n )}\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n */}\r\n
\r\n \r\n actualizarLista(\r\n \"listaDescuentos\",\r\n \"Descuentos\",\r\n null,\r\n \"hombre\",\r\n null,\r\n null,\r\n null,\r\n barDescuentos\r\n )\r\n }\r\n >\r\n {/* {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Header/logos/logo-negro.webp\";\r\n }}\r\n />\r\n
*/}\r\n

Rebajas

\r\n

20% OFF

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\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 Mayoristas;\r\n","import axios from 'axios'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useState, useEffect, useRef } from 'react'\r\nimport { useGlobalContext } from '../../providers/GlobalStatesProviders'\r\nimport './static/css/Registro/FormRegistro.css'\r\n\r\nconst FormRegistro = ({\r\n apiUrlState,\r\n headerState,\r\n actualizarSessionStorage,\r\n spinnerState,\r\n modificarSpinnerState,\r\n actualizar,\r\n setActualizar,\r\n vendedor,\r\n}) => {\r\n\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n /** Estado para manejo del formulario con react-hook-form */\r\n const { register, handleSubmit, setValue, watch ,formState: {\r\n errors\r\n } } = useForm();\r\n\r\n const [departamentos, setDepartamentos] = useState([]);\r\n const [ciudades, setCiudades] = useState([]);\r\n const [vinculado, setVinculado] = useState(null);\r\n const [sucursales, setSucursales] = useState([]);\r\n const [selectSucursal, setSelectSucursal] = useState(null);\r\n const [consulta, setConsulta] = useState(false);\r\n\r\n /** Controla la ejecucion de consulta de vinculado para \r\n * que no se ejecute con cada pulsacion de teclado */\r\n const timeoutRef = useRef(null);\r\n\r\n/** Habilita la actualizacion de vinculado unicamente cuando\r\n * se valida el formulario */\r\n const step = useRef(false);\r\n\r\n const consultarDepartamentos = async (Pais) => {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Consultando Departamentos...\"\r\n });\r\n await axios\r\n .post(apiUrlState + \"/Api/Departamento/ObtenerDepartamentos\", {\r\n data: {\r\n Pais: Pais,\r\n },\r\n }).then((response)=>{\r\n setDepartamentos(response.data.data);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Consultando Departamentos...\"\r\n });\r\n }).catch((error)=>{\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Consultando Departamentos...\"\r\n });\r\n // Desplegar error\r\n });\r\n }\r\n\r\n const consultarCiudades = async (Departamento) => {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Consultando Ciudades...\"\r\n });\r\n await axios\r\n .post(apiUrlState + \"/Api/Ciudad/ObtenerCiudades\", {\r\n data: {\r\n Departamento: Departamento,\r\n },\r\n })\r\n .then((response) => {\r\n setCiudades(response.data.data);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Consultando Ciudades...\"\r\n });\r\n }).catch((error)=> {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Consultando Ciudades...\"\r\n });\r\n // Desplegar error\r\n })\r\n }\r\n\r\n /**Comprueba el numero de documento y consulta para ver\r\n * si es cliente registrado. */\r\n const handleChangeDoc = (e) => {\r\n const value = e.target.value; \r\n const doc = value.replace(/[^0-9]/g, '');\r\n setValue(\"Documento\", doc);\r\n if(doc.length > 5 && doc.length < 14) {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n timeoutRef.current = setTimeout(()=> {\r\n consultarVinculado(doc);\r\n }, 1000);\r\n }\r\n };\r\n\r\n const consultarVinculado = async (documento) => {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Consultando Cliente...\"\r\n });\r\n // Si se esta digitando una identificación, no utiliza el cliente local\r\n setConsulta(true);\r\n const url = `${apiUrlState}/Api/Usuario/GetInfoUsuarioMgerV2/${documento}`;\r\n const response = await axios.get(url);\r\n if(response.data.existe) {\r\n setVinculado(response.data.data);\r\n setSucursales(response.data.Sucursales);\r\n } else {\r\n setVinculado(\"\");\r\n setVinculado(null);\r\n setSucursales([]);\r\n setSelectSucursal(null);\r\n }\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Consultando Cliente...\"\r\n });\r\n }\r\n\r\n /** Se utiliza solo para setear las sucursales cuando se carga el vinculado\r\n * desde el localStorage\r\n */\r\n const consultarSucursales = async (documento) => {\r\n const url = `${apiUrlState}/Api/Usuario/GetInfoUsuarioMgerV2/${documento}`;\r\n const response = await axios.get(url);\r\n if(response.data.existe) {\r\n setSucursales(response.data.Sucursales);\r\n } else {\r\n setSucursales([]);\r\n }\r\n }\r\n\r\n const handleChangeSucursal = (value) => {\r\n const idSucursal = value;\r\n if(idSucursal !== \"0\") {\r\n const sucursal = sucursales.find(suc => suc.Identificador === idSucursal);\r\n setSelectSucursal(sucursal); \r\n } else {\r\n setSelectSucursal(null);\r\n }\r\n }\r\n\r\n /**\r\n * Diligencia el formulario de vinculado con los datos de la Api o con los\r\n * obtenidos del localStorage.\r\n * @param consultar Boleano para resolver si se llena el form con el vinculado\r\n * o con el cliente local. consultado: true -> Datos desde Api.\r\n */\r\n const llenarFormVinculado = async(consultado) => {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Consultando datos del cliente...\"\r\n });\r\n const storageClient = localStorage.getItem(\"Cliente\");\r\n const clienteLocal = storageClient===\"undefined\"\r\n ? \"\"\r\n : JSON.parse(localStorage.getItem(\"Cliente\"));\r\n if(clienteLocal && !consultado) {\r\n consultarSucursales(clienteLocal.NumeroDocumento);\r\n }\r\n let initialValues = {\r\n Documento: clienteLocal? clienteLocal.NumeroDocumento : '',\r\n TipoDocumento: clienteLocal? clienteLocal.TipoDocumento : '',\r\n Nombre: clienteLocal? clienteLocal.Nombres : '',\r\n Apellido: clienteLocal? clienteLocal.Apellidos : '',\r\n // Sucursal: '0',\r\n Telefono: clienteLocal? clienteLocal.Celular : '',\r\n FechaNacimiento: clienteLocal? clienteLocal.FechaNacimiento : '',\r\n Email: clienteLocal? clienteLocal.Correo : '',\r\n Genero: clienteLocal? clienteLocal.Genero : '',\r\n Pais: clienteLocal? clienteLocal.Pais : '',\r\n Departamento: clienteLocal? clienteLocal.Departamento : '',\r\n Ciudad: clienteLocal? clienteLocal.Ciudad : '',\r\n Direccion: clienteLocal? clienteLocal.Direccion : '',\r\n Barrio: clienteLocal? clienteLocal.Barrio : '',\r\n }\r\n if(consultado) {\r\n let fecha = '';\r\n if(vinculado!=null && vinculado.FechaNacimiento!=undefined) {\r\n fecha = new Date(vinculado.FechaNacimiento).toISOString().split('T')[0];\r\n }\r\n\r\n initialValues = {\r\n // Documento: vinculado? vinculado.NumeroDocumento : \"\",\r\n TipoDocumento: vinculado? vinculado.TipoDocumento : \"\",\r\n Nombre: vinculado? vinculado.Nombres : \"\",\r\n Apellido: vinculado? vinculado.Apellidos : \"\",\r\n // Sucursal: \"0\",\r\n Telefono: vinculado? vinculado.Celular : \"\",\r\n FechaNacimiento: fecha,\r\n Email: vinculado? vinculado.Correo : \"\",\r\n Genero: vinculado? vinculado.Genero : \"\",\r\n Pais: vinculado? vinculado.Ciudad.Departamento.Pais._id : \"\",\r\n Departamento: vinculado? vinculado.Ciudad.Departamento._id : \"\",\r\n Ciudad: vinculado? vinculado.Ciudad._id : \"\",\r\n Direccion: vinculado? vinculado.Direccion : \"\",\r\n Barrio: vinculado? vinculado.Barrio : \"\",\r\n }\r\n }\r\n if(initialValues.Pais !== \"\") {\r\n await consultarDepartamentos(initialValues.Pais);\r\n }\r\n if(initialValues.Departamento !== \"\") {\r\n await consultarCiudades(initialValues.Departamento);\r\n }\r\n Object.keys(initialValues).forEach((key) => {\r\n setValue(key, initialValues[key]);\r\n });\r\n if(vinculado !== null && consultado) {\r\n actualizarClienteState();\r\n }\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Consultando datos del cliente...\"\r\n });\r\n }\r\n\r\n const llenarFormSucursal = async() => {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Consultando sucursal...\"\r\n });\r\n let initialValues = {\r\n Snombre: selectSucursal.Nombres,\r\n Semail: selectSucursal.Correo,\r\n Stelefono: selectSucursal.Celular,\r\n Spais: selectSucursal.Ciudad.Departamento.Pais._id,\r\n Sdepartamento: selectSucursal.Ciudad.Departamento._id,\r\n Sciudad: selectSucursal.Ciudad._id,\r\n Sdireccion: selectSucursal.Direccion,\r\n Sbarrio: selectSucursal.Barrio,\r\n }\r\n await consultarDepartamentos(initialValues.Spais);\r\n await consultarCiudades(initialValues.Sdepartamento);\r\n \r\n Object.keys(initialValues).forEach((key) => {\r\n setValue(key, initialValues[key]);\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Consultando sucursal...\"\r\n });\r\n }\r\n\r\n /** Actualiza el State y el localStorage de cliente con los datos\r\n * actuales del formulario */\r\n const actualizarClienteState = () => {\r\n const cliente = {\r\n // ...vinculado,\r\n Registro: false,\r\n Accion: \"Activo\",\r\n Sesion: true, // Revisar cuando no se llena automatico\r\n NumeroDocumento: watch(\"Documento\"),\r\n TipoDocumento: watch(\"TipoDocumento\"),\r\n Nombres: watch(\"Nombre\"),\r\n Apellidos: watch(\"Apellido\"),\r\n Sucursal: !selectSucursal ? \"0\" : selectSucursal.Identificador,\r\n Celular: watch(\"Telefono\"),\r\n FechaNacimiento: watch(\"FechaNacimiento\"),\r\n Correo: watch(\"Email\"),\r\n Genero: watch(\"Genero\"),\r\n Pais: watch(\"Pais\"),\r\n Departamento: watch(\"Departamento\"),\r\n Ciudad: watch(\"Ciudad\"),\r\n Direccion: watch(\"Direccion\"),\r\n Barrio: watch(\"Barrio\"),\r\n };\r\n actualizarSessionStorage(\"Cliente\", JSON.stringify(cliente));\r\n modificarClienteState({...cliente});\r\n }\r\n\r\n const actualizarSucursal = async () => {\r\n if(selectSucursal !== null) {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Actualizando Sucursal...\"\r\n });\r\n const dataSucursal = {\r\n NuevosDatosUsuario: [\r\n {\r\n NumeroDocumento: watch(\"Documento\"),\r\n Correo: watch(\"Semail\"),\r\n Nombres: watch(\"Snombre\"),\r\n Apellidos: \"\",\r\n Celular: watch(\"Stelefono\"),\r\n Pais: watch(\"Spais\"),\r\n Departamento: watch(\"Sdepartamento\"),\r\n Ciudad: watch(\"Sciudad\"),\r\n Direccion: watch(\"Sdireccion\"),\r\n Barrio: watch(\"Sbarrio\"),\r\n TipoTercero: headerState[\"Cliente\"],\r\n Sucursal: selectSucursal.Identificador,\r\n },\r\n ],\r\n }\r\n const url = `${apiUrlState}/Api/Usuario/ActualizarSucursal`;\r\n const response = await axios.post(url, dataSucursal);\r\n // console.log(\"Respuesta update sucursal\", response);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"Actualizando Sucursal...\"\r\n }); \r\n }\r\n }\r\n\r\n /** Realiza la verificación del fomulario y ejecuta la actualización */\r\n const onSubmit = handleSubmit(async ()=> {\r\n await actualizarSucursal();\r\n actualizarClienteState();\r\n step.current = true;\r\n })\r\n\r\n /** Se ejecuta cuando se cambia el estado de {actualizar} desde \r\n * el componente pedido con el boton continuar compra */\r\n useEffect(() => {\r\n if(actualizar.Ejecucion) {\r\n onSubmit();\r\n setActualizar({...actualizar, Ejecucion: false});\r\n } \r\n }, [actualizar])\r\n \r\n\r\n /** Se ejecuta despues de actualizar la sucursal para que inicie\r\n * la actualizacion de datos del vinculado del componente pedido */\r\n useEffect(() => {\r\n if(step.current) {\r\n setActualizar({...actualizar, Usuario: true});\r\n }\r\n step.current = false;\r\n }, [clienteState]);\r\n\r\n /** Llena el form de vinculado con los datos obtenidos\r\n * desde la Api */\r\n useEffect(() => {\r\n llenarFormVinculado(true);\r\n }, [vinculado])\r\n\r\n /** Llena el form de la sucursal o del cliente\r\n * dependiendo de la sucursal seleccionada. */\r\n useEffect(() => {\r\n if(selectSucursal) {\r\n llenarFormSucursal();\r\n } else {\r\n llenarFormVinculado(consulta)\r\n }\r\n },[selectSucursal])\r\n\r\n /** Si el vinculado tiene sucursales, se selecciona\r\n * alguna por defecto.\r\n */\r\n useEffect(() => {\r\n if(sucursales.length != 0) {\r\n setValue(\"Sucursal\", sucursales[0].Identificador);\r\n handleChangeSucursal(sucursales[0].Identificador);\r\n } else {\r\n setValue(\"Sucursal\", \"0\");\r\n handleChangeSucursal(\"0\");\r\n }\r\n }, [sucursales])\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n handleChangeDoc(e)}\r\n />\r\n {errors.Documento && (\r\n {errors.Documento.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n {errors.TipoDocumento && (\r\n \r\n {errors.TipoDocumento.message}\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.Nombre && (\r\n {errors.Nombre.message}\r\n )}\r\n
\r\n
\r\n \r\n {\r\n return (\r\n (watch(\"TipoDocumento\") === \"31\" || value !== \"\") ||\r\n \"El Apellido es requerido\"\r\n );\r\n },\r\n })}\r\n />\r\n {errors.Apellido && (\r\n {errors.Apellido.message}\r\n )}\r\n
\r\n {vendedor? (\r\n
\r\n \r\n {handleChangeSucursal(e.target.value)}}\r\n >\r\n {sucursales.length == 0? (\r\n \r\n ) : null}\r\n {sucursales.map((sucursal) => (\r\n \r\n {sucursal.Nombres}\r\n \r\n ))}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n \r\n {errors.Telefono && (\r\n {errors.Telefono.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.FechaNacimiento && (\r\n \r\n {errors.FechaNacimiento.message}\r\n \r\n )}\r\n
\r\n
\r\n\r\n {/* Form-rigth */}\r\n {!selectSucursal? (\r\n
\r\n
\r\n \r\n \r\n {errors.Email && (\r\n {errors.Email.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {errors.Genero && (\r\n {errors.Genero.message}\r\n )}\r\n
\r\n
\r\n \r\n {\r\n consultarDepartamentos(e.target.value);\r\n }}\r\n >\r\n \r\n \r\n \r\n {errors.Pais && (\r\n {errors.Pais.message}\r\n )}\r\n
\r\n
\r\n \r\n {\r\n consultarCiudades(e.target.value);\r\n }}\r\n >\r\n \r\n {departamentos.map((dpto) => (\r\n \r\n ))}\r\n \r\n {errors.Departamento && (\r\n \r\n {errors.Departamento.message}\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n {ciudades.map((ciudad) => (\r\n \r\n ))}\r\n \r\n {errors.Ciudad && (\r\n {errors.Ciudad.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.Direccion && (\r\n {errors.Direccion.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.Barrio && (\r\n {errors.Barrio.message}\r\n )}\r\n
\r\n
\r\n ) : (\r\n\r\n /* Formulario de sucursal */\r\n
\r\n
\r\n \r\n \r\n {errors.Snombre && (\r\n {errors.Snombre.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.Semail && (\r\n {errors.Semail.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.Stelefono && (\r\n {errors.Stelefono.message}\r\n )}\r\n
\r\n
\r\n \r\n {\r\n consultarDepartamentos(e.target.value);\r\n }}\r\n >\r\n \r\n \r\n \r\n {errors.Spais && (\r\n {errors.Spais.message}\r\n )}\r\n
\r\n
\r\n \r\n {\r\n consultarCiudades(e.target.value);\r\n }}\r\n >\r\n \r\n {departamentos.map((dpto) => (\r\n \r\n ))}\r\n \r\n {errors.Sdepartamento && (\r\n \r\n {errors.Sdepartamento.message}\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n {ciudades.map((ciudad) => (\r\n \r\n ))}\r\n \r\n {errors.Sciudad && (\r\n {errors.Sciudad.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.Sdireccion && (\r\n {errors.Sdireccion.message}\r\n )}\r\n
\r\n
\r\n \r\n \r\n {errors.Sbarrio && (\r\n {errors.Sbarrio.message}\r\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;","//Zona de importacion de componentes externos.\r\nimport React, { useEffect } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport FormRegistro from \"./FormRegistro\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n//import { Checkbox } from '@material-ui/core;\r\n\r\nconst Registro = ({\r\n headerState,\r\n modificarHeaderState,\r\n pedidoState,\r\n modificarPedidoState,\r\n // clienteState,\r\n // modificarClienteState,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n actualizarSessionStorage,\r\n actualizar,\r\n setActualizar,\r\n vendedor,\r\n}) => {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n //const [direccionState, modificarDireccionState] = useState({via: \"\",Nro: \"\",Letra: \"\", Sector: \"\", Cruce: \"\", NroPlaca: \"\", LetraPlaca: \"\", NroPlaca2: \"\" });\r\n const path = useLocation();\r\n //Obtiene todos los datos del clienteState y rellena los inputs del formulario\r\n const llenarInfo = async (usuario, actualizar, datosApi) => {\r\n var usuarioCarga = {\r\n Registro: false,\r\n Accion: \"Activo\",\r\n Sesion: actualizar ? true : usuario[\"Sesion\"],\r\n TipoDocumento: usuario[\"TipoDocumento\"],\r\n NumeroDocumento: usuario[\"NumeroDocumento\"],\r\n Nombres:\r\n usuario[\"Nombres\"] !== \"\"\r\n ? capitalizarPalabras(usuario[\"Nombres\"])\r\n : \"\",\r\n Apellidos:\r\n usuario[\"Apellidos\"] !== \"\"\r\n ? capitalizarPalabras(usuario[\"Apellidos\"])\r\n : \"\",\r\n Correo: usuario[\"Correo\"],\r\n Genero: usuario[\"Genero\"],\r\n Celular: usuario[\"Celular\"],\r\n // FechaNacimiento: datosApi\r\n // ? convertDateFormat(usuario[\"FechaNacimiento\"])\r\n // : usuario[\"FechaNacimiento\"],\r\n // Universidad: usuario[\"Universidad\"],\r\n Pais: datosApi ? usuario.Ciudad.Departamento.Pais._id : usuario[\"Pais\"],\r\n Ciudad: datosApi ? usuario.Ciudad._id : usuario[\"Ciudad\"],\r\n Departamento: datosApi\r\n ? usuario.Ciudad.Departamento._id\r\n : usuario[\"Departamento\"],\r\n Direccion: usuario[\"Direccion\"],\r\n Barrio: usuario[\"Barrio\"],\r\n };\r\n if (usuarioCarga[\"TipoDocumento\"] !== \"\") {\r\n document.getElementById(\"tipoD_input\").value =\r\n usuarioCarga[\"TipoDocumento\"];\r\n document.getElementById(\"tipoD_input\").classList.add(\"correcto\");\r\n document.getElementById(\"tipoD_input\").setAttribute(\"title\", \"\");\r\n } else {\r\n document.getElementById(\"tipoD_input\").value = \"1\"\r\n }\r\n if (usuarioCarga[\"NumeroDocumento\"] !== \"\") {\r\n document.getElementById(\"numeroD_input\").value =\r\n usuarioCarga[\"NumeroDocumento\"];\r\n document.getElementById(\"numeroD_input\").classList.add(\"correcto\");\r\n document.getElementById(\"numeroD_input\").setAttribute(\"title\", \"\");\r\n }\r\n if (usuarioCarga[\"Nombres\"] !== \"\") {\r\n document.getElementById(\"nombres_input\").value = usuarioCarga[\"Nombres\"];\r\n document.getElementById(\"nombres_input\").classList.add(\"correcto\");\r\n document.getElementById(\"nombres_input\").setAttribute(\"title\", \"\");\r\n }\r\n if (usuarioCarga[\"Apellidos\"] !== \"\") {\r\n document.getElementById(\"apellidos_input\").value =\r\n usuarioCarga[\"Apellidos\"];\r\n document.getElementById(\"apellidos_input\").classList.add(\"correcto\");\r\n document.getElementById(\"apellidos_input\").setAttribute(\"title\", \"\");\r\n }else {\r\n document.getElementById(\"apellidos_input\").value = \"\"\r\n }\r\n if (usuarioCarga[\"Correo\"] !== \"\") {\r\n document.getElementById(\"correo_input\").value = usuarioCarga[\"Correo\"];\r\n document.getElementById(\"correo_input\").classList.add(\"correcto\");\r\n document.getElementById(\"correo_input\").setAttribute(\"title\", \"\");\r\n }\r\n if (usuarioCarga[\"Genero\"] !== \"\") {\r\n document.getElementById(\"genero_input\").value = usuarioCarga[\"Genero\"];\r\n document.getElementById(\"genero_input\").classList.add(\"correcto\");\r\n document.getElementById(\"genero_input\").setAttribute(\"title\", \"\");\r\n }\r\n if (usuarioCarga[\"Celular\"] !== \"\") {\r\n document.getElementById(\"celular_input\").value = usuarioCarga[\"Celular\"];\r\n document.getElementById(\"celular_input\").classList.add(\"correcto\");\r\n document.getElementById(\"celular_input\").setAttribute(\"title\", \"\");\r\n }\r\n // if (usuarioCarga[\"FechaNacimiento\"] !== \"\") {\r\n // document.getElementById(\"fechaNacimiento_input\").value =\r\n // cambioFormatoFecha(usuarioCarga[\"FechaNacimiento\"]);\r\n // document\r\n // .getElementById(\"fechaNacimiento_input\")\r\n // .classList.add(\"correctoFecha\");\r\n // document\r\n // .getElementById(\"fechaNacimiento_input\")\r\n // .setAttribute(\"title\", \"\");\r\n // }\r\n // if (path.pathname === \"/Concursonacionaldediseno\" && usuarioCarga[\"Universidad\"] !== \"\") {\r\n // // Solo para el concurso\r\n // document.getElementById(\"universidad_input\").value = usuarioCarga[\"Universidad\"];\r\n // document.getElementById(\"universidad_input\").classList.add(\"correcto\");\r\n // document.getElementById(\"universidad_input\").setAttribute(\"title\", \"\");\r\n // }\r\n if (usuarioCarga[\"Direccion\"] !== \"\") {\r\n document.getElementById(\"direccion_input\").value =\r\n usuarioCarga[\"Direccion\"];\r\n document.getElementById(\"direccion_input\").classList.add(\"correcto\");\r\n document.getElementById(\"direccion_input\").setAttribute(\"title\", \"\");\r\n }\r\n if (usuarioCarga[\"Barrio\"] !== \"\") {\r\n document.getElementById(\"barrio_input\").value = usuarioCarga[\"Barrio\"];\r\n document.getElementById(\"barrio_input\").classList.add(\"correcto\");\r\n document.getElementById(\"barrio_input\").setAttribute(\"title\", \"\");\r\n } else {\r\n document.getElementById(\"barrio_input\").value = \"\";\r\n document.getElementById(\"barrio_input\").classList.add(\"error\");\r\n document.getElementById(\"barrio_input\").setAttribute(\"title\", \"\");\r\n }\r\n if (usuarioCarga[\"Pais\"] !== \"\") {\r\n document.getElementById(\"pais_input\").value = usuarioCarga[\"Pais\"];\r\n document.getElementById(\"pais_input\").classList.add(\"correcto\");\r\n document.getElementById(\"pais_input\").setAttribute(\"title\", \"\");\r\n await insertarDepartamentos(\r\n usuarioCarga[\"Pais\"],\r\n async function (respuesta) {\r\n if (usuarioCarga[\"Departamento\"] !== \"\") {\r\n document.getElementById(\"departamento_input\").value =\r\n usuarioCarga[\"Departamento\"];\r\n document\r\n .getElementById(\"departamento_input\")\r\n .classList.add(\"correcto\");\r\n document\r\n .getElementById(\"departamento_input\")\r\n .setAttribute(\"title\", \"\");\r\n await insertarCiudades(usuarioCarga[\"Departamento\"], function () {\r\n if (usuarioCarga[\"Ciudad\"] !== \"\") {\r\n document.getElementById(\"ciudad_input\").value =\r\n usuarioCarga[\"Ciudad\"];\r\n document\r\n .getElementById(\"ciudad_input\")\r\n .classList.add(\"correcto\");\r\n document\r\n .getElementById(\"ciudad_input\")\r\n .setAttribute(\"title\", \"\");\r\n }\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n actualizarSessionStorage(\"Cliente\", JSON.stringify(usuarioCarga));\r\n if (actualizar) modificarClienteState(usuarioCarga);\r\n };\r\n\r\n //Retorna el string val ingresada con la primera letra mayuscula.\r\n const capitalizarPalabras = (val) => {\r\n var minuscula = val.toLowerCase();\r\n minuscula = minuscula.split(\" \");\r\n var result = \"\";\r\n for (var i = 0; i < minuscula.length; i++) {\r\n result +=\r\n minuscula[i][0].toUpperCase() +\r\n minuscula[i].slice(1) +\r\n (i + 1 < minuscula.length ? \" \" : \"\");\r\n }\r\n return result;\r\n };\r\n\r\n //Retorna la fecha ingresada cambiandole el formato.\r\n const cambioFormatoFecha = (fecha) => {\r\n var partido = fecha.split(\"-\");\r\n return partido[2] + \"-\" + partido[0] + \"-\" + partido[1];\r\n };\r\n\r\n //Inserta los departamentos en el select de departamentos\r\n const insertarDepartamentos = async (CodigoPais, callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Investigando tus antecedentes...\",\r\n });\r\n }\r\n await ConsultarDepartamentos(CodigoPais, function (JsonDepto) {\r\n var departamentos = document.getElementById(\"departamento_input\");\r\n for (let i = departamentos.options.length; i >= 0; i--) {\r\n departamentos.remove(i);\r\n }\r\n var option = document.createElement(\"option\");\r\n option.value = \"\";\r\n option.disabled = true;\r\n option.hidden = true;\r\n option.text = \"Seleccione su departamento\";\r\n departamentos.appendChild(option);\r\n option.disabled = false;\r\n option.hidden = false;\r\n for (var index = 0; index < JsonDepto.length; index++) {\r\n var optionDep = document.createElement(\"option\");\r\n optionDep.value = JsonDepto[index][\"_id\"];\r\n optionDep.text = capitalizarPalabras(JsonDepto[index][\"Nombre\"]);\r\n departamentos.appendChild(optionDep);\r\n }\r\n modificarSpinnerState({ Desplegar: false, Texto: spinnerState[\"texto\"] });\r\n callback({ Estado: true });\r\n });\r\n };\r\n //Inserta los ciudades en el select de ciudad\r\n const insertarCiudades = async (CodigoDepartamento, callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Investigando tus antecedentes...\",\r\n });\r\n }\r\n await ConsultarCiudades(CodigoDepartamento, function (JsonCiudad) {\r\n var ciudades = document.getElementById(\"ciudad_input\");\r\n for (let i = ciudades.options.length; i >= 0; i--) {\r\n ciudades.remove(i);\r\n }\r\n var option = document.createElement(\"option\");\r\n option.value = \"\";\r\n option.disabled = true;\r\n option.hidden = true;\r\n option.selected = true;\r\n option.text = \"Seleccione su ciudad\";\r\n ciudades.appendChild(option);\r\n option.disabled = false;\r\n option.hidden = false;\r\n option.selected = false;\r\n for (var index = 0; index < JsonCiudad.length; index++) {\r\n var optionDep = document.createElement(\"option\");\r\n optionDep.value = JsonCiudad[index][\"_id\"];\r\n optionDep.text = capitalizarPalabras(JsonCiudad[index][\"Nombre\"]);\r\n ciudades.appendChild(optionDep);\r\n }\r\n if (spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando productos...\",\r\n });\r\n }\r\n callback({ Estado: true });\r\n });\r\n };\r\n\r\n //Se realiza una consulta de todos los departamentos segun un pais.\r\n const ConsultarDepartamentos = async (Pais, callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Investigando tus antecedentes...\",\r\n });\r\n }\r\n await axios\r\n .post(apiUrlState + \"/Api/Departamento/ObtenerDepartamentos\", {\r\n data: {\r\n Pais: Pais,\r\n },\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(response.data.data);\r\n } else {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al consultar Departamentos\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al consultar Departamentos\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n //Se realiza una consulta de todas las ciudades segun un departamento.\r\n const ConsultarCiudades = async (Departamento, callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Investigando tus antecedentes...\",\r\n });\r\n }\r\n await axios\r\n .post(apiUrlState + \"/Api/Ciudad/ObtenerCiudades\", {\r\n data: {\r\n Departamento: Departamento,\r\n },\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(response.data.data);\r\n } else {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"No hay ciudades para este Departamento\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n //Retorna true si el string ingresado contiene algun numero.\r\n const todoNumeros = (texto) => {\r\n var numeros = \"0123456789\";\r\n for (var i = 0; i < texto.length; i++) {\r\n if (numeros.indexOf(texto.charAt(i), 0) === -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n //Retorna true si el string ingresado contiene algun caracter especial.\r\n const tiene_caracter_especial = (texto) => {\r\n var letras = \"abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ \";\r\n texto = texto.toLowerCase();\r\n for (var i = 0; i < texto.length; i++) {\r\n if (letras.indexOf(texto.charAt(i), 0) === -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n //Consulta a un usuario en la Bd segun su numero de documento.\r\n const ConsultarUsuario = async (Identificacion, callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Investigando tus antecedentes...\",\r\n });\r\n }\r\n await axios\r\n .get(apiUrlState + \"/Api/Usuario/GetInfoUsuarioMger/\" + Identificacion)\r\n .then((response) => {\r\n // console.log(response)\r\n if (response.data.existe) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(response.data.data);\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(null);\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n //Convierte la fecha ingresada a formato mm/aaaa/dd\r\n function convertDateFormat(string) {\r\n var primerSplit = string.split(\"T\");\r\n var info = primerSplit[0].split(\"-\");\r\n return info[1] + \"-\" + info[2] + \"-\" + info[0];\r\n }\r\n //Funcion principal:\r\n //Detecta que tipo de input se esta rellenando y valida la informacion en este.\r\n //-Corrige escritura automaticamente y bloquea la escritura incorrecta.\r\n //- Insertar el logo de correcto o incorrecto.\r\n //Actualiza el state de Cliente y tambien el sesionStorage.\r\n const validacion = async (e) => {\r\n var elemento = document.getElementById(e.target.id);\r\n if (e.target.value === \"\") {\r\n elemento.setAttribute(\"title\", \"Este campo no puede estar vacío\");\r\n elemento.classList.add(\"error\");\r\n elemento.classList.remove(\"correcto\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n });\r\n } else {\r\n if (e.target.name === \"NumeroDocumento\" || e.target.name === \"Celular\") {\r\n if (todoNumeros(e.target.value)) {\r\n elemento.setAttribute(\r\n \"title\",\r\n \"Este campo no puede contener letras o caracteres especiales, solo numeros\"\r\n );\r\n elemento.classList.add(\"error\");\r\n e.target.value = \"\";\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje:\r\n \"Este campo no puede contener letras o caracteres especiales, solo numeros\",\r\n });\r\n elemento.classList.remove(\"correcto\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n });\r\n } else if (\r\n e.target.name === \"NumeroDocumento\" &&\r\n (e.target.value.length < 6 || e.target.value.length > 13)\r\n ) {\r\n elemento.setAttribute(\r\n \"title\",\r\n \"Este campo no puede contener menos de 6 digitos O mas de 13 digitos\"\r\n );\r\n elemento.classList.add(\"error\");\r\n if (e.target.value.length === 6 || e.target.value.length > 13) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje:\r\n \"Este campo no puede contener menos de 6 digitos O mas de 13 digitos\",\r\n });\r\n }\r\n elemento.classList.remove(\"correcto\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n });\r\n } else if (e.target.name === \"Celular\" && e.target.value.length < 10) {\r\n elemento.setAttribute(\r\n \"title\",\r\n \"Este campo no puede contener menos de 10 digitos\"\r\n );\r\n elemento.classList.add(\"error\");\r\n elemento.classList.remove(\"correcto\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n });\r\n } else {\r\n elemento.setAttribute(\"title\", \"\");\r\n elemento.classList.remove(\"error\");\r\n elemento.classList.add(\"correcto\");\r\n if (e.target.name === \"NumeroDocumento\") {\r\n if (!clienteState[\"Registro\"]) {\r\n var antes = e.target.value;\r\n setTimeout(async function () {\r\n if (antes === e.target.value) {\r\n await ConsultarUsuario(e.target.value, function (usuario) {\r\n if (usuario !== null) llenarInfo(usuario, true, true);\r\n else {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n });\r\n }\r\n });\r\n }\r\n }, 500);\r\n } else {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n });\r\n }\r\n } else {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n });\r\n }\r\n }\r\n } else if (e.target.name === \"Nombre\" || e.target.name === \"Apellido\") {\r\n if (\r\n tiene_caracter_especial(e.target.value) ||\r\n e.target.value.indexOf(\" \", 0) !== -1 ||\r\n e.target.value[0] === \" \" ||\r\n e.target.value[e.target.value.length - 1] === \" \"\r\n ) {\r\n elemento.setAttribute(\r\n \"title\",\r\n \"Este campo no puede contener caracteres especiales, empezar o terminar con 1 espacio, o tener 2 espacios entre palabras\"\r\n );\r\n elemento.classList.add(\"error\");\r\n elemento.classList.remove(\"correcto\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n });\r\n } else {\r\n elemento.classList.remove(\"error\");\r\n elemento.classList.add(\"correcto\");\r\n elemento.setAttribute(\"title\", \"\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: capitalizarPalabras(e.target.value),\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: capitalizarPalabras(e.target.value),\r\n });\r\n }\r\n } else if (e.target.name === \"Correo\") {\r\n if (e.target.value.indexOf(\"@\") < 0) {\r\n elemento.setAttribute(\"title\", \"El Correo debe contener una @\");\r\n elemento.classList.add(\"error\");\r\n elemento.classList.remove(\"correcto\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n });\r\n } else if (\r\n e.target.value.indexOf(\".com\", e.target.value.indexOf(\"@\")) < 0 &&\r\n e.target.value.indexOf(\".cc\", e.target.value.indexOf(\"@\")) < 0 &&\r\n e.target.value.indexOf(\".co\", e.target.value.indexOf(\"@\")) < 0 &&\r\n e.target.value.indexOf(\".es\", e.target.value.indexOf(\"@\")) < 0\r\n ) {\r\n elemento.setAttribute(\r\n \"title\",\r\n 'El correo debe contener \".com\", \".co\" o \".es\" detras de la @'\r\n );\r\n elemento.classList.add(\"error\");\r\n elemento.classList.remove(\"correcto\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: \"\",\r\n });\r\n } else {\r\n elemento.classList.remove(\"error\");\r\n elemento.classList.add(\"correcto\");\r\n elemento.setAttribute(\"title\", \"\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n });\r\n }\r\n } \r\n // else if (e.target.name === \"FechaNacimiento\") {\r\n // var fecha = e.target.value.split(\"-\");\r\n // var hoy = new Date().getFullYear();\r\n // var diferencia = hoy - fecha[0];\r\n // if (diferencia > 90 || diferencia < 10) {\r\n // elemento.setAttribute(\"title\", \"La fecha ingresada es incorrecta\");\r\n // elemento.classList.add(\"errorFecha\");\r\n // elemento.classList.remove(\"correctoFecha\");\r\n // actualizarSessionStorage(\r\n // \"Cliente\",\r\n // JSON.stringify({\r\n // ...clienteState,\r\n // [e.target.name]: \"\",\r\n // })\r\n // );\r\n // modificarClienteState({\r\n // ...clienteState,\r\n // [e.target.name]: \"\",\r\n // });\r\n // } else {\r\n // elemento.classList.remove(\"errorFecha\");\r\n // elemento.classList.add(\"correctoFecha\");\r\n // elemento.setAttribute(\"title\", \"\");\r\n // let fechaReal = convertDateFormat(e.target.value);\r\n // actualizarSessionStorage(\r\n // \"Cliente\",\r\n // JSON.stringify({\r\n // ...clienteState,\r\n // [e.target.name]: fechaReal,\r\n // })\r\n // );\r\n // modificarClienteState({\r\n // ...clienteState,\r\n // [e.target.name]: fechaReal,\r\n // });\r\n // }\r\n // } \r\n else if (e.target.name === \"Pais\") {\r\n insertarDepartamentos(e.target.value, function (respuesta) {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n });\r\n });\r\n } else if (e.target.name === \"Departamento\") {\r\n insertarCiudades(e.target.value, function (respuesta) {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n })\r\n );\r\n\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n });\r\n });\r\n } else {\r\n elemento.classList.remove(\"error\");\r\n elemento.classList.add(\"correcto\");\r\n elemento.setAttribute(\"title\", \"\");\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n [e.target.name]: e.target.value,\r\n });\r\n }\r\n }\r\n };\r\n\r\n /*\r\n const limpiarDireccionState = () => {\r\n modificarDireccionState({via: \"\",Nro: \"\",Letra: \"\", Sector: \"\", Cruce: \"\", NroPlaca: \"\", LetraPlaca: \"\", NroPlaca2: \"\" })\r\n modificarClienteState({...clienteState, \"Direccion\" : \"\"})\r\n estadoInputsDireccion(false);\r\n }*/\r\n\r\n /*\r\n const actualizarDireccion = (e) => {\r\n if(e.target.name === \"Recoger\"){\r\n modificarClienteState({...clienteState, \"Direccion\" : (e.target.checked) ? \"Recoger en la oficina principal\" : \"\"}) \r\n if(!e.target.checked)\r\n estadoInputsDireccion(false);\r\n }else{\r\n modificarDireccionState({...direccionState, [e.target.name] : e.target.value})\r\n modificarClienteState({...clienteState, \"Direccion\" : retornarDireccionCompleta(e)})\r\n }\r\n }*/\r\n\r\n /*\r\n const retornarDireccionCompleta = (e) => {\r\n var direccionCompleta = \"\";\r\n for(var direc in direccionState){\r\n if(direc === e.target.name)\r\n direccionCompleta += ((direc === \"NroPlaca\" && direccionState[direc] !== \"\") ? \"#\" : ((direc === \"NroPlaca2\" && direccionState[direc] !== \"\") ? \"- \" : \"\")) + e.target.value + \" \";\r\n else\r\n direccionCompleta += ((direc === \"NroPlaca\" && direccionState[direc] !== \"\") ? \"#\" : ((direc === \"NroPlaca2\" && direccionState[direc] !== \"\") ? \"- \" : \"\")) + direccionState[direc] + \" \";\r\n }\r\n return direccionCompleta;\r\n }*/\r\n\r\n //Bloquea la escritura de caracteres especiales.\r\n const bloqueoCaracteresEspeciales = (e) => {\r\n var elemento = document.getElementById(e.target.id);\r\n var texto = e.target.value;\r\n if (tiene_caracter_especial(e.key) && e.key !== \" \") {\r\n elemento.value = texto.replace(e.key, \"\");\r\n }\r\n validacion(e);\r\n };\r\n\r\n //Bloquea la escritura de letras.\r\n const bloqueoLetras = (e) => {\r\n var elemento = document.getElementById(e.target.id);\r\n var texto = e.target.value;\r\n if (todoNumeros(e.key) && e.key !== \" \") {\r\n elemento.value = texto.replace(e.key, \"\");\r\n }\r\n validacion(e);\r\n };\r\n\r\n const estadoInputsDireccion = (estado) => {\r\n var ViaInicio = document.getElementById(\"ViaInicio\");\r\n var NumeroVia = document.getElementById(\"NumeroVia\");\r\n var LetraVia = document.getElementById(\"LetraVia\");\r\n var SectorDireccion = document.getElementById(\"SectorDireccion\");\r\n var CruceDireccion = document.getElementById(\"CruceDireccion\");\r\n var NumeroPlaca1 = document.getElementById(\"NumeroPlaca1\");\r\n var NumeroPlaca2 = document.getElementById(\"NumeroPlaca2\");\r\n var LetraPlaca = document.getElementById(\"LetraPlaca\");\r\n ViaInicio.disabled = estado;\r\n NumeroVia.disabled = estado;\r\n LetraVia.disabled = estado;\r\n SectorDireccion.disabled = estado;\r\n CruceDireccion.disabled = estado;\r\n NumeroPlaca1.disabled = estado;\r\n NumeroPlaca2.disabled = estado;\r\n LetraPlaca.disabled = estado;\r\n };\r\n\r\n //Funcion que se ejecuta cada vez que se inicia este componente.\r\n //Pregunta si la barra de busqueda esta disponible y si es asi, la oculta y actualiza el state del Header.\r\n //Pregunta si la accion de Recuperar es true y la pagina es 2, actualiza y rellena los datos del usuario en el formulario.\r\n useEffect(() => {\r\n var header = JSON.parse(JSON.stringify(headerState));\r\n if (header[\"displayBuscar\"] !== \"none\") {\r\n header[\"displayBuscar\"] = \"none\";\r\n header[\"displayFlecha\"] = \"none\";\r\n modificarHeaderState(header);\r\n }\r\n // if (clienteState[\"Accion\"] === \"Recuperar\" && pedidoState[\"Pagina\"] === 2)\r\n // llenarInfo(clienteState, false, false);\r\n // if (clienteState[\"Direccion\"] === \"Recoger en la oficina principal\") {\r\n // estadoInputsDireccion(true);\r\n // }\r\n });\r\n\r\n return (\r\n <>\r\n {false? (\r\n
\r\n
\r\n
\r\n
\r\n \r\n bloqueoLetras(e)}\r\n id=\"numeroD_input\"\r\n required\r\n >\r\n
\r\n
\r\n \r\n validacion(e)}\r\n required\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n bloqueoCaracteresEspeciales(e)}\r\n required\r\n >\r\n
\r\n
\r\n \r\n bloqueoCaracteresEspeciales(e)}\r\n id=\"apellidos_input\"\r\n required\r\n disabled={clienteState.TipoDocumento==\"11\"}\r\n >\r\n
\r\n
\r\n \r\n bloqueoLetras(e)}\r\n id=\"celular_input\"\r\n required\r\n >\r\n
\r\n {/*
\r\n \r\n validacion(e)}\r\n min=\"1910-01-01\"\r\n required\r\n >\r\n
*/}\r\n {/* {path.pathname === \"/Concursonacionaldediseno\" ? (\r\n
\r\n \r\n bloqueoCaracteresEspeciales(e)}\r\n id=\"universidad_input\"\r\n required\r\n >\r\n
\r\n ): (\r\n <>\r\n )} */}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n validacion(e)}\r\n required\r\n >\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n validacion(e)}\r\n required\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n validacion(e)}\r\n required\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n validacion(e)}\r\n required\r\n >\r\n
\r\n
\r\n \r\n validacion(e)}\r\n required\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n validacion(e)}\r\n id=\"direccion_input\"\r\n required\r\n >\r\n
\r\n \r\n \r\n validacion(e)}\r\n id=\"barrio_input\"\r\n required\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\nexport default Registro;\r\n","//Zona de importacion de componentes externos.\r\n\r\nimport React from \"react\";\r\nimport \"./style.css\";\r\nconst ModalEpayco = ({ accion, Mensaje }) => {\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n
\r\n Pago con epayco\r\n
\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n

\r\n Te ofrecemos una amplia variedad de medios de pago\r\n

\r\n

\r\n Aceptamos más de 22 medios de pago diferentes, tu decides cual\r\n es el más conveniente para tus clientes. ¡Estamos\r\n comprometidos a hacer que el proceso de compra sea lo más\r\n sencillo y seguro posible para nuestros clientes!, si deseas continuar da click en el boton \"IR A PAGAR\".\r\n

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

\r\n \r\n

\r\n

\r\n \r\n

\r\n

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

\r\n \r\n

\r\n

\r\n \r\n

\r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {/* \r\n Close\r\n */}\r\n \r\n Cerrar\r\n

\r\n \r\n Ir a pagar\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalEpayco;\r\n","import React from \"react\";\r\nimport \"./style.css\";\r\nconst ModalAddi = ({ accion, Mensaje }) => {\r\n return (\r\n <>\r\n \r\n {Mensaje < 50000 ? (\r\n
\r\n
\r\n
\r\n
\r\n No es posible finalizar tu compra con ADDI\r\n
\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n

\r\n Tu compra debe ser superior a $50.000\r\n

\r\n
\r\n
\r\n\r\n
\r\n \r\n Cerrar\r\n

\r\n
\r\n\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n
\r\n
\r\n Finaliza tu compra con ADDI\r\n
\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n

\r\n Es simple, rápido y seguro:\r\n

\r\n

\r\n ✅ Sin tarjeta de crédito y en minutos.\r\n

\r\n

\r\n ✅ Paga tu primera cuota un mes despues de la compra.\r\n

\r\n

\r\n ✅ Proceso 100% online. Sin papeleo ni costos ocultos.\r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {/* \r\n Close\r\n */}\r\n {/* \r\n Cerrar\r\n

\r\n \r\n Ir a pagar\r\n

*/}\r\n
\r\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 ModalAddi;","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n//Zona de importacion de componentes internos.\r\nimport Registro from \"../Usuario/Registro\";\r\nimport \"./static/css/PedidoNew.css\";\r\n//Zona de importacion de Css.\r\n\r\nimport TagManager from \"react-gtm-module\";\r\n\r\nimport ModalEpayco from \"./components/modal\"\r\n\r\nimport ModalAddi from \"./components/modalAddi\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nconst Pedido = ({\r\n headerState,\r\n modificarHeaderState,\r\n carrito,\r\n modificarCarritoState,\r\n pedidoState,\r\n modificarPedidoState,\r\n // clienteState,\r\n // modificarClienteState,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n actualizarSessionStorage,\r\n administradorState,\r\n modificarAdministradorState,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n metodoFact,\r\n setMetodoFact,\r\n}) => {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n //Se extraen los atributos del pedidos State.\r\n const {\r\n Pagina,\r\n Efecty,\r\n EfectyImg,\r\n Baloto,\r\n BalotoImg,\r\n PSE,\r\n PSEImg,\r\n Credito,\r\n CreditoImg,\r\n Contraentrega,\r\n ContraentregaImg,\r\n Consignacion,\r\n ConsignacionImg,\r\n SuperGiros,\r\n SuperGirosImg,\r\n Epayco,\r\n EpaycoImg,\r\n Addi,\r\n AddiImg\r\n } = pedidoState;\r\n\r\n /** State de que sincroniza el formulario con la pagina de pedido\r\n * Usuario: Si es true, el formulario es correcto y se procede a actualizar\r\n * Ejecucion: Envia señal para validar el formulario de registro\r\n */\r\n const [actualizar, setActualizar] = useState({\r\n Usuario: false,\r\n Sucursal: false,\r\n Ejecucion: false,\r\n })\r\n\r\n useEffect(() => {\r\n if(actualizar.Usuario) {\r\n cambioPagina(3);\r\n }\r\n }, [actualizar])\r\n \r\n\r\n const [paymentSuccess, setPaymentSuccess] = useState(false);\r\n const [paymentError, setPaymentError] = useState(false);\r\n //Se definen los estilos dinamicos de cada boton de pagina.\r\n const stylePagina1 =\r\n Pagina === 1 ? { backgroundColor: \"black\", color: \"white\" } : {};\r\n const stylePagina2 =\r\n Pagina === 2 ? { backgroundColor: \"black\", color: \"white\" } : {};\r\n const stylePagina3 =\r\n Pagina === 3 ? { backgroundColor: \"black\", color: \"white\" } : {};\r\n\r\n //Estilos para los botones de pago.\r\n const EfectyBackground = Efecty ? { backgroundColor: \"black\" } : {};\r\n const BalotoBackground = Baloto ? { backgroundColor: \"black\" } : {};\r\n const PSEBackground = PSE ? { backgroundColor: \"black\" } : {};\r\n const CreditoBackground = Credito ? { backgroundColor: \"black\" } : {};\r\n const ConsignacionBackground = Consignacion\r\n ? { backgroundColor: \"black\" }\r\n : {};\r\n const ContarEntregaBackground = Contraentrega\r\n ? { backgroundColor: \"black\" }\r\n : {};\r\n const SuperGirosBackground = SuperGiros ? { backgroundColor: \"black\" } : {};\r\n const EpaycoBackground = Epayco ? { backgroundColor: \"black\" } : {};\r\n\r\n const calcularDescuento = (precio, descuento) => {\r\n const precioInt = parseInt(precio);\r\n const descuentoAplicar = parseInt(descuento);\r\n return precioInt - precioInt * (descuentoAplicar / 100);\r\n };\r\n\r\n //Variable sobre el total del carrito.\r\n const [totalCarritoState, modificarTotalCarritoState] = useState(null);\r\n const [costoExtraPorRecaudo, modificarcostoExtraPorRecaudo] = useState(null);\r\n\r\n //Retorna el total a pagar para el carrito actual.\r\n const calcularTotalCarrito = () => {\r\n let total = 0;\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n total +=\r\n carrito[\"Carrito\"][i][\"Cantidad\"] *\r\n (headerState[\"Cliente\"] === \"Minoristas\"\r\n ? carrito[\"Carrito\"][i][\"DescuentoMinorista\"] !== 0\r\n ? calcularDescuento(\r\n carrito[\"Carrito\"][i][\"PrecioMinorista\"],\r\n carrito[\"Carrito\"][i][\"DescuentoMinorista\"]\r\n )\r\n : carrito[\"Carrito\"][i][\"PrecioMinorista\"]\r\n : carrito[\"Carrito\"][i][\"DescuentoMayorista\"] !== 0\r\n ? calcularDescuento(\r\n carrito[\"Carrito\"][i][\"PrecioMayorista\"],\r\n carrito[\"Carrito\"][i][\"DescuentoMayorista\"]\r\n )\r\n : carrito[\"Carrito\"][i][\"PrecioMayorista\"]);\r\n }\r\n\r\n return parseInt(total);\r\n };\r\n\r\n // useEffect(() => {\r\n // if (paymentSuccess) {\r\n // vaciarCarrito();\r\n // modificarErrorState({\r\n // Error: true,\r\n // Mensaje:\r\n // \"Hemos separado tu compra, realiza el pago en las proximas 48 horas o tu pedido sera eliminado automaticamente. Recuerda enviarnos una foto del comprobante por whatsapp.\",\r\n // Total: \"$\",\r\n // });\r\n // }\r\n // console.log(\"paymentError\")\r\n // if (paymentError) {\r\n // vaciarCarrito();\r\n // modificarErrorState({\r\n // Error: true,\r\n // Mensaje:\r\n // \"Error con el pago\",\r\n // Total: \"$\",\r\n // });\r\n // }\r\n // }, [paymentSuccess, paymentError])\r\n\r\n //Se realiza la peticion para la verificacion de un producto solicitando la cantidad de este en bodega.\r\n const ConsultarBodega = async (Producto, callback) => {\r\n let idProducto = Producto[\"id\"];\r\n const codProducto = Producto.Bodega;\r\n // idProducto = idProducto.slice(-1) === \"U\"? idProducto.slice(0, -1) : idProducto\r\n // let posMarca = Producto.Nombre.indexOf(\"CROATTA\");\r\n // let Marca = posMarca == -1? \"DK\" : \"CROATTA\";\r\n let rutaVerificacion = \"/Api/Manager/VerificarProducto/\" + idProducto\r\n if (localStorage.getItem(\"Vendedor\")) {\r\n rutaVerificacion = \"/Api/Manager/VerificarProducto/\" + idProducto + `/${codProducto}`\r\n }\r\n await axios\r\n .get(\r\n apiUrlState + rutaVerificacion,\r\n {}\r\n )\r\n .then((response) => {\r\n if (response.data.existe) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(response.data.cantidad);\r\n } else {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.Mensaje,\r\n });\r\n }\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n });\r\n };\r\n\r\n //Disminuye la cantidad de un producto en el carrito en 1 segun la talla ingresada de este.\r\n //Actualiza el state del carrito y tambien el sesion storage.\r\n const disminuirCantidad = (producto) => {\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n if (producto[\"id\"] === carrito[\"Carrito\"][i][\"id\"]) {\r\n if (carrito[\"Carrito\"][i][\"Cantidad\"] - 1 === 0)\r\n carrito[\"Carrito\"].splice(i, 1);\r\n else carrito[\"Carrito\"][i][\"Cantidad\"] -= 1;\r\n }\r\n }\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n };\r\n\r\n //Se realiza la validacion en bodega para aumentar en 1 la cantidad en carrito de este, si no existe lo crea.\r\n //Actualiza el state del carrito y tambien el localStorage.\r\n const aumentarCantidad = async (producto, e, tipo) => {\r\n await ConsultarBodega(producto, function (cantidadFisica) {\r\n if (producto[\"Cantidad\"] + 1 <= cantidadFisica) {\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n if (producto[\"id\"] === carrito[\"Carrito\"][i][\"id\"]) {\r\n carrito[\"Carrito\"][i][\"Cantidad\"] += 1;\r\n }\r\n }\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n } else {\r\n var elemento = document.getElementById(e.target.id + \"Cantidad\" + tipo);\r\n elemento.classList.add(\"hint--always\");\r\n elemento.classList.add(\"hint--bottom\");\r\n elemento.classList.add(\"hint--bounce\");\r\n setTimeout(function () {\r\n elemento.classList.remove(\"hint--always\");\r\n elemento.classList.remove(\"hint--bottom\");\r\n elemento.classList.remove(\"hint--bounce\");\r\n }, 1000);\r\n }\r\n });\r\n };\r\n\r\n //Elimina un producto del state del carrito.\r\n const borrarElemento = (producto) => {\r\n carrito[\"Carrito\"] = carrito[\"Carrito\"].filter(\r\n (item) => item[\"id\"] !== producto[\"id\"]\r\n );\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n };\r\n\r\n //Añade el punto de miles al precio ingresado y lo retorna.\r\n const formatNumber = (amount) => {\r\n var temp = amount + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n };\r\n\r\n //Segun el tipo, modifica como seleccionado y deselecciona los demas, actualiza el statePedido\r\n const botonPago = (tipo) => {\r\n let letEfecty = tipo === \"Efecty\" ? !Efecty : false;\r\n let letBaloto = tipo === \"Baloto\" ? !Baloto : false;\r\n let letPSE = tipo === \"PSE\" ? !PSE : false;\r\n let letCredito = tipo === \"Credito\" ? !Credito : false;\r\n let letContraEntrega = tipo === \"ContraEntrega\" ? !Contraentrega : false;\r\n let letEpayco = tipo === \"Epayco\" ? !Epayco : false;\r\n let letAddi = tipo === \"Addi\" ? true : false;\r\n\r\n let letEfectyImg = letEfecty\r\n ? recursosUrlState + \"/img/Pedido/efecty-blanco.webp\"\r\n : recursosUrlState + \"/img/Pedido/efecty-negro.webp\";\r\n let letBalotoImg = letBaloto\r\n ? recursosUrlState + \"/img/Pedido/baloto-blanco.webp\"\r\n : recursosUrlState + \"/img/Pedido/baloto-negro.webp\";\r\n let letPSEImg = letPSE\r\n ? recursosUrlState + \"/img/Pedido/pse-blanco.webp\"\r\n : recursosUrlState + \"/img/Pedido/pse-negro.webp\";\r\n let letCreditoImg = letCredito\r\n ? recursosUrlState + \"/img/Pedido/credito-blanco.webp\"\r\n : recursosUrlState + \"/img/Pedido/credito-negro.webp\";\r\n let letContraEntregaImg = letContraEntrega\r\n ? recursosUrlState + \"/img/Pedido/contraentrega-blanco.webp\"\r\n : recursosUrlState + \"/img/Pedido/contraentrega-negro.webp\";\r\n let letEpaycoImg = letEpayco\r\n ? recursosUrlState + \"/img/Pedido/epayco-blanco.png\"\r\n : recursosUrlState + \"/img/Pedido/epayco-negro.png\"; \r\n let letAddiImg = letAddi\r\n ? recursosUrlState + \"/img/Pedido/AddiPago2.png\"\r\n : recursosUrlState + \"/img/Pedido/AddiPago2.png\";\r\n\r\n modificarPedidoState({\r\n Pagina: Pagina,\r\n Efecty: letEfecty,\r\n EfectyImg: letEfectyImg,\r\n Baloto: letBaloto,\r\n BalotoImg: letBalotoImg,\r\n PSE: letPSE,\r\n PSEImg: letPSEImg,\r\n Credito: letCredito,\r\n CreditoImg: letCreditoImg,\r\n Contraentrega: letContraEntrega,\r\n ContraentregaImg: letContraEntregaImg,\r\n Consignacion: Consignacion,\r\n ConsignacionImg: ConsignacionImg,\r\n SuperGiros: SuperGiros,\r\n SuperGirosImg: SuperGirosImg,\r\n Epayco: letEpayco,\r\n EpaycoImg: letEpaycoImg,\r\n Addi: letAddi,\r\n AddiImg: letAddiImg\r\n });\r\n };\r\n\r\n //Realiza un cambio de pagina modificando el statePedido.\r\n const cambioPagina = async (pagina) => {\r\n if (pagina === 3) {\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: \"Carrito\",\r\n path: \"/Pedido-Pago\",\r\n },\r\n });\r\n\r\n await actualizarDatosUsuario(async function (respuesta) {\r\n if (respuesta) {\r\n modificarPedidoState({\r\n Pagina: pagina,\r\n Efecty: Efecty,\r\n EfectyImg: EfectyImg,\r\n Baloto: Baloto,\r\n BalotoImg: BalotoImg,\r\n PSE: PSE,\r\n PSEImg: PSEImg,\r\n Credito: Credito,\r\n CreditoImg: CreditoImg,\r\n Contraentrega: Contraentrega,\r\n ContraentregaImg: ContraentregaImg,\r\n Consignacion: Consignacion,\r\n ConsignacionImg: ConsignacionImg,\r\n SuperGiros: SuperGiros,\r\n SuperGirosImg: SuperGirosImg,\r\n Epayco: Epayco,\r\n EpaycoImg: EpaycoImg,\r\n Addi: Addi,\r\n AddiImg: AddiImg\r\n });\r\n }\r\n });\r\n\r\n } else if (pagina === 2) {\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: \"Carrito\",\r\n path: \"/Pedido-Datos\",\r\n },\r\n });\r\n modificarPedidoState({\r\n Pagina: pagina,\r\n Efecty: Efecty,\r\n EfectyImg: EfectyImg,\r\n Baloto: Baloto,\r\n BalotoImg: BalotoImg,\r\n PSE: PSE,\r\n PSEImg: PSEImg,\r\n Credito: Credito,\r\n CreditoImg: CreditoImg,\r\n Contraentrega: Contraentrega,\r\n ContraentregaImg: ContraentregaImg,\r\n Consignacion: Consignacion,\r\n ConsignacionImg: ConsignacionImg,\r\n SuperGiros: SuperGiros,\r\n SuperGirosImg: SuperGirosImg,\r\n Epayco: Epayco,\r\n EpaycoImg: EpaycoImg,\r\n Addi: Addi,\r\n AddiImg: AddiImg\r\n });\r\n modificarClienteState({\r\n ...clienteState,\r\n Accion: \"Recuperar\",\r\n });\r\n } else {\r\n modificarPedidoState({\r\n Pagina: pagina,\r\n Efecty: Efecty,\r\n EfectyImg: EfectyImg,\r\n Baloto: Baloto,\r\n BalotoImg: BalotoImg,\r\n PSE: PSE,\r\n PSEImg: PSEImg,\r\n Credito: Credito,\r\n CreditoImg: CreditoImg,\r\n Contraentrega: Contraentrega,\r\n ContraentregaImg: ContraentregaImg,\r\n Consignacion: Consignacion,\r\n ConsignacionImg: ConsignacionImg,\r\n SuperGiros: SuperGiros,\r\n SuperGirosImg: SuperGirosImg,\r\n Epayco: Epayco,\r\n EpaycoImg: EpaycoImg,\r\n Addi: Addi,\r\n AddiImg: AddiImg\r\n });\r\n }\r\n };\r\n\r\n //Revisa que ningun datos del state de cliente este vacio.\r\n const revisionDatosUsuarios = async() => {\r\n for (const dato in clienteState) {\r\n if (dato === \"Apellidos\" && clienteState.TipoDocumento === \"11\") { \r\n } else if(dato === \"FechaNacimiento\" || dato === \"Universidad\") { \r\n } else {\r\n if (clienteState[dato] === \"\") {return [false, dato]};\r\n }\r\n }\r\n return [true, \"\"];\r\n };\r\n\r\n //Segun los datos del state de cliente realiza una actualizacion de este en Contapyme.\r\n const actualizarDatosUsuario = async (callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Actualizando tu datos...\",\r\n });\r\n }\r\n await axios\r\n .post(apiUrlState + \"/Api/Usuario/ActualizarUsuarioMger\", {\r\n NuevosDatosUsuario: [\r\n {\r\n NumeroDocumento: clienteState[\"NumeroDocumento\"],\r\n TipoDocumento: clienteState[\"TipoDocumento\"],\r\n Correo: clienteState[\"Correo\"],\r\n Nombres: clienteState[\"Nombres\"],\r\n Apellidos: clienteState[\"Apellidos\"],\r\n FechaNacimiento: clienteState[\"FechaNacimiento\"],\r\n Celular: clienteState[\"Celular\"],\r\n Genero: clienteState[\"Genero\"],\r\n Pais: clienteState[\"Pais\"],\r\n Departamento: clienteState[\"Departamento\"],\r\n Ciudad: clienteState[\"Ciudad\"],\r\n Direccion: clienteState[\"Direccion\"],\r\n Barrio: clienteState[\"Barrio\"],\r\n TipoTercero: headerState[\"Cliente\"],\r\n Sucursal: \"0\", // para actualizar el usuario\r\n },\r\n ],\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(true);\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: response.data.message,\r\n });\r\n }\r\n callback(false);\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({ Error: true, Mensaje: \"Revisa Tus Datos.\" });\r\n }\r\n });\r\n };\r\n\r\n //Limpia el state de carrito de todos los productos actuales.\r\n const vaciarCarrito = () => {\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: [] });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify([]));\r\n };\r\n\r\n //Retorna la cantidad de productos en el carrito actual.\r\n const contarProductos = () => {\r\n let cantidad = 0;\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n cantidad += carrito[\"Carrito\"][i][\"Cantidad\"];\r\n }\r\n\r\n return cantidad;\r\n };\r\n\r\n const listaCarrito = () => {\r\n let listaALlevar = [];\r\n for (let i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n // if ( carrito[\"Carrito\"][i][\"id\"].slice(-1) === \"U\") {\r\n if (false) {\r\n listaALlevar.push({\r\n _id: carrito[\"Carrito\"][i][\"_id\"],\r\n Cantidad: carrito[\"Carrito\"][i][\"Cantidad\"],\r\n Nombre: carrito[\"Carrito\"][i][\"Nombre\"],\r\n Codigo: carrito[\"Carrito\"][i][\"Codigo\"],\r\n Referencia: carrito[\"Carrito\"][i][\"Codigo\"],\r\n PrecioMayorista: carrito[\"Carrito\"][i][\"PrecioMayorista\"],\r\n PrecioMinorista: carrito[\"Carrito\"][i][\"PrecioMinorista\"],\r\n Talla: carrito[\"Carrito\"][i][\"Talla\"],\r\n DescuentoMayorista: carrito[\"Carrito\"][i][\"DescuentoMayorista\"],\r\n DescuentoMinorista: carrito[\"Carrito\"][i][\"DescuentoMinorista\"],\r\n });\r\n } else {\r\n listaALlevar.push({\r\n _id: carrito[\"Carrito\"][i][\"_id\"],\r\n Cantidad: carrito[\"Carrito\"][i][\"Cantidad\"],\r\n Nombre: carrito[\"Carrito\"][i][\"Nombre\"],\r\n Codigo: carrito[\"Carrito\"][i][\"id\"],\r\n Referencia: carrito[\"Carrito\"][i][\"Codigo\"],\r\n Bodega: carrito[\"Carrito\"][i][\"Bodega\"],\r\n PrecioMayorista: carrito[\"Carrito\"][i][\"PrecioMayorista\"],\r\n PrecioMinorista: carrito[\"Carrito\"][i][\"PrecioMinorista\"],\r\n Talla: carrito[\"Carrito\"][i][\"Talla\"],\r\n DescuentoMayorista: carrito[\"Carrito\"][i][\"DescuentoMayorista\"],\r\n DescuentoMinorista: carrito[\"Carrito\"][i][\"DescuentoMinorista\"],\r\n });\r\n }\r\n }\r\n\r\n return listaALlevar;\r\n };\r\n\r\n const calcularPedido = async () => {\r\n await axios\r\n .post(apiUrlState + \"/Api/Pedido/CalcularTotalPedido\", {\r\n TipoCliente: headerState.Cliente.toUpperCase(),\r\n Carrito: listaCarrito(),\r\n Cupon: carrito.Cupon !== null ? carrito.Cupon : \"\",\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarTotalCarritoState(response.data.TotalPedido);\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n console.log(\"err\", err);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const crearDatosAddi = (response) => {\r\n let newItems = [];\r\n let carrito = listaCarrito();\r\n for(const item of carrito) {\r\n let producto = {\r\n sku: item.Referencia,\r\n name: item.Nombre,\r\n quantity: item.Cantidad,\r\n unitPrice: headerState.Cliente===\"Minoristas\"? item.PrecioMinorista : item.PrecioMayorista, // Revisar\r\n tax: 0,\r\n pictureUrl: `https://hosting.dkda.com.co/AppWeb/img/Productos/Ref%20${item.Referencia}.webp`,\r\n category: \"Ropa\",\r\n brand: \"DK\"\r\n }\r\n newItems.push(producto);\r\n }\r\n\r\n let body = {\r\n orderId: response.data.data.NumeroOperacion,\r\n totalAmount: response.data.TotalPedido,\r\n shippingAmount: 0, // gastos de envio\r\n totalTaxesAmount: 0, // valor del iva\r\n currency: \"COP\",\r\n items: newItems,\r\n client: {\r\n idType: \"CC\",\r\n idNumber: clienteState.NumeroDocumento,\r\n firstName: clienteState.Nombres,\r\n lastName: clienteState.Apellidos,\r\n email: clienteState.Correo,\r\n cellphone: clienteState.Celular,\r\n cellphoneCountryCode: \"+57\",\r\n address: {\r\n lineOne: clienteState.Direccion,\r\n city: clienteState.Ciudad,\r\n \"country\": \"CO\"\r\n }\r\n },\r\n shippingAddress: {\r\n lineOne: clienteState.Direccion,\r\n city: clienteState.Ciudad,\r\n \"country\": \"CO\"\r\n },\r\n billingAddress: {\r\n lineOne: clienteState.Direccion,\r\n city: clienteState.Ciudad,\r\n country: \"CO\"\r\n },\r\n pickUpAddress: {\r\n lineOne: \"\",\r\n city: \"\",\r\n country: \"CO\"\r\n },\r\n allyUrlRedirection: {\r\n logoUrl: \"https://hosting.dkda.com.co/AppWeb/img/Email/45441614379749154.png\", // https://api.dkda.com.co/Api/Marketplaces/Addi/ConfirmacionPago\r\n callbackUrl: \"https://api.dkda.com.co/Api/Marketplaces/Addi/ConfirmacionPago\",\r\n redirectionUrl: \"https://www.dkda.com.co/\"\r\n },\r\n geoLocation: {\r\n latitude: \"\",\r\n longitude: \"\"\r\n }\r\n }\r\n return body;\r\n }\r\n\r\n //Funcion principal:\r\n //Crea la remision en contapyme determinando diferentes casos.\r\n //Define si es remision de mayoristas o minoristas.\r\n //Crea, guarda y procesa la orden.\r\n //Crea el link de pago dependiendo de la eleccion del cliente y de si es mayorista o minorista.\r\n const crearPedido = async () => {\r\n console.log(\"Epayco: \", Epayco)\r\n if (headerState[\"Cliente\"] === \"Mayoristas\" && contarProductos() < 6) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Tu pedido no debe tener menos de 6 unidades\",\r\n });\r\n } else {\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: \"Carrito\",\r\n path: \"/Pedido-Final\",\r\n },\r\n });\r\n let bancos = document.getElementById(\"bancos_input\");\r\n bancos = bancos === null ? \"\" : bancos.value;\r\n if (Contraentrega) {\r\n verificarCiudadEnvioRR();\r\n } else if (\r\n Efecty ||\r\n Baloto ||\r\n Epayco ||\r\n Addi ||\r\n (PSE && bancos !== \"A continuación seleccione su banco\") ||\r\n headerState[\"Cliente\"] === \"Mayoristas\"\r\n ) {\r\n const tipoPago = Efecty\r\n ? \"Efecty\"\r\n : Baloto\r\n ? \"Baloto\"\r\n : PSE\r\n ? \"PSE\"\r\n : Epayco\r\n ? \"Epayco\"\r\n : Addi\r\n ? \"Addi\"\r\n : \"Mayoristas\";\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Creando pedido...\",\r\n });\r\n }\r\n await axios\r\n .post(apiUrlState + \"/Api/Manager/Crear/remision\", {\r\n Cliente: {\r\n NumeroDocumento: clienteState.NumeroDocumento,\r\n Sucursal: clienteState.Sucursal,\r\n TipoCliente: headerState.Cliente,\r\n TipoPago: tipoPago,\r\n },\r\n Carrito: listaCarrito(),\r\n MedioDePago: tipoPago.toLowerCase(),\r\n Cupon: carrito.Cupon !== null ? carrito.Cupon : \"\",\r\n Banco: bancos,\r\n Vendedor: vendedor,\r\n Bodega: Bodega,\r\n })\r\n .then(async(response) => {\r\n if (!response.data.error) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n if (headerState[\"Cliente\"] === \"Minoristas\") {\r\n if (Efecty) {\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"este es tu pin\",\r\n Total: response.data.TotalPedido,\r\n pin: response.data.data.pin,\r\n MedioPago: \"Efecty\",\r\n });\r\n } else if (Baloto) {\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"este es tu pin\",\r\n Total: response.data.TotalPedido,\r\n pin: response.data.data.pin,\r\n\r\n MedioPago: \"Baloto\",\r\n });\r\n } else if (Epayco) {\r\n \r\n // modificarErrorState({\r\n // Error: true,\r\n // Mensaje: \"Te redireccionamos a la ventana de pago.\",\r\n // Total: response.data.data.TotalPedido,\r\n // });\r\n //let validateTransaction = false\r\n const data = {\r\n key: '0026d7220b852a0f67c6ed61d2e8c9fd',\r\n amount: response.data.TotalPedido,\r\n name: `DK ${headerState[\"Cliente\"] }`,\r\n description: 'DK',\r\n image: 'https://picsum.photos/200', // URL de la imagen del producto\r\n currency: 'COP',\r\n country: 'CO',\r\n test: false,\r\n external: true,\r\n //response: 'http://localhost', // URL de la página de respuesta\r\n //confirmation: 'http://localhost', // URL de la página de confirmación\r\n acepted: \"https://www.dkda.com.co/Pedido/Confirmacion\",\r\n rejected: \"https://www.dkda.com.co/Pedido/Rechazado\",\r\n pending: \"https://www.dkda.com.co/Pedido/Pendiente\",\r\n // onapproved: () => setPaymentSuccess(true),\r\n // onrejected: () => setPaymentError(true)\r\n };\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Dirigiendo a plataforma de pago...\",\r\n });\r\n // Carga el script de Epayco y muestra el formulario de pago\r\n const handler = window.ePayco.checkout.configure({\r\n key: data.key,\r\n test: data.test,\r\n });\r\n vaciarCarrito();\r\n handler.open(data);\r\n\r\n } else if(Addi) {\r\n await axios\r\n .post(apiUrlState + \"/Api/Marketplaces/Addi/Autenticacion\", {})\r\n .then(async(auth)=>{\r\n let body = crearDatosAddi(response);\r\n let url = await axios\r\n .post(apiUrlState + \"/Api/Marketplaces/Addi/CrearTransaccion\", body);\r\n // window.open(url.data.Respuesta, \"_blank\");\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Te redireccionamos a la ventana de pago Addi.\",\r\n Total: response.data.TotalPedido,\r\n Link: url.data.Respuesta,\r\n });\r\n })\r\n } else {\r\n window.open(response.data.data.UrlPse, \"_blank\");\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Te redireccionamos a la ventana de pago.\",\r\n Total: response.data.data.TotalPedido,\r\n });\r\n }\r\n } else {\r\n if(Addi) {\r\n await axios\r\n .post(apiUrlState + \"/Api/Marketplaces/Addi/Autenticacion\", {})\r\n .then(async(auth)=>{\r\n let body = crearDatosAddi(response);\r\n let url = await axios\r\n .post(apiUrlState + \"/Api/Marketplaces/Addi/CrearTransaccion\", body);\r\n // window.open(url.data.Respuesta, \"_blank\");\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Te redireccionamos a la ventana de pago Addi.\",\r\n Total: response.data.TotalPedido,\r\n Link: url.data.Respuesta,\r\n });\r\n })\r\n }else {\r\n ReactPixel.track(\"Finalizar Compra\", \"Purchase\");\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje:\r\n \"Hemos separado tu compra, realiza el pago en las proximas 48 horas o tu pedido sera eliminado automaticamente. Recuerda enviarnos una foto del comprobante por whatsapp.\",\r\n Total: \"$\" + response.data.TotalPedido,\r\n });\r\n }\r\n }\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (\r\n !errorState[\"Error\"] &&\r\n response.data.Mensaje === \"No es posible generar el pedido.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: response.data.Mensaje,\r\n Referencias: response.data.ProductosNoPermitidos,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n response.data.Mensaje ===\r\n \"Se han agotado algunos productos de tu carrito.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: response.data.Mensaje,\r\n Referencias: response.data.ProductosNoPermitidos,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n response.data.Mensaje !== undefined\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor \",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (\r\n !errorState[\"Error\"] &&\r\n err.response.data.Mensaje ===\r\n \"Se han agotado algunos productos de tu carrito.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.Mensaje,\r\n Referencias: err.response.data.ProductosNoPermitidos,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n err.response.data.Mensaje === \"No es posible generar el pedido.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.Mensaje,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n err.response.data.Mensaje !== undefined\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n } else {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Debes seleccionar un medio de pago\",\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n //Esta funcion comprueba si existe la imagen en version jpg del producto, en caso que no, se lanza la imagen de respaldo general 'base'.\r\n const comprobarImgProducto = (codigo, talla) => {\r\n const imagen = document.getElementById(codigo + talla + \"Pedido\");\r\n let img = document.createElement(\"img\");\r\n img.src = recursosUrlState + \"/img/Productos/Ref \" + codigo + \".webp\";\r\n imagen.innerHTML =\r\n \"\" +\r\n      codigo +\r\n      \"\";\r\n img.onerror = function () {\r\n imagen.innerHTML =\r\n \"\" +\r\n        codigo +\r\n        \"\";\r\n };\r\n };\r\n\r\n //Redireccion al Mercado.\r\n const volverMercado = () => {\r\n headerState[\"Cliente\"] === \"Mayoristas\"\r\n ? (window.location.href = \"/Mayoristas\")\r\n : (window.location.href = \"/\");\r\n };\r\n\r\n const comprobarCupon = async () => {\r\n let valorCupon = document.getElementById(\"cupon_input\").value;\r\n if (valorCupon !== \"\") {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Revisando tu cupon...\",\r\n });\r\n await axios\r\n .get(apiUrlState + \"/Api/Cupon/ValidarCupon/\" + valorCupon)\r\n .then((response) => {\r\n if (!response.data.error && response.data.existe) {\r\n carrito.Cupon = valorCupon;\r\n calcularPedido();\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n let Nombre = \"Cumpleaños - \" + clienteState[\"Nombres\"];\r\n clienteState[\"Nombres\"] = Nombre;\r\n modificarClienteState(() => {\r\n return { ...clienteState, Nombres: Nombre };\r\n });\r\n\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Tu cupon se canjeo correctamente\",\r\n Cliente: clienteState[\"Nombres\"],\r\n Tipo: response.data.tipo,\r\n Descripcion: response.data.descripcion,\r\n valor: response.data.valor,\r\n });\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Tu cupon es invalido o ha expirado\",\r\n Cliente: clienteState[\"Nombres\"],\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n } else {\r\n modificarSpinnerState({ Desplegar: false, Texto: spinnerState[\"texto\"] });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Si quieres canjear un cupon debes especificar un codigo\",\r\n });\r\n }\r\n };\r\n\r\n const PagoPorConsignacion = async (tipoConsignacion) => {\r\n let mensaje = \"Consignacion \" + tipoConsignacion;\r\n\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: mensaje,\r\n Cliente: clienteState[\"Nombres\"],\r\n Total: await calcularTotalCarrito(),\r\n });\r\n };\r\n\r\n const verificarCiudadEnvioRR = async () => {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"Verificando Disponibilidad\",\r\n });\r\n let ciudad = clienteState[\"Ciudad\"];\r\n let Departamento = clienteState[\"Departamento\"];\r\n let ciudaR = await axios.post(apiUrlState + \"/Api/Pedido/VerificarCiudad\", [\r\n {\r\n _id: ciudad,\r\n },\r\n { Departamento: Departamento },\r\n ]);\r\n let Total = calcularTotalCarrito();\r\n if (Total > 2000000) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Monto NO disponible para RR\",\r\n });\r\n } else if (ciudaR.data[0].Nombre === \"TULUA\") {\r\n let Nombre = \"Recaudo - \" + clienteState[\"Nombres\"];\r\n clienteState[\"Nombres\"] = Nombre;\r\n modificarClienteState(() => {\r\n return { ...clienteState, Nombres: Nombre };\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n let CostoEnvioRappi = \"$2.600 pesos a $3.600 pesos\";\r\n if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"AGUACLARA\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"AGUACLARA\")\r\n ) {\r\n CostoEnvioRappi = \"$3.600 pesos a $4.600 pesos\";\r\n } else if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"RIVERA\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"RIVERA\")\r\n ) {\r\n CostoEnvioRappi = \"$4.100 pesos a $6.000 pesos\";\r\n } else if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"COLINA\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"COLINA\")\r\n ) {\r\n CostoEnvioRappi = \"$5.100 pesos\";\r\n } else if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"NARIÑO\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"NARIÑO\")\r\n ) {\r\n CostoEnvioRappi = \"$3.100 pesos a $4.100 pesos\";\r\n } else if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"ESQUINAS\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"ESQUINAS\")\r\n ) {\r\n CostoEnvioRappi = \"$5.100 pesos a $6.000 pesos\";\r\n } else if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"MARINA\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"MARINA\")\r\n ) {\r\n CostoEnvioRappi = \"$20.000 pesos\";\r\n } else if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"TRUJILLO\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"TRUJILLO\")\r\n ) {\r\n CostoEnvioRappi = \"$25.000 pesos\";\r\n } else if (\r\n clienteState[\"Direccion\"].toUpperCase().includes(\"RIOFRIO\") ||\r\n clienteState[\"Barrio\"].toUpperCase().includes(\"RIOFRIO\")\r\n ) {\r\n CostoEnvioRappi = \"$18.000 pesos\";\r\n }\r\n\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Envio Rappi\",\r\n Cliente: clienteState[\"Nombres\"],\r\n EnvioRR: CostoEnvioRappi,\r\n Total: await calcularTotalCarrito(),\r\n });\r\n } else if (ciudaR.data[0].Recaudo) {\r\n let CostoExtraPorRR = 0;\r\n let NuevoTotal = Total;\r\n if (Total > 1 && Total <= 50000) {\r\n CostoExtraPorRR = 2500;\r\n NuevoTotal = CostoExtraPorRR + NuevoTotal;\r\n } else if (Total > 50001 && Total <= 100000) {\r\n CostoExtraPorRR = Total * 0.035;\r\n NuevoTotal = CostoExtraPorRR + NuevoTotal;\r\n } else if (Total > 100001 && Total <= 200000) {\r\n CostoExtraPorRR = Total * 0.032;\r\n NuevoTotal += CostoExtraPorRR;\r\n } else if (Total > 200001 && Total <= 500000) {\r\n CostoExtraPorRR = Total * 0.03;\r\n NuevoTotal = CostoExtraPorRR + NuevoTotal;\r\n } else if (Total > 500001 && Total <= 800000) {\r\n CostoExtraPorRR = Total * 0.027;\r\n NuevoTotal += CostoExtraPorRR;\r\n } else if (Total > 800001) {\r\n CostoExtraPorRR = Total * 0.024;\r\n NuevoTotal += CostoExtraPorRR;\r\n }\r\n\r\n let Nombre = \"Recaudo - \" + clienteState[\"Nombres\"];\r\n clienteState[\"Nombres\"] = Nombre;\r\n modificarClienteState(() => {\r\n return { ...clienteState, Nombres: Nombre };\r\n });\r\n //modificarcostoExtraPorRecaudo(CostoExtraPorRR);\r\n //modificarTotalCarritoState(NuevoTotal);\r\n\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Ciudad Disponible para RR\",\r\n Cliente: clienteState[\"Nombres\"],\r\n EnvioRR: CostoExtraPorRR,\r\n Total: NuevoTotal,\r\n });\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Ciudad NO disponible para RR\",\r\n });\r\n }\r\n };\r\n\r\n //Se ejecuta al inciar el componente.\r\n //Pregunta si la barra de busqueda esta desplegada, si es asi actualiza el componente del header para no desplegarla.\r\n //Si el campo de registro esta activado este se desactiva, actualizando tambien el localStorage.\r\n useEffect(() => {\r\n var header = JSON.parse(JSON.stringify(headerState));\r\n if (header[\"displayBuscar\"] !== \"none\") {\r\n header[\"displayBuscar\"] = \"none\";\r\n header[\"displayFlecha\"] = \"none\";\r\n modificarHeaderState(header);\r\n }\r\n if (clienteState[\"Registro\"]) {\r\n localStorage.setItem(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n Registro: false,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n Registro: false,\r\n });\r\n }\r\n if (totalCarritoState === \"0\" || totalCarritoState === null) {\r\n if (carrito.Cupon !== null) {\r\n modificarTotalCarritoState(calcularPedido());\r\n } else {\r\n modificarTotalCarritoState(calcularTotalCarrito());\r\n }\r\n }\r\n }, []);\r\n\r\n //Esta funcion reemplaza el 'webp' por 'png' en un string\r\n const cambioPng = (url) => {\r\n return url.replace(/webp/g, \"png\");\r\n };\r\n\r\n const mostarPolitica = () => {\r\n modificarErrorState({ Error: true, Mensaje: \"Politica de datos\" });\r\n };\r\n\r\n const PedidoEpayco = async () => {\r\n console.log(\"Entra a contra entrega\")\r\n if (headerState[\"Cliente\"] === \"Mayoristas\" && contarProductos() < 6) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Tu pedido no debe tener menos de 6 unidades\",\r\n });\r\n } else {\r\n await axios\r\n .post(apiUrlState + \"/Api/Manager/Crear/remision\", {\r\n Cliente: {\r\n NumeroDocumento: clienteState.NumeroDocumento,\r\n Sucursal: clienteState.Sucursal,\r\n TipoCliente: headerState.Cliente,\r\n TipoPago: \" \",\r\n },\r\n Carrito: listaCarrito(),\r\n MedioDePago: \"epayco\",\r\n Cupon: carrito.Cupon !== null ? carrito.Cupon : \"\",\r\n Banco: \"bancos\",\r\n Vendedor: vendedor,\r\n Bodega: Bodega,\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n if (headerState[\"Cliente\"] === \"Minoristas\") {\r\n if (Epayco) {\r\n \r\n // modificarErrorState({\r\n // Error: true,\r\n // Mensaje: \"Te redireccionamos a la ventana de pago.\",\r\n // Total: response.data.data.TotalPedido,\r\n // });\r\n //let validateTransaction = false\r\n const data = {\r\n key: '0026d7220b852a0f67c6ed61d2e8c9fd',\r\n amount: response.data.TotalPedido,\r\n name: `DK ${headerState[\"Cliente\"] }`,\r\n description: 'DK',\r\n image: 'https://picsum.photos/200', // URL de la imagen del producto\r\n currency: 'COP',\r\n country: 'CO',\r\n test: false,\r\n external: true,\r\n //response: 'http://localhost', // URL de la página de respuesta\r\n //confirmation: 'http://localhost', // URL de la página de confirmación\r\n acepted: \"https://www.dkda.com.co/Pedido/Confirmacion\",\r\n rejected: \"https://www.dkda.com.co/Pedido/Rechazado\",\r\n pending: \"https://www.dkda.com.co/Pedido/Pendiente\",\r\n // onapproved: () => setPaymentSuccess(true),\r\n // onrejected: () => setPaymentError(true)\r\n };\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Dirigiendo a plataforma de pago...\",\r\n });\r\n // Carga el script de Epayco y muestra el formulario de pago\r\n const handler = window.ePayco.checkout.configure({\r\n key: data.key,\r\n test: data.test,\r\n });\r\n vaciarCarrito();\r\n handler.open(data);\r\n \r\n } else {\r\n window.open(response.data.data.UrlPse, \"_blank\");\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Te redireccionamos a la ventana de pago.\",\r\n Total: response.data.data.TotalPedido,\r\n });\r\n }\r\n } else {\r\n ReactPixel.track(\"Finalizar Compra\", \"Purchase\");\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje:\r\n \"Hemos separado tu compra, realiza el pago en las proximas 48 horas o tu pedido sera eliminado automaticamente. Recuerda enviarnos una foto del comprobante por whatsapp.\",\r\n Total: \"$\" + response.data.TotalPedido,\r\n });\r\n }\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (\r\n !errorState[\"Error\"] &&\r\n response.data.Mensaje === \"No es posible generar el pedido.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: response.data.Mensaje,\r\n Referencias: response.data.ProductosNoPermitidos,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n response.data.Mensaje ===\r\n \"Se han agotado algunos productos de tu carrito.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: response.data.Mensaje,\r\n Referencias: response.data.ProductosNoPermitidos,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n response.data.Mensaje !== undefined\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor \",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (\r\n !errorState[\"Error\"] &&\r\n err.response.data.Mensaje ===\r\n \"Se han agotado algunos productos de tu carrito.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.Mensaje,\r\n Referencias: err.response.data.ProductosNoPermitidos,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n err.response.data.Mensaje === \"No es posible generar el pedido.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.Mensaje,\r\n });\r\n } else if (\r\n !errorState[\"Error\"] &&\r\n err.response.data.Mensaje !== undefined\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n //Propiedad Css para la flecha izq.\r\n const flechaIzquierdaPedido = {\r\n backgroundImage:\r\n \"url(\" +\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-izquierda-negro.webp)\",\r\n };\r\n\r\n /** Actualiza el state de facturación segun lo requiera el vendedor */\r\n const modificarFacturacion = (mod) => {\r\n if (mod == \"add\" && metodoFact.Facturacion < 100) {\r\n setMetodoFact({\r\n Facturacion: metodoFact.Facturacion += 10,\r\n Remision: metodoFact.Remision -= 10,\r\n })\r\n } else if (mod == \"sub\" && metodoFact.Facturacion > 0) {\r\n setMetodoFact({\r\n Facturacion: metodoFact.Facturacion -= 10,\r\n Remision: metodoFact.Remision += 10,\r\n })\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n cambioPagina(1)}\r\n >\r\n 1\r\n

\r\n

cambioPagina(1)}>\r\n Resumen de compra\r\n

\r\n cambioPagina(2)}\r\n >\r\n 2\r\n

\r\n

cambioPagina(2)}>\r\n Datos de envío\r\n

\r\n setActualizar({...actualizar, Ejecucion: true})}\r\n >\r\n 3\r\n

\r\n

setActualizar({...actualizar, Ejecucion: true})}>\r\n Forma de pago\r\n

\r\n
\r\n
\r\n {Pagina === 1 ? (\r\n
\r\n volverMercado()}\r\n style={{ alignSelf: \"flex-start\", width: \"100%\" }}\r\n >\r\n \r\n \r\n Volver al Mercado\r\n \r\n

\r\n

RESUMEN DE TU PEDIDO

\r\n
\r\n \r\n \r\n \r\n \r\n Producto\r\n \r\n \r\n Nombre\r\n \r\n \r\n Precio\r\n \r\n \r\n Talla\r\n \r\n \r\n Cantidad\r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Producto\r\n \r\n \r\n Informacion\r\n \r\n \r\n \r\n \r\n {carrito[\"Carrito\"].map((producto) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n {carrito[\"Carrito\"].map((producto) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n comprobarImgProducto(\r\n producto[\"Codigo\"],\r\n producto[\"Talla\"]\r\n )\r\n }\r\n />\r\n \r\n \r\n

\r\n {producto[\"Nombre\"]}\r\n

\r\n
\r\n {headerState[\"Cliente\"] === \"Minoristas\" ? (\r\n producto.DescuentoMinorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {formatNumber(\r\n calcularDescuento(\r\n producto.PrecioMinorista,\r\n producto.DescuentoMinorista\r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n {formatNumber(producto.PrecioMinorista)}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n $ {formatNumber(producto.PrecioMinorista)}{\" \"}\r\n \r\n \r\n \r\n )\r\n ) : producto.DescuentoMayorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {formatNumber(\r\n calcularDescuento(\r\n producto.PrecioMayorista,\r\n producto.DescuentoMayorista\r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n {formatNumber(producto.PrecioMayorista)}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n $ {formatNumber(producto.PrecioMayorista)}\r\n \r\n \r\n \r\n )}\r\n \r\n

\r\n {producto[\"Talla\"]}\r\n

\r\n
\r\n
\r\n \r\n disminuirCantidad(producto)}\r\n >\r\n -\r\n

\r\n \r\n {producto[\"Cantidad\"]}\r\n

\r\n \r\n aumentarCantidad(producto, e, \"Web\")\r\n }\r\n >\r\n +\r\n

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

\r\n {\"$\" +\r\n formatNumber(\r\n producto[\"Cantidad\"] *\r\n (headerState[\"Cliente\"] === \"Minoristas\"\r\n ? producto.DescuentoMinorista !== 0\r\n ? calcularDescuento(\r\n producto[\"PrecioMinorista\"],\r\n producto.DescuentoMinorista\r\n )\r\n : producto[\"PrecioMinorista\"]\r\n : producto.DescuentoMayorista !== 0\r\n ? calcularDescuento(\r\n producto[\"PrecioMayorista\"],\r\n producto.DescuentoMayorista\r\n )\r\n : producto[\"PrecioMayorista\"])\r\n )}\r\n

\r\n
\r\n borrarElemento(producto)}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Header/botones/papelera-negro.png\";\r\n }}\r\n style={{ marginTop: 45 }}\r\n />\r\n
\r\n \r\n comprobarImgProducto(\r\n producto[\"Codigo\"],\r\n producto[\"Talla\"]\r\n )\r\n }\r\n >\r\n \r\n

\r\n {producto[\"Nombre\"]}\r\n

\r\n

\r\n Talla: {producto[\"Talla\"]}\r\n

\r\n {headerState[\"Cliente\"] === \"Minoristas\" ? (\r\n producto.DescuentoMinorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {calcularDescuento(\r\n producto.PrecioMinorista,\r\n producto.DescuentoMinorista\r\n )}\r\n \r\n \r\n \r\n {producto.PrecioMinorista}\r\n \r\n \r\n ) : (\r\n \r\n \r\n $ {producto.PrecioMinorista} \r\n \r\n \r\n )\r\n ) : producto.DescuentoMayorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {calcularDescuento(\r\n producto.PrecioMayorista,\r\n producto.DescuentoMayorista\r\n )}\r\n \r\n \r\n \r\n {producto.PrecioMayorista}\r\n \r\n \r\n ) : (\r\n \r\n \r\n $ {producto.PrecioMayorista}\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n disminuirCantidad(producto)}\r\n >\r\n -\r\n

\r\n \r\n {producto[\"Cantidad\"]}\r\n

\r\n \r\n aumentarCantidad(producto, e, \"Movil\")\r\n }\r\n >\r\n +\r\n

\r\n
\r\n
\r\n
\r\n
\r\n borrarElemento(producto)}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Header/botones/papelera-negro.png\";\r\n }}\r\n style={{ marginTop: 0 }}\r\n >\r\n
\r\n \r\n
\r\n
\r\n
\r\n ) : Pagina === 2 ? (\r\n
\r\n {/* cambioPagina(1)}\r\n style={{ alignSelf: \"flex-start\", width: \"100%\" }}\r\n >\r\n \r\n \r\n Volver paso 1\r\n \r\n

*/}\r\n

DATOS PARA TU ENVIO

\r\n mostarPolitica()}\r\n >\r\n Recuerda que, al diligenciar el formulario, estas\r\n \r\n {\" \"}\r\n autorizando el tratamiento de tus datos personales.\r\n \r\n \r\n \r\n Información personal\r\n

\r\n \r\n
\r\n ) : Pagina === 3 ? (\r\n
\r\n {/* cambioPagina(2)}\r\n style={{ alignSelf: \"flex-start\", width: \"100%\" }}\r\n >\r\n \r\n \r\n Volver paso 2\r\n \r\n

\r\n

\r\n VAMOS A FINALIZAR LA COMPRA\r\n

*/}\r\n {/* \r\n Total Pedido: ${formatNumber(totalCarritoState)}\r\n

*/}\r\n\r\n {headerState[\"Cliente\"] === \"Minoristas\" ? (\r\n
\r\n \r\n El código para pago se mostrará al finalizar la compra. Ten en\r\n cuenta que el plazo máximo para realizar el pago en cualquier\r\n punto Efecty o Baloto es de 48 horas, pasado este plazo tu\r\n pedido será cancelado automáticamente.\r\n

\r\n
\r\n

\r\n Si tienes un cupón aplicalo aqui:\r\n

\r\n \r\n \r\n comprobarCupon()}\r\n >\r\n Canjear\r\n

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

Metódo de Pago

\r\n\r\n

\r\n Pagos en efectivo disponibles:{\" \"}\r\n

\r\n \r\n {/* botonPago(\"Efecty\")}\r\n alt=\"Efecty\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(EfectyImg);\r\n }}\r\n /> */}\r\n {/* botonPago(\"Baloto\")}\r\n alt=\"Baloto\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(BalotoImg);\r\n }}\r\n /> */}\r\n verificarCiudadEnvioRR() /*botonPago(\"ContraEntrega\")*/}\r\n alt=\"Contraentrega\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(ContraentregaImg);\r\n }}\r\n />\r\n {/* botonPago(\"Epayco\")}\r\n alt=\"Epayco\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(ContraentregaImg);\r\n }}\r\n /> */}\r\n
\r\n {/*

\r\n Pagos bancarios disponibles:{\" \"}\r\n

*/}\r\n

\r\n Otros Medios de pago\r\n

\r\n
\r\n {\r\n botonPago(\"Addi\")\r\n }}\r\n alt=\"ADDI\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(AddiImg);\r\n }}\r\n />\r\n \r\n Paga a 3 cuotas sin intereses con ADDI.\r\n

\r\n
\r\n
\r\n botonPago(\"Epayco\")}\r\n alt=\"Epayco\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(ContraentregaImg);\r\n }}\r\n />\r\n botonPago(\"Epayco\")}\r\n alt=\"Epayco\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(ContraentregaImg);\r\n }}\r\n />\r\n
\r\n {/* \r\n botonPago(\"PSE\")}\r\n alt=\"PSE\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(PSEImg);\r\n }}\r\n >\r\n {PSE ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n
*/}\r\n
\r\n ) : (\r\n
\r\n

\r\n Al finalizar tu compra separaremos tu pedido, por favor lee\r\n más abajo para obtener la información de pago.\r\n

\r\n {vendedor? (\r\n
\r\n

Selecciona porcentajes de facturación:

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\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

Realiza Tu pago por:

\r\n
\r\n
\r\n
\r\n PagoPorConsignacion(\"Bancolombia\")}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(ConsignacionImg);\r\n }}\r\n >\r\n \r\n Trasferencia electrónica o consignación por PAC /\r\n corresponsal Bancario\r\n

\r\n
\r\n
\r\n
\r\n PagoPorConsignacion(\"Efecty\")}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(EfectyImg);\r\n }}\r\n />\r\n \r\n Consignación via Efecty\r\n

\r\n
\r\n\r\n
\r\n PagoPorConsignacion(\"SuperGiros\")}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(SuperGirosImg);\r\n }}\r\n />\r\n \r\n Consignación via SuperGiros\r\n

\r\n
\r\n
\r\n verificarCiudadEnvioRR()}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(ContraentregaImg);\r\n }}\r\n />\r\n \r\n Envío con Pago Contraentrega\r\n

\r\n
\r\n
\r\n {\r\n botonPago(\"Addi\")\r\n }}\r\n alt=\"ADDI\"\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src = cambioPng(AddiImg);\r\n }}\r\n />\r\n \r\n Paga a 3 cuotas sin intereses con ADDI.\r\n

\r\n
\r\n
\r\n
\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n {Pagina === 1 ? (\r\n
\r\n
\r\n

\r\n Total:\r\n

\r\n

\r\n ${formatNumber(calcularTotalCarrito())}\r\n

\r\n
\r\n
\r\n cambioPagina(2)}\r\n >\r\n Continuar compra\r\n

\r\n
\r\n
\r\n ) : Pagina === 2 ? (\r\n
\r\n
\r\n

\r\n Total:\r\n

\r\n

\r\n ${formatNumber(calcularTotalCarrito())}\r\n

\r\n
\r\n
\r\n setActualizar({...actualizar, Ejecucion: true})}\r\n >\r\n Continuar compra\r\n

\r\n
\r\n
\r\n ) : Pagina === 3 ? (\r\n headerState[\"Cliente\"] === \"Minoristas\" ? (\r\n
\r\n
\r\n

\r\n Total:\r\n

\r\n

\r\n ${formatNumber(calcularTotalCarrito())}\r\n

\r\n
\r\n\r\n
\r\n crearPedido()}\r\n \r\n >\r\n finalizar compra\r\n

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

\r\n Total:\r\n

\r\n

\r\n ${formatNumber(calcularTotalCarrito())}\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 Pedido;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheckCircle } from '@fortawesome/free-solid-svg-icons';\r\n\r\n\r\nconst PaymentConfirmation = () => {\r\n const [Cliente, setCliente ]= useState(null);\r\n useEffect(() => {\r\n const variableFromLocalStorage = localStorage.getItem('Cliente');\r\n setCliente(JSON.parse(variableFromLocalStorage));\r\n console.log(\"Cliente\", JSON.parse(variableFromLocalStorage).NumeroDocumento)\r\n }, []);\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n \r\n {/* \"logo\" */}\r\n

Hola {Cliente?.Nombres}

\r\n

Tu Transaccion se realizó exitosamente

\r\n

Ahora estamos empacando tu pedido

\r\n \r\n Cuando realices el pago envíanos el\r\n comprobante por WhatsApp al siguiente número{\" \"}\r\n +57 301 661 1801 o haz click en el siguiente{\" \"}\r\n enlace a WhatsApp\r\n

\r\n

¡Gracias por tu compra!

\r\n
\r\n window.location.href(\"https://api.whatsapp.com/send?phone=573234013289&text=Hola DK quisiera más información para hacer mi compra\")}\r\n >\r\n Volver al Home\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PaymentConfirmation;","import React, { useState, useEffect } from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheckCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { FaClock, FaTimesCircle } from 'react-icons/fa';\r\nimport './static/styles.css'\r\n\r\nconst PaymentRejected = (props) => {\r\n const { status, reference, date } = props;\r\n const [Cliente, setCliente] = useState(null);\r\n useEffect(() => {\r\n const variableFromLocalStorage = localStorage.getItem('Cliente');\r\n setCliente(JSON.parse(variableFromLocalStorage));\r\n console.log(\"Cliente\", JSON.parse(variableFromLocalStorage).NumeroDocumento)\r\n }, []);\r\n return (\r\n
\r\n
\r\n \r\n

Hola {Cliente?.Nombres}

\r\n

Tu Transaccion fue rechazada :c

\r\n \r\n Pero no te preocupes puedes comunicarte con nosotros al{\" \"}\r\n +57 301 661 1801 o haz click en el siguiente{\" \"}\r\n enlace a WhatsApp\r\n

\r\n
\r\n window.location.href = \"/\"}\r\n >\r\n Volver al Home\r\n

\r\n
\r\n\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PaymentRejected;","import React, { useState, useEffect } from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheckCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { FaClock } from 'react-icons/fa';\r\nimport './static/styles.css'\r\n\r\nconst PaymentPending = () => {\r\n\r\n const [Cliente, setCliente] = useState(null);\r\n useEffect(() => {\r\n const variableFromLocalStorage = localStorage.getItem('Cliente');\r\n setCliente(JSON.parse(variableFromLocalStorage));\r\n console.log(\"Cliente\", JSON.parse(variableFromLocalStorage).NumeroDocumento)\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(\"Cliente\", Cliente?.Nombres)\r\n }, [Cliente]);\r\n return (\r\n
\r\n
\r\n {/* \"logo\" */}\r\n {/* */}\r\n \r\n

Hola {Cliente?.Nombres}

\r\n

Tu Transaccion se encuentra en estado pendiente de pago

\r\n \r\n Cuando realices el pago envíanos el\r\n comprobante por WhatsApp al siguiente número{\" \"}\r\n +57 301 661 1801 o haz click en el siguiente{\" \"} \r\n enlace a WhatsApp\r\n

\r\n

¡Gracias por tu compra!

\r\n
\r\n window.location.href = \"/\"}\r\n >\r\n Volver al Home\r\n

\r\n
\r\n\r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default PaymentPending;","//Zona de importacion de componentes externos.\r\nimport axios from \"axios\";\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport { Modal, useModal, ModalTransition } from \"react-simple-hook-modal\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\n//Zona de importacion de Css.\r\nimport \"../../static/css/Modal.css\";\r\n\r\nimport TagManager from \"react-gtm-module\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nconst ModalGeneral = ({\r\n // modificarClienteState,\r\n // clienteState,\r\n carrito,\r\n modificarCarritoState,\r\n headerState,\r\n errorState,\r\n modificarErrorState,\r\n recursosUrlState,\r\n actualizarSessionStorage,\r\n apiUrlState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n metodoFact,\r\n setMetodoFact,\r\n}) => {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n //Constantes a usar para el componente del modal\r\n const { isModalOpen, openModal, closeModal } = useModal();\r\n const [PedidoCorrecto, modificarPedidoCorrecto] = useState(null);\r\n //Cierra el modal desplegado\r\n const cerrarModal = () => {\r\n modificarErrorState({ Error: false, Mensaje: \"\" });\r\n };\r\n\r\n const disabledRef = useRef(false);\r\n\r\n const handleClick = (tipoCliente) => {\r\n if (!disabledRef.current) {\r\n // Desactiva el evento temporalmente\r\n disabledRef.current = true;\r\n CrearRemision(tipoCliente)\r\n // Habilita el evento después de un tiempo determinado\r\n setTimeout(() => {\r\n disabledRef.current = false;\r\n }, 1000); // Tiempo en milisegundos (en este caso, 1000ms = 1 segundo)\r\n }\r\n };\r\n\r\n const CrearRemision = async (tipoCliente) => {\r\n let ciudad = await nombreCiudad();\r\n let linkPersonalizado;\r\n let pedido;\r\n switch (tipoCliente) {\r\n case \"Contraentrega\":\r\n linkPersonalizado = `https://api.whatsapp.com/send?phone=573234013289&text=Hola soy ${clienteState[\r\n \"Nombres\"\r\n ].slice(10)} ${clienteState[\"Apellidos\"]} de la ciudad de ${\r\n ciudad[0]\r\n } (${ciudad[1]}) deseo recibir mi pedido contraentrega`;\r\n pedido = await crearPedido(\"Contraentrega\", linkPersonalizado);\r\n break;\r\n case \"Rappi\":\r\n linkPersonalizado = `https://api.whatsapp.com/send?phone=573234013289&text=Hola soy ${clienteState[\r\n \"Nombres\"\r\n ].slice(10)} ${clienteState[\"Apellidos\"]} de la ciudad de ${\r\n ciudad[0]\r\n } (${ciudad[1]}) deseo recibir mi pedido contraentrega Rappi`;\r\n pedido = await crearPedido(\"Rappi\", linkPersonalizado);\r\n\r\n break;\r\n case \"Consignacion\":\r\n linkPersonalizado = `https://api.whatsapp.com/send?phone=573234013289&text=Hola soy ${clienteState[\"Nombres\"]} ${clienteState[\"Apellidos\"]} de la ciudad de ${ciudad[0]} (${ciudad[1]}) Realice mi compra por medio de consignacion`;\r\n pedido = await crearPedido(\"Consignacion\", linkPersonalizado);\r\n\r\n break;\r\n\r\n default:\r\n cerrarModal();\r\n break;\r\n }\r\n };\r\n\r\n const listaCarrito = () => {\r\n let listaALlevar = [];\r\n for (let i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n // if (carrito[\"Carrito\"][i][\"id\"].slice(-1) === \"U\") {\r\n if (false) {\r\n listaALlevar.push({\r\n _id: carrito[\"Carrito\"][i][\"_id\"],\r\n Cantidad: carrito[\"Carrito\"][i][\"Cantidad\"],\r\n Nombre: carrito[\"Carrito\"][i][\"Nombre\"],\r\n Codigo: carrito[\"Carrito\"][i][\"Codigo\"],\r\n Referencia: carrito[\"Carrito\"][i][\"Codigo\"],\r\n PrecioMayorista: carrito[\"Carrito\"][i][\"PrecioMayorista\"],\r\n PrecioMinorista: carrito[\"Carrito\"][i][\"PrecioMinorista\"],\r\n Talla: carrito[\"Carrito\"][i][\"Talla\"],\r\n DescuentoMayorista: carrito[\"Carrito\"][i][\"DescuentoMayorista\"],\r\n DescuentoMinorista: carrito[\"Carrito\"][i][\"DescuentoMinorista\"],\r\n });\r\n } else {\r\n listaALlevar.push({\r\n _id: carrito[\"Carrito\"][i][\"_id\"],\r\n Cantidad: carrito[\"Carrito\"][i][\"Cantidad\"],\r\n Nombre: carrito[\"Carrito\"][i][\"Nombre\"],\r\n Codigo: carrito[\"Carrito\"][i][\"id\"],\r\n Referencia: carrito[\"Carrito\"][i][\"Codigo\"],\r\n Bodega: carrito[\"Carrito\"][i][\"Bodega\"],\r\n PrecioMayorista: carrito[\"Carrito\"][i][\"PrecioMayorista\"],\r\n PrecioMinorista: carrito[\"Carrito\"][i][\"PrecioMinorista\"],\r\n // PrecioMayoristaSinIva: carrito[\"Carrito\"][i][\"PrecioMayoristaSinIva\"],\r\n Talla: carrito[\"Carrito\"][i][\"Talla\"],\r\n DescuentoMayorista: carrito[\"Carrito\"][i][\"DescuentoMayorista\"],\r\n DescuentoMinorista: carrito[\"Carrito\"][i][\"DescuentoMinorista\"],\r\n });\r\n }\r\n }\r\n\r\n return listaALlevar;\r\n };\r\n\r\n //Limpia el state de carrito de todos los productos actuales.\r\n const vaciarCarrito = () => {\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: [] });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify([]));\r\n };\r\n const crearPedido = async (tipoPago, linkWhatsapp) => {\r\n let tipoPagoNormalizado = tipoPago === \"Rappi\" ? \"Contraentrega\" : tipoPago;\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: \"Carrito\",\r\n path: \"/Pedido-Final\",\r\n },\r\n });\r\n\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Creando pedido...\",\r\n });\r\n }\r\n\r\n await axios\r\n .post(apiUrlState + \"/Api/Manager/Crear/remision\", {\r\n Cliente: {\r\n NumeroDocumento: clienteState.NumeroDocumento,\r\n Sucursal: clienteState.Sucursal,\r\n TipoCliente: headerState.Cliente,\r\n TipoPago: tipoPago,\r\n },\r\n Carrito: listaCarrito(),\r\n MedioDePago: tipoPago.toLowerCase(),\r\n Cupon: carrito.Cupon !== null ? carrito.Cupon : \"\",\r\n Banco: \"\",\r\n Vendedor: vendedor,\r\n Bodega: Bodega,\r\n Facturacion: metodoFact.Facturacion,\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n ReactPixel.track(\"Finalizar Compra\", \"Purchase\");\r\n vaciarCarrito();\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: `Compra Separada ${tipoPagoNormalizado}`,\r\n link: linkWhatsapp,\r\n });\r\n\r\n modificarPedidoCorrecto(true);\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: response.data.Mensaje,\r\n Referencias: response.data.ProductosNoPermitidos,\r\n tipoPago: tipoPago,\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (\r\n err.response.data.Mensaje ===\r\n \"Se han agotado algunos productos de tu carrito.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.Mensaje,\r\n Referencias: err.response.data.ProductosNoPermitidos,\r\n });\r\n } else if (\r\n !err.response.data.Mensaje === \"No es posible generar el pedido.\"\r\n ) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: err.response.data.Mensaje,\r\n });\r\n } else if (err.response.data.Mensaje !== undefined) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const formatNumber = (amount) => {\r\n let algo = Math.round(amount);\r\n var temp = algo + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n };\r\n const nombreCiudad = async () => {\r\n let ciudad = clienteState[\"Ciudad\"];\r\n let Departamento = clienteState[\"Departamento\"];\r\n let ciudaR = await axios.post(apiUrlState + \"/Api/Pedido/VerificarCiudad\", [\r\n {\r\n _id: ciudad,\r\n },\r\n { Departamento: Departamento },\r\n ]);\r\n return [ciudaR.data[0].Nombre, ciudaR.data[0].Departamento.Nombre];\r\n };\r\n //Redirige a la vista /Mercado y se modifica el error State.\r\n const volverMercado = () => {\r\n if (headerState[\"Cliente\"] === \"Minoristas\") window.location.href = \"/\";\r\n else if (headerState[\"Cliente\"] === \"Mayoristas\" && localStorage.getItem(\"Vendedor\")) {\r\n window.location.href = \"/Preventa/Catalogo\";\r\n } else {\r\n window.location.href = \"/Mayoristas\";\r\n }\r\n modificarErrorState({ Error: false, Mensaje: \"\" });\r\n };\r\n const volver = () => {\r\n modificarClienteState({\r\n ...clienteState,\r\n Correo: \"\",\r\n });\r\n modificarErrorState({ Error: false, Mensaje: \"\" });\r\n };\r\n const informacionAdicional = async () => {\r\n let ciudad = await nombreCiudad();\r\n let linkPersonalizado = `https://api.whatsapp.com/send?phone=573234013289&text=Hola soy ${clienteState[\"Nombres\"]} ${clienteState[\"Apellidos\"]} de la ciudad de ${ciudad[0]} (${ciudad[1]}) Realice mi compra por medio de consignacion`;\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: `Compra Separada Consignacion`,\r\n link: linkPersonalizado,\r\n });\r\n };\r\n\r\n const informacionAdicionalPSE = async () => {\r\n let ciudad = await nombreCiudad();\r\n let linkPersonalizado = `https://api.whatsapp.com/send?phone=573234013289&text=Hola soy ${clienteState[\"Nombres\"]} ${clienteState[\"Apellidos\"]} de la ciudad de ${ciudad[0]} (${ciudad[1]}) Realice mi compra por medio de PSE`;\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: `Compra Separada PSE`,\r\n link: linkPersonalizado,\r\n });\r\n };\r\n\r\n const informacionAdicionalAddi = async () => {\r\n let ciudad = await nombreCiudad();\r\n let linkPersonalizado = `https://api.whatsapp.com/send?phone=573234013289&text=Hola soy ${clienteState[\"Nombres\"]} ${clienteState[\"Apellidos\"]} de la ciudad de ${ciudad[0]} (${ciudad[1]}) Realice mi compra por medio de ADDI`;\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: `Compra Separada ADDI`,\r\n link: linkPersonalizado,\r\n });\r\n };\r\n\r\n const volverMercadoAjustado = () => {\r\n // AjustarPedido();\r\n if (headerState[\"Cliente\"] === \"Minoristas\") window.location.href = \"/\";\r\n else window.location.href = \"/Mayoristas\";\r\n modificarErrorState({ Error: false, Mensaje: \"\" });\r\n };\r\n const AjustarPedido = async (tipopago) => {\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n for (var j = 0; j < errorState[\"Referencias\"].length; j++) {\r\n if (\r\n carrito[\"Carrito\"][i][\"Codigo\"] ===\r\n errorState[\"Referencias\"][j][\"Referencia\"]\r\n ) {\r\n if (errorState[\"Referencias\"][j][\"Cantidad\"] > 0) {\r\n disminuirCantidad(\r\n carrito[\"Carrito\"][i],\r\n errorState[\"Referencias\"][j][\"Cantidad\"]\r\n );\r\n } else {\r\n borrarElemento(carrito[\"Carrito\"][i]);\r\n }\r\n }\r\n }\r\n }\r\n //window.location.href = '/Pedido'\r\n modificarErrorState({ Error: false, Mensaje: \"\" });\r\n if (headerState[\"Cliente\"] === \"Mayoristas\") CrearRemision(tipopago);\r\n };\r\n\r\n const AjustarValores = async () => {\r\n let Nombre = clienteState[\"Nombres\"].slice(10);\r\n clienteState[\"Nombres\"] = Nombre;\r\n modificarClienteState({ ...clienteState, Nombres: Nombre });\r\n cerrarModal();\r\n };\r\n\r\n const calcularDescuento = (precio, descuento) => {\r\n const precioInt = parseInt(precio);\r\n const descuentoAplicar = parseInt(descuento);\r\n return precioInt - precioInt * (descuentoAplicar / 100);\r\n };\r\n\r\n //Disminuye la cantidad de un producto en el carrito en 1 segun la talla ingresada de este.\r\n //Actualiza el state del carrito y tambien el sesion storage.\r\n const disminuirCantidad = (producto, cantidad) => {\r\n for (var i = 0; i < carrito[\"Carrito\"].length; i++) {\r\n if (producto[\"id\"] === carrito[\"Carrito\"][i][\"id\"]) {\r\n if (carrito[\"Carrito\"][i][\"Cantidad\"] - 1 === 0)\r\n carrito[\"Carrito\"].splice(i, 1);\r\n else carrito[\"Carrito\"][i][\"Cantidad\"] = cantidad;\r\n }\r\n }\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n };\r\n\r\n //Elimina un producto del state del carrito.\r\n const borrarElemento = (producto) => {\r\n carrito[\"Carrito\"] = carrito[\"Carrito\"].filter(\r\n (item) => item[\"id\"] !== producto[\"id\"]\r\n );\r\n const carritoNew = [...carrito[\"Carrito\"]];\r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\r\n };\r\n\r\n //Esta funcion comprueba si existe la imagen en version jpg del producto, en caso que no, se lanza la imagen de respaldo general 'base'.\r\n const comprobarImgProducto = (codigo, talla) => {\r\n const imagen = document.getElementById(codigo + talla + \"Pedido\");\r\n let img = document.createElement(\"img\");\r\n img.src = recursosUrlState + \"/img/Productos/Ref \" + codigo + \".webp\";\r\n imagen.innerHTML =\r\n \"\" +\r\n      codigo +\r\n      \"\";\r\n img.onerror = function () {\r\n imagen.innerHTML =\r\n \"\" +\r\n        codigo +\r\n        \"\";\r\n };\r\n };\r\n\r\n //Si el modal esta cerrado y el errorState es true.\r\n //Si el modal esta abierto y el errorState es false.\r\n useEffect(() => {\r\n if (!isModalOpen && errorState[\"Error\"]) openModal();\r\n else if (isModalOpen && !errorState[\"Error\"]) closeModal();\r\n });\r\n\r\n return (\r\n \r\n \r\n {errorState[\"Mensaje\"] === \"Error al recuperar datos del servidor\" ? (\r\n
\r\n

\r\n Discúlpanos\r\n

\r\n \r\n \r\n {errorState[\"Mensaje\"]}\r\n

\r\n volverMercado()}\r\n >\r\n Volver Al Mercado\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Talla no disponible para esta referencia.\" ? (\r\n
\r\n

\r\n Discúlpanos\r\n

\r\n \r\n \r\n Actualmente no contamos con mas disponibilidad de tallas para esta\r\n referencia\r\n

\r\n volver()}\r\n >\r\n Volver Al Mercado\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Datos incompletos...\" ? (\r\n
\r\n

\r\n Verifica tus Datos\r\n

\r\n \r\n \r\n Datos incompletos o errados por favor verifíca el campo:

\r\n {errorState[\"faltante\"]}\r\n

\r\n\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Politica de datos\" ? (\r\n
\r\n

\r\n Politica de tratamiento de datos personales y envio de publicidad\r\n

\r\n\r\n \r\n Al realizar compras en nuestra tienda online, todo comprador\r\n autoriza el envió de información por medio de correo y mensajería\r\n de texto de parte de DK. y dando cumplimiento de la Ley 1581\r\n de 2012, DK Reconoce y protege el derecho que tienen todas\r\n las personas a conocer, actualizar y rectificar las informaciones\r\n que se hayan recogido sobre ellas en nuestras bases de datos.\r\n

\r\n\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Este campo no puede contener menos de 6 digitos O mas de 13 digitos\" ? (\r\n
\r\n

\r\n Verifica tus Datos\r\n

\r\n \r\n \r\n Este campo no puede contener menos de 6 digitos O mas de 13\r\n digitos.\r\n

\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Este campo no puede contener letras o caracteres especiales, solo numeros\" ? (\r\n
\r\n

\r\n Verifica tus Datos\r\n

\r\n \r\n \r\n Este campo no puede contener letras o caracteres especiales, solo\r\n numeros.\r\n

\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Este campo no puede contener menos de 9 digitos\" ? (\r\n
\r\n

\r\n Verifica tus Datos\r\n

\r\n \r\n \r\n Este campo no puede contener menos de 9 digitos.\r\n

\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"La fecha ingresada es incorrecta\" ? (\r\n
\r\n

\r\n Verifica tus Datos\r\n

\r\n \r\n \r\n La fecha ingresada es incorrecta.\r\n

\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Revisa Tus Datos.\" ? (\r\n
\r\n

\r\n Verifica tus Datos\r\n

\r\n \r\n \r\n El correo que has ingresado ya esta en uso por otro usuario.\r\n

\r\n
\r\n
\r\n
\r\n volver()}\r\n >\r\n Volver\r\n

\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Se han agotado algunos productos de tu carrito.\" ? (\r\n
\r\n

\r\n Algunos productos de tu carrito se han agotado.\r\n

\r\n
    \r\n
    \r\n {errorState[\"Referencias\"].map((producto) => (\r\n
    \r\n
    \r\n
    \r\n e.target.src = `${recursosUrlState}/img/General/base2.png`}\r\n />\r\n
    \r\n
    \r\n

    \r\n Referencia: {producto[\"Codigo\"]}\r\n

    \r\n

    \r\n Talla: {producto[\"Talla\"]}\r\n

    \r\n

    \r\n Cantidad Disponible: {producto[\"Cantidad\"]}\r\n

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

\r\n Deseas continuar sin estas referencias.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n volverMercadoAjustado()}\r\n >\r\n NO\r\n

\r\n
\r\n
\r\n AjustarPedido(errorState[\"tipoPago\"])}\r\n >\r\n SI\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"No es posible generar el pedido.\" ? (\r\n
\r\n

\r\n Discúlpanos\r\n

\r\n \r\n
    \r\n {errorState[\"Referencias\"].map((Referencia) => (\r\n \r\n {Referencia}\r\n \r\n ))}\r\n\r\n AjustarPedido(\"\")}\r\n >\r\n Ajustar Pedido\r\n

    \r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Consignacion Bancolombia\" ? (\r\n
\r\n

\r\n BANCOLOMBIA\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Modal/pin-negro.png\";\r\n }}\r\n />\r\n \r\n Hola {clienteState[\"Nombres\"]}, paga tu pedido en Bancolombia por\r\n medio de una transferencia Electrónica, consignación mediante un\r\n corresponsal bancario o PAC. No directamente en un banco para\r\n evitar el cobro de la transacción que será cargado a tu pedido.\r\n

\r\n \r\n Nro Cuenta: 87400006820.

\r\n Tipo de cuenta: Corriente.



\r\n El total a pagar seria $ {formatNumber(errorState[\"Total\"])}{\" \"}\r\n pesos.\r\n

\r\n\r\n

\r\n * El valor del envió lo cancelaras cuando recibas tu pedido.\r\n

\r\n\r\n handleClick(\"Consignacion\")}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Consignacion Efecty\" ||\r\n errorState[\"Mensaje\"] === \"Consignacion SuperGiros\" ? (\r\n
\r\n

\r\n {errorState[\"Mensaje\"].slice(13)}\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Modal/pin-negro.png\";\r\n }}\r\n />\r\n \r\n Hola {clienteState[\"Nombres\"]} para el pago por \r\n {errorState[\"Mensaje\"].slice(13)}, debes tener presente que el\r\n valor del envió de dinero corre por tu cuenta, a nosotros debe\r\n llegarnos el valor total del pedido.\r\n

\r\n \r\n Jose David Victoria

\r\n CC: 1116250415.

\r\n Tuluá - Valle del cauca.



\r\n el total a pagar seria $ {formatNumber(errorState[\"Total\"])}{\" \"}\r\n Pesos.\r\n

\r\n\r\n

\r\n * El valor del envió lo cancelaras cuando recibas tu pedido.\r\n

\r\n\r\n handleClick(\"Consignacion\")}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Envio Rappi\" ? (\r\n
\r\n

\r\n Envio con Recaudo\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Modal/pin-negro.png\";\r\n }}\r\n />\r\n\r\n \r\n Hola {clienteState[\"Nombres\"].slice(10)} te enviamos tu pedido con\r\n Rappi el cual tiene un costo promedio entre{\" \"}\r\n {errorState[\"EnvioRR\"]}.\r\n

\r\n \r\n el total a pagar seria $ {formatNumber(errorState[\"Total\"])}{\" \"}\r\n Pesos.\r\n

\r\n

\r\n * El valor del envió lo cancelaras cuando recibas tu pedido.\r\n

\r\n\r\n

\r\n ¿Te lo enviamos?\r\n

\r\n
\r\n
\r\n
\r\n
\r\n AjustarValores()}\r\n >\r\n NO\r\n

\r\n
\r\n
\r\n handleClick(\"Rappi\")}\r\n >\r\n SI\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Ciudad Disponible para RR\" ? (\r\n
\r\n

\r\n Envio con Recaudo\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Modal/pin-negro.png\";\r\n }}\r\n />\r\n\r\n \r\n Hola {clienteState[\"Nombres\"].slice(10)} ten en cuenta que este\r\n servicio tiene un costo adicional de $\r\n {formatNumber(errorState[\"EnvioRR\"])}\r\n  pesos, este valor es lo que cobraría la trasportadora por\r\n recaudar tu dinero y enviarlo a nosotros.\r\n

\r\n \r\n El total a pagar seria\r\n $ {formatNumber(errorState[\"Total\"])} Pesos.\r\n

\r\n

\r\n * El valor del envió lo cancelaras cuando recibas tu pedido.\r\n

\r\n

\r\n ¿Te lo enviamos?\r\n

\r\n
\r\n
\r\n
\r\n
\r\n AjustarValores()}\r\n >\r\n NO\r\n

\r\n
\r\n
\r\n handleClick(\"Contraentrega\")}\r\n >\r\n SI\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Ciudad NO disponible para RR\" ? (\r\n
\r\n

\r\n Discúlpanos\r\n

\r\n \r\n \r\n Lo sentimos {clienteState[\"Nombres\"]} no contamos con este\r\n servicio para tu ciudad.\r\n

\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Monto NO disponible para RR\" ? (\r\n
\r\n

\r\n Lo sentimos\r\n

\r\n \r\n \r\n Por políticas internas de la\r\n transportadora el monto máximo para pedidos contra entrega es de\r\n $2.000.000 COP.\r\n

\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Compra Separada Consignacion\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n \r\n {clienteState[\"Nombres\"]} Recuerda que tienes 48 Horas a partir de\r\n este momento para realizar el pago o tu pedido sera eliminado\r\n automaticamente.\r\n

\r\n \r\n Cuando realices el pago envíanos el comprobante por WhatsApp al\r\n siguiente número +57 301 661 1801 o haz click en el\r\n siguiente enlace a WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n volverMercado()}\r\n >\r\n Volver Al Mercado\r\n

\r\n
\r\n
\r\n (window.location.href = errorState[\"link\"])}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Compra Separada PSE\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n\r\n \r\n {clienteState[\"Nombres\"]} Cuando realices el pago envíanos el\r\n comprobante por WhatsApp al siguiente número{\" \"}\r\n +57 301 661 1801 o haz click en el siguiente{\" \"}\r\n enlace a WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n volverMercado()}\r\n >\r\n Volver Al Mercado\r\n

\r\n
\r\n
\r\n (window.location.href = errorState[\"link\"])}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Compra Separada ADDI\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n\r\n \r\n {clienteState[\"Nombres\"]} Cuando realices el pago envíanos el\r\n comprobante por WhatsApp al siguiente número{\" \"}\r\n +57 301 661 1801 o haz click en el siguiente{\" \"}\r\n enlace a WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n volverMercado()}\r\n >\r\n Volver Al Mercado\r\n

\r\n
\r\n
\r\n (window.location.href = errorState[\"link\"])}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Compra Separada Contraentrega\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n \r\n {clienteState[\"Nombres\"].slice(10)} Confirmanos que deseas recibir\r\n tu compra con pago contraentrega.Escribenos por WhatsApp al\r\n siguiente número +57 301 661 1801 o haz click en el\r\n siguiente enlace a WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n volverMercado()}\r\n >\r\n Volver Al Mercado\r\n

\r\n
\r\n
\r\n (window.location.href = errorState[\"link\"])}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Tu cupon se canjeo correctamente\" ? (\r\n
\r\n

\r\n Cupón Validado\r\n

\r\n \r\n \r\n {errorState[\"Cliente\"].split(\"-\")[1]} tu cupón de{\" \"}\r\n {errorState[\"Descripcion\"].toLowerCase()} se valido correctamente\r\n
\r\n {errorState[\"Tipo\"] === \"DESCUENTO\"\r\n ? \"el total de tu compra tendra un \" +\r\n errorState[\"valor\"] +\r\n \"% de descuento.\"\r\n : \"el total de tu compra tendra un descuento de $\" +\r\n errorState[\"valor\"] +\r\n \" pesos.\"}\r\n

\r\n\r\n cerrarModal()}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Tu cupon es invalido o ha expirado\" ? (\r\n
\r\n

\r\n Cupón Validado\r\n

\r\n \r\n \r\n {errorState[\"Cliente\"]} lo sentimos tu cupón es invalido o ya ha\r\n vencido.\r\n
\r\n Escríbenos para validar la información.\r\n

\r\n\r\n
\r\n
\r\n
\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n
\r\n \r\n (window.location.href =\r\n \"https://api.whatsapp.com/send?phone=573234013289&text=Hola DK soy \" +\r\n clienteState[\"Nombres\"] +\r\n \" \" +\r\n clienteState[\"Apellidos\"] +\r\n \" estoy teniendo problemas para canjear un cupon.\")\r\n }\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n WhatsApp\r\n

\r\n
\r\n
\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Te redireccionamos a la ventana de pago.\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n \r\n {clienteState[\"Nombres\"]} Te redireccionamos a la ventana de pago\r\n PSE.

\r\n Recuerda permitir las ventanas emergentes y redirecciones en tu\r\n navegador para esta pagina.\r\n

El total a pagar seria\r\n $ {formatNumber(errorState[\"Total\"])} Pesos.\r\n

\r\n\r\n informacionAdicionalPSE()}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Te redireccionamos a la ventana de pago.\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n \r\n {clienteState[\"Nombres\"]} Te redireccionamos a la ventana de pago\r\n PSE.

\r\n Recuerda permitir las ventanas emergentes y redirecciones en tu\r\n navegador para esta pagina.\r\n

El total a pagar seria\r\n $ {formatNumber(errorState[\"Total\"])} Pesos.\r\n

\r\n\r\n informacionAdicionalPSE()}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] ===\r\n \"Te redireccionamos a la ventana de pago Addi.\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n \r\n {clienteState[\"Nombres\"]} Te redireccionamos a la ventana de pago\r\n ADDI.

\r\n Recuerda regresar a esta pestaña al realizar el pago para continuar con el proceso.\r\n

\r\n Cuando realices el pago puedes dar clic en Aceptar.\r\n

El total a pagar sería\r\n $ {formatNumber(errorState[\"Total\"])} Pesos.\r\n

\r\n \r\n

\r\n Pagar con ADDI\r\n

\r\n
\r\n\r\n informacionAdicionalAddi()}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Registro exitoso\" ? (\r\n
\r\n

\r\n Tu registro fue exitoso\r\n

\r\n \r\n \r\n Gracias por tu participación.

\r\n Esperamos ver todo tu talento.

\r\n ¡Muchos éxitos!.\r\n

\r\n \r\n }\r\n >\r\n Aceptar\r\n

\r\n
\r\n
\r\n ) : errorState[\"Mensaje\"] === \"Bienvenido Vendedor\" ? (\r\n
\r\n

\r\n PREVENTA MERCADER\r\n

\r\n \r\n

\r\n BIENVENID@ {errorState[\"Vendedor\"]}\r\n

\r\n\r\n cerrarModal()}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"] === \"este es tu pin\" ? (\r\n
\r\n

\r\n Hemos Separado Tu Compra\r\n

\r\n \r\n \r\n {clienteState[\"Nombres\"]} tu pin de pago {errorState[\"MedioPago\"]}{\" \"}\r\n es:\r\n

\r\n {errorState[\"pin\"]}\r\n

El total a pagar seria\r\n $ {formatNumber(errorState[\"Total\"])} Pesos.\r\n

\r\n\r\n informacionAdicionalPSE()}\r\n >\r\n Aceptar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"].indexOf(\"Este es tu pin\") < 0 &&\r\n errorState[\"Mensaje\"].indexOf(\r\n \"Te redireccionamos a la ventana de pago.\"\r\n ) < 0 &&\r\n errorState[\"Mensaje\"].indexOf(\"Hemos separado tu compra\") < 0 &&\r\n errorState[\"Mensaje\"].indexOf(\"Tu cupon se canjeo correctamente\") <\r\n 0 &&\r\n errorState[\"Mensaje\"].indexOf(\"Tu cupon es invalido o ha expirado\") <\r\n 0 ? (\r\n
\r\n

\r\n Vaya..\r\n

\r\n \r\n \r\n {errorState[\"Mensaje\"]}\r\n

\r\n cerrarModal()}\r\n >\r\n Cerrar\r\n

\r\n
\r\n ) : errorState[\"Mensaje\"].indexOf(\"Tu cupon se canjeo correctamente\") <\r\n 0 &&\r\n errorState[\"Mensaje\"].indexOf(\"Tu cupon es invalido o ha expirado\") <\r\n 0 ? (\r\n
\r\n

\r\n Pedido Separado\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Modal/pin-negro.png\";\r\n }}\r\n />\r\n\r\n
\r\n
\r\n \r\n {errorState[\"Mensaje\"]}\r\n

\r\n
\r\n
\r\n
\r\n \r\n Total a Pagar\r\n

\r\n
\r\n
\r\n \r\n {formatNumber(errorState[\"Total\"])}\r\n

\r\n
\r\n
\r\n
\r\n volverMercado()}\r\n >\r\n Volver a la tienda\r\n

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

\r\n Informacion cupo\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Modal/pin-negro.png\";\r\n }}\r\n />\r\n \r\n {errorState[\"Mensaje\"]} few\r\n

\r\n cerrarModal()}\r\n >\r\n Aceptar\r\n

\r\n
\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ModalGeneral;\r\n","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\n//import { useNavigate } from \"react-router-dom\";\r\n//Zona de importacion de componentes internos.\r\nimport Registro from \"./Registro\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nconst InicioSesion = ({\r\n headerState,\r\n modificarHeaderState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n // clienteState,\r\n // modificarClienteState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n errorState,\r\n modificarErrorState,\r\n pedidoState,\r\n modificarPedidoState,\r\n administradorState,\r\n modificarAdministradorState,\r\n actualizarSessionStorage,\r\n}) => {\r\n const { clienteState, modificarClienteState } = useGlobalContext();\r\n\r\n // states\r\n const [inputs, setInputs] = useState({ email: \"\", password: \"\" });\r\n const [mensaje, setMensaje] = useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const { email, password } = inputs;\r\n\r\n const HandleChange = (e) => {\r\n console.log(\"[e.target.name]\", e.target.name)\r\n console.log(\"[e.target.value]\", e.target.value)\r\n setInputs({ ...inputs, [e.target.name]: e.target.value });\r\n };\r\n\r\n const history = useHistory();\r\n\r\n const onSubmit = async (e) => {\r\n console.log(\"ENTRA CLICK\", e.email, password )\r\n e.preventDefault();\r\n if (email !== \"\" && password !== \"\") {\r\n const Usuario = {\r\n email,\r\n password,\r\n };\r\n setLoading(true);\r\n await axios\r\n .post(apiUrlState+\"/Api/auth/signin\", Usuario)\r\n .then((res) => {\r\n const { data } = res;\r\n setMensaje(data.mensaje);\r\n setTimeout(() => {\r\n setMensaje(\"\");\r\n \r\n localStorage.setItem(\"token\", data?.token);\r\n history.push('/Admin/Indicadores')\r\n //navigate(`/welcome`);\r\n }, 1500);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n setMensaje(\"email u password incorrecta\");\r\n setTimeout(() => {\r\n setMensaje(\"\");\r\n }, 1500);\r\n });\r\n setInputs({ email: \"\", password: \"\" });\r\n setLoading(false);\r\n }\r\n };\r\n //retorna el string recibido con la primera letra mayuscula.\r\n const capitalizarPalabras = (val) => {\r\n var minuscula = val.toLowerCase();\r\n return val !== \"\" ? minuscula[0].toUpperCase() + minuscula.slice(1) : \"\";\r\n };\r\n\r\n //Funcion principal:\r\n //Esta funcion revisa las credenciales ingresadas, si estas son correctas realiza el inicio de sesion del cliente,\r\n //actualizando el state de Cliente y tambien el localStorage.\r\n const ingresar = async () => {\r\n let usuario = document.getElementById(\"usuario_input\").value;\r\n let contraseña = document.getElementById(\"contraseña_input\").value;\r\n if (usuario === \"\")\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"El ingreso del correo es obligatorio\",\r\n });\r\n else if (contraseña === \"\")\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"El ingreso de la contraseña es obligatorio\",\r\n });\r\n else {\r\n await ConsultarUsuario(contraseña, function (respuesta) {\r\n if (respuesta[\"Existe\"]) {\r\n if (respuesta[\"Email\"].toLowerCase() === usuario.toLowerCase()) {\r\n if (respuesta[\"Documento\"] !== \"1116283149\") {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n Registro: false,\r\n Accion: \"Activo\",\r\n Sesion: true,\r\n TipoDocumento: respuesta[\"TipoDocumento\"],\r\n NumeroDocumento: respuesta[\"NumeroDocumento\"],\r\n Nombres: capitalizarPalabras(respuesta[\"Nombres\"]),\r\n Apellidos: capitalizarPalabras(respuesta[\"Apellidos\"]),\r\n Correo: respuesta[\"Correo\"],\r\n Genero: respuesta[\"Genero\"],\r\n Celular: respuesta[\"Celular\"],\r\n FechaNacimiento: respuesta[\"FechaNacimiento\"],\r\n Pais: respuesta[\"Pais\"],\r\n Ciudad: respuesta[\"Ciudad\"],\r\n Departamento: respuesta[\"Departamento\"],\r\n Direccion: respuesta[\"Direccion\"],\r\n Barrio: respuesta[\"Barrio\"],\r\n })\r\n );\r\n modificarClienteState({\r\n Registro: false,\r\n Accion: \"Activo\",\r\n Sesion: true,\r\n TipoDocumento: respuesta[\"TipoDocumento\"],\r\n NumeroDocumento: respuesta[\"NumeroDocumento\"],\r\n Nombres: capitalizarPalabras(respuesta[\"Nombres\"]),\r\n Apellidos: capitalizarPalabras(respuesta[\"Apellidos\"]),\r\n Correo: respuesta[\"Correo\"],\r\n Genero: respuesta[\"Genero\"],\r\n Celular: respuesta[\"Celular\"],\r\n FechaNacimiento: respuesta[\"FechaNacimiento\"],\r\n Pais: respuesta[\"Pais\"],\r\n Ciudad: respuesta[\"Ciudad\"],\r\n Departamento: respuesta[\"Departamento\"],\r\n Direccion: respuesta[\"Direccion\"],\r\n Barrio: respuesta[\"Barrio\"],\r\n });\r\n } else {\r\n actualizarSessionStorage(\r\n \"Administrador\",\r\n JSON.stringify({\r\n Recuperar: false,\r\n NumeroDocumento: respuesta[\"NumeroDocumento\"],\r\n Nombrse: capitalizarPalabras(respuesta[\"Nombres\"]),\r\n Apellidos: capitalizarPalabras(respuesta[\"Apellidos\"]),\r\n Tipo: \"Vendedor\",\r\n })\r\n );\r\n modificarAdministradorState({\r\n Recuperar: false,\r\n NumeroDocumento: respuesta[\"NumeroDocumento\"],\r\n Nombres: capitalizarPalabras(respuesta[\"Nombres\"]),\r\n Apellidos: capitalizarPalabras(respuesta[\"Apellidos\"]),\r\n Tipo: \"Vendedor\",\r\n });\r\n }\r\n\r\n window.location.href = \"/\";\r\n } else {\r\n modificarErrorState({ Error: true, Mensaje: \"Correo incorrecto\" });\r\n }\r\n } else {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje:\r\n \"El usuario no existe o la contraseña es incorrecta (Recuerda que tu contraseña es tu numero de cedula, sin ningun caracter especial)\",\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n //Esta funcion retorna true si todos los campos del clienteState estan llenos, false si no.\r\n const revisionDatosUsuarios = () => {\r\n for (const dato in clienteState)\r\n if (clienteState[dato] === \"\") return false;\r\n return true;\r\n };\r\n\r\n //Funcion principal:\r\n //Crea a un usuario en la base de datos de la pagina y de contapyme, segun los datos obtenidos y deja la sesion iniciado con este.\r\n const crearUsuario = async (callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Creandote en nuestra base de datos...\",\r\n });\r\n }\r\n await getJWT(async function (token) {\r\n await axios\r\n .post(\r\n apiUrlState + \"/Usuario/CrearUsuarioReact\",\r\n {\r\n TipoDocumento: clienteState[\"TipoDocumento\"],\r\n NumeroDocumento: clienteState[\"NumeroDocumento\"],\r\n Nombres: clienteState[\"Nombres\"],\r\n Apellidos: clienteState[\"Apellidos\"],\r\n Correo: clienteState[\"Correo\"],\r\n Genero: clienteState[\"Genero\"],\r\n Celular: clienteState[\"Celular\"],\r\n Nacimiento: clienteState[\"Nacimiento\"],\r\n Pais: clienteState[\"Pais\"],\r\n Ciudad: clienteState[\"Ciudad\"],\r\n Departamento: clienteState[\"Departamento\"],\r\n Direccion: clienteState[\"Direccion\"],\r\n Barrio: clienteState[\"Barrio\"],\r\n },\r\n {\r\n headers: {\r\n authorization: \"Bearer \" + token[\"token\"],\r\n },\r\n }\r\n )\r\n .then((response) => {\r\n if (response.data.Creado) {\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n Sesion: true,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n Sesion: true,\r\n });\r\n callback(true);\r\n } else {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n callback(false);\r\n }\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n });\r\n };\r\n\r\n //Verifica si el usuario ya esta registrado, si no se crea.\r\n const registrar = async () => {\r\n if (revisionDatosUsuarios()) {\r\n await ConsultarUsuario(\r\n clienteState[\"Documento\"],\r\n async function (usuario) {\r\n if (usuario[\"Existe\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Este usuario ya esta registrado\",\r\n });\r\n } else {\r\n await crearUsuario(async function (respuesta) {\r\n if (respuesta) {\r\n window.location.href = \"/\";\r\n }\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Todos los campos son obligatorios\",\r\n });\r\n }\r\n };\r\n\r\n //Obtiene el codigo JWT mediante las credenciales a la api rest.\r\n const getJWT = async (callback) => {\r\n await axios\r\n .post(apiUrlState + \"/auth/get-token/\", {\r\n username: \"CroattaWeb\",\r\n password: \"Since2013\",\r\n })\r\n .then((response) => {\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(response.data);\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n //Consulta a un usuario en la Bd segun su numero de documento.\r\n const ConsultarUsuario = async (Identificacion, callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Investigando tus antecedentes...\",\r\n });\r\n }\r\n await getJWT(async function (token) {\r\n await axios\r\n .post(\r\n apiUrlState + \"/Usuario/ConsultaUsuarioReact\",\r\n {\r\n Id: Identificacion,\r\n },\r\n {\r\n headers: {\r\n authorization: \"Bearer \" + token[\"token\"],\r\n },\r\n }\r\n )\r\n .then((response) => {\r\n if (response.status === 200) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(response.data);\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al consultar usuario\",\r\n });\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n }\r\n });\r\n });\r\n };\r\n\r\n //Establece el campo de modo registro como false en el clienteState, tambien actualiza la localStorage.\r\n const cambioInicioSesion = () => {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n Registro: false,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n Registro: false,\r\n });\r\n };\r\n\r\n //Establece el campo de modo registro como true en el clienteState, tambien actualiza la localStorage.\r\n const cambioRegistro = () => {\r\n actualizarSessionStorage(\r\n \"Cliente\",\r\n JSON.stringify({\r\n ...clienteState,\r\n Registro: true,\r\n })\r\n );\r\n modificarClienteState({\r\n ...clienteState,\r\n Registro: true,\r\n });\r\n };\r\n\r\n //Funcion que se ejecuta cada vez que se inicia este componente.\r\n //Pregunta si la sesion ya esta iniciada y si es asi redirecciona al /Mercado, tambien actualizando el localStorage.\r\n useEffect(() => {\r\n if (clienteState[\"Sesion\"]) window.location.href = \"/Mercado\";\r\n var header = JSON.parse(JSON.stringify(headerState));\r\n if (header[\"displayBuscar\"] !== \"none\") {\r\n header[\"displayBuscar\"] = \"none\";\r\n header[\"displayFlecha\"] = \"none\";\r\n modificarHeaderState(header);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {clienteState[\"Registro\"] ? (\r\n
\r\n
\r\n \r\n Registro\r\n

\r\n
\r\n \r\n
\r\n cambioInicioSesion()}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {\"< Atrás\"}\r\n

\r\n
\r\n
\r\n registrar()}\r\n >\r\n Registrarme\r\n

\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n
\r\n
onSubmit(e)} className=\"form-info\">\r\n
\r\n \r\n Inicia Sesión\r\n

\r\n
\r\n
\r\n HandleChange(e)}\r\n value={email}\r\n className=\"text-center\"\r\n type=\"text\"\r\n placeholder=\"Ingrese su correo electrónico\"\r\n name=\"email\"\r\n id=\"usuario_input\"\r\n >\r\n
\r\n
\r\n HandleChange(e)}\r\n className=\"text-center\"\r\n value={password}\r\n type=\"password\"\r\n placeholder=\"Ingrese su contraseña\"\r\n name=\"password\"\r\n id=\"contraseña_input\"\r\n >\r\n
\r\n \r\n \r\n {loading ? \"Cargando...\" : \"Iniciar Sesión\"}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n cambioRegistro()}\r\n >\r\n ¿Nuevo? Regístrate ahora.\r\n

\r\n
\r\n {/*\r\n
\r\n \r\n {\"< Volver\"}\r\n

\r\n
\r\n */}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default InicioSesion;\r\n","import React, { useEffect } from \"react\";\r\nimport Footer from \"../Footer/Footer\";\r\n\r\nconst Ayuda = ({\r\n headerState,\r\n modificarHeaderState,\r\n ayudaState,\r\n modificarAyudaState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n}) => {\r\n //Se determina que opcion de ayuda es y se modifica el state de Ayuda.\r\n const opcionAyuda = (opcion) => {\r\n if (opcion === \"Producto\")\r\n modificarAyudaState({ Producto: true, Envio: false, Cambios: false });\r\n else if (opcion === \"Envio\")\r\n modificarAyudaState({ Producto: false, Envio: true, Cambios: false });\r\n else if (opcion === \"Cambios\")\r\n modificarAyudaState({ Producto: false, Envio: false, Cambios: true });\r\n else modificarAyudaState({ Producto: false, Envio: false, Cambios: false });\r\n };\r\n\r\n //Funciona que se ejecuta al iniciar un componente.\r\n //Si la barra de busqueda esta desplegada se oculta y se actualiza el state del Header.\r\n useEffect(() => {\r\n var header = JSON.parse(JSON.stringify(headerState));\r\n if (header[\"displayBuscar\"] !== \"none\") {\r\n header[\"displayBuscar\"] = \"none\";\r\n header[\"displayFlecha\"] = \"none\";\r\n modificarHeaderState(header);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {!ayudaState[\"Producto\"] &&\r\n !ayudaState[\"Envio\"] &&\r\n !ayudaState[\"Cambios\"] ? (\r\n
\r\n

Ayuda

\r\n
\r\n
\r\n opcionAyuda(\"Producto\")}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Producto-negro.png\";\r\n }}\r\n >\r\n opcionAyuda(\"Producto\")}\r\n >\r\n

Producto

\r\n
\r\n
\r\n
\r\n opcionAyuda(\"Envio\")}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Envio-negro.png\";\r\n }}\r\n >\r\n opcionAyuda(\"Envio\")}\r\n >\r\n

Envio

\r\n
\r\n
\r\n
\r\n opcionAyuda(\"Cambios\")}\r\n onError={(e) => {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Cambio-negro.png\";\r\n }}\r\n >\r\n opcionAyuda(\"Cambios\")}\r\n >\r\n

Cambios y devoluciones

\r\n
\r\n
\r\n
\r\n \r\n ) : (\r\n
\r\n )}\r\n {ayudaState[\"Producto\"] &&\r\n !ayudaState[\"Envio\"] &&\r\n !ayudaState[\"Cambios\"] ? (\r\n
\r\n

Producto

\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Producto-negro.png\";\r\n }}\r\n >\r\n
\r\n

\r\n En DK puedes encontrar una amplia gama de prendas de\r\n materiales naturales, artificiales y sintéticos. Tanto en\r\n dkda.com.co como en cada producto tendrás información\r\n detalla sobre la composición de cada artículo.\r\n

\r\n
\r\n
\r\n
\r\n
opcionAyuda(\"\")}>\r\n

\r\n Volver\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-izquierda-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Algodon-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n {!ayudaState[\"Producto\"] &&\r\n ayudaState[\"Envio\"] &&\r\n !ayudaState[\"Cambios\"] ? (\r\n
\r\n
\r\n

Envio

\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Envio-negro.png\";\r\n }}\r\n >\r\n
\r\n \r\n En DK las opciones de envío pueden varias en función\r\n del destino, la hora de tu compra y la disponibilidad de\r\n los artículos. En el momento de procesar tu compra, te\r\n mostraremos los métodos de envío disponibles, el costo y\r\n la fecha de entrega de tu pedido. Realizamos los envíos\r\n por medio de las principales transportadoras nacionales.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Ayuda/Envia.png\";\r\n }}\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/InterRapidisimo.png\";\r\n }}\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Servientrega.png\";\r\n }}\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Ayuda/Deprisa.png\";\r\n }}\r\n >\r\n {\r\n e.target.onerror = null;\r\n e.target.src = recursosUrlState + \"/img/Ayuda/Saferbo.png\";\r\n }}\r\n >\r\n
\r\n
\r\n
opcionAyuda(\"\")}>\r\n

\r\n Volver\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-izquierda-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n {!ayudaState[\"Producto\"] &&\r\n !ayudaState[\"Envio\"] &&\r\n ayudaState[\"Cambios\"] ? (\r\n
\r\n
\r\n

\r\n Cambios y devoluciones\r\n

\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Ayuda/Cambio-negro.png\";\r\n }}\r\n >\r\n
\r\n \r\n Si deseas realizar la devolución de un artículo, solo\r\n podrás hacerlo al siguiente día hábil de haber recibido tu\r\n pedido, de esta forma garantizamos que nuestros productos\r\n no han sido usados ni exhibidos en ninguna tienda antes de\r\n volver con nosotros.\r\n

\r\n
\r\n
\r\n \r\n En el caso en que la razón de la devolución sea por una\r\n imperfección en el producto, nosotros asumiremos el costo\r\n del envío de este. En un caso contrario, el cliente deberá\r\n asumir este costo.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
opcionAyuda(\"\")}>\r\n

\r\n Volver\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-izquierda-negro.png\";\r\n }}\r\n >\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n

DK

\r\n

\r\n Somos una marca Colombiana para los amantes al diseño, desde el año\r\n 2013 hemos brindado a nuestros clientes prendas con los más altos\r\n estándares de calidad y valor agregado. Somos tendencia y revolución\r\n en la industria textil . ¡No vendemos ropa, vendemos diseños\r\n plasmados sobre prendas de vestir!\r\n

\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Ayuda;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport \"./static/Landing.css\";\r\nimport { useParams } from \"react-router\";\r\nimport axios from \"axios\";\r\nimport { $ } from \"react-jquery-plugin\";\r\n\r\nconst Landing = ({\r\n actualizarSessionStorage,\r\n modificarHeaderState,\r\n recursosUrlState,\r\n headerState,\r\n modificarlandingState,\r\n apiUrlState,\r\n SetLandingHeader,\r\n}) => {\r\n const [Ruta, GetRuta] = useState({ Video: \" \", Categoria: \"\", bool: true });\r\n const [Product, GetProduct] = useState([]);\r\n const [RutaL, GetRutaL] = useState({ Categoria: \"\" });\r\n const [carousels, Getcarousels] = useState({ carouselx: \"carousel\" });\r\n\r\n //\r\n\r\n const CambioProductos = (mercado) => {\r\n actualizarSessionStorage(\"TipoCliente\", mercado);\r\n modificarHeaderState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.png\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: headerState[\"Seccion\"],\r\n Cliente: mercado,\r\n BotonCatalogo: headerState[\"BotonCatalogo\"],\r\n });\r\n /*$('.carousel').carousel({\r\n ride: true\r\n })*/\r\n };\r\n const activar = () => {\r\n $(\".carousel\").carousel({\r\n ride: true,\r\n });\r\n $(\".carousel\").carousel(\"next\");\r\n };\r\n let { id, Genero } = useParams();\r\n\r\n /*const obtenerSeccion = async(Seccion) => {\r\n const getJWT = async(callback) => {\r\n await axios.post(apiUrlState+\"/auth/get-token/\", {\r\n \"username\": \"CroattaWeb\",\r\n \"password\": \"Since2013\"\r\n }).then(response => {\r\n callback(response.data);\r\n\r\n \r\n }).catch(function(err) {\r\n })\r\n }\r\n getJWT(async function(token){\r\n await axios.get(apiUrlState+\"/Inventario/ConsultarProductos\"+Seccion, {\r\n //...data\r\n }, {\r\n headers: {\r\n \"authorization\": (\"Bearer \" + token[\"token\"]) \r\n }\r\n }).then(response => {\r\n \r\n //GetProduct(response.data)\r\n }).catch(function(err) {\r\n \r\n })\r\n })\r\n }*/\r\n //Ruta landing\r\n const RutaLanding = async () => {\r\n if (id === \"Camiseta\" && Genero === \"Hombre\") {\r\n return [\"607ed63e521b1c0910a581aa\", \"607ed653521b1c0910a581b8\"];\r\n }\r\n if (id === \"Camiseta\" && Genero === \"Niño\") {\r\n return [\"607ed63e521b1c0910a581aa\", \"607ed653521b1c0910a581ba\"];\r\n }\r\n if (id === \"Camiseta\" && Genero === \"Mujer\") {\r\n return [\"607ed63e521b1c0910a581aa\", \"607ed653521b1c0910a581b9\"];\r\n }\r\n if (id === \"Gorra\" && Genero === \"Unisex\") {\r\n return [\"607ed63e521b1c0910a581ac\", \"607ed653521b1c0910a581bb\"];\r\n }\r\n if (id === \"Hoodie\" && Genero === \"Hombre\") {\r\n return [\"607ed63e521b1c0910a581ad\", \"607ed653521b1c0910a581b8\"];\r\n }\r\n if (id === \"Hoodie\" && Genero === \"Mujer\") {\r\n return [\"607ed63e521b1c0910a581ad\", \"607ed653521b1c0910a581b9\"];\r\n }\r\n if (id === \"Polo\" && Genero === \"Hombre\") {\r\n return [\"607ed63f521b1c0910a581b1\", \"607ed653521b1c0910a581b8\"];\r\n }\r\n if (id === \"Pantaloneta\" && Genero === \"Hombre\") {\r\n return [\"607ed63e521b1c0910a581b0\", \"607ed653521b1c0910a581b8\"];\r\n }\r\n if (id === \"Jogger\" && Genero === \"Hombre\") {\r\n return [\"607ed63e521b1c0910a581af\", \"607ed653521b1c0910a581b8\"];\r\n }\r\n if (id === \"Jogger\" && Genero === \"Mujer\") {\r\n return [\"607ed63e521b1c0910a581af\", \"607ed653521b1c0910a581b9\"];\r\n }\r\n\r\n return [\"\", \"\"];\r\n };\r\n const obtenerSeccion2 = async (Seccion) => {\r\n let data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: false,\r\n Todo: false,\r\n Origen: \"Landing\"\r\n };\r\n const cateGene = await RutaLanding();\r\n data[\"Categorias\"].push({ Categoria: cateGene[0] });\r\n data[\"Generos\"].push({ Genero: cateGene[1] });\r\n data[\"ProductosNuevos\"] = false;\r\n\r\n await axios\r\n .post(\r\n apiUrlState + \"/Api/Inventario/GetProductos\",\r\n {\r\n data,\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n GetProduct(response.data.data);\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n //position: absolute; transform: translate(-50%, 0%);\r\n /*const jqueryx = () => {\r\n $('.carousel').carousel({\r\n ride: true\r\n })\r\n $('.carousel').carousel('prev');\r\n \r\n }*/\r\n const Condicion = () => {\r\n /*$(\".carousel\").carousel();\r\n $('.carousel').carousel({\r\n ride: \"true\"\r\n })\r\n $(\".item\").click(function(){\r\n $(\".carousel\").carousel(1);\r\n });*/\r\n\r\n GetRutaL({ Categoria: \"/\" + id + \"/\" + Genero });\r\n modificarlandingState({\r\n Display: \"none\",\r\n Posicion: \"50%\",\r\n positionlogo: \"absolute\",\r\n transform: \"translate(-50%, 0%)\",\r\n });\r\n obtenerSeccion2(\"\");\r\n if (id === \"Remarketing\") {\r\n GetRuta({\r\n ...Ruta,\r\n Video: \"https://www.youtube.com/embed/q3W2K772eqM\",\r\n });\r\n }\r\n if (id === \"Gorra\") {\r\n var categGorra = id + \"/Unisex\";\r\n //obtenerSeccion(\"/\"+id)\r\n //obtenerSeccion2(\"\")\r\n GetRuta({\r\n Categoria: categGorra,\r\n Video: \"https://www.youtube.com/embed/q3W2K772eqM\",\r\n });\r\n }\r\n if (id === \"Polo\") {\r\n var categPolo = id + \"/Hombre\";\r\n //obtenerSeccion(\"/\"+categPolo)\r\n GetRuta({\r\n Categoria: categPolo,\r\n Video:\r\n \"https://www.youtube.com/embed/zpOULjyy-n8?rel=0&start=20&controls=1\",\r\n });\r\n }\r\n if (id === \"Camiseta\" && Genero === \"Mujer\") {\r\n var categCamisetaM = id + \"/\" + Genero;\r\n\r\n //obtenerSeccion(\"/\"+categCamisetaM)\r\n GetRuta({\r\n Categoria: categCamisetaM,\r\n Video:\r\n \"https://www.youtube.com/embed/zpOULjyy-n8?rel=0&start=20&controls=1\",\r\n });\r\n }\r\n if (id === \"Camiseta\" && Genero === \"Hombre\") {\r\n var categCamisetaH = id + \"/\" + Genero;\r\n\r\n //obtenerSeccion(\"/\"+categCamisetaH)\r\n GetRuta({\r\n Categoria: categCamisetaH,\r\n Video:\r\n \"https://www.youtube.com/embed/zpOULjyy-n8?rel=0&start=20&controls=1\",\r\n });\r\n }\r\n if (id === \"Hoodie\") {\r\n var categHoodie = id + \"/Hombre\";\r\n //obtenerSeccion(\"/\"+id)\r\n GetRuta({\r\n Categoria: categHoodie,\r\n Video:\r\n \"https://www.youtube.com/embed/zpOULjyy-n8?rel=0&start=20&controls=1\",\r\n });\r\n }\r\n if (id === \"pantaloneta\") {\r\n var categHoodie = id + \"/Hombre\";\r\n //obtenerSeccion(\"/\"+id)\r\n GetRuta({\r\n Categoria: categHoodie,\r\n Video:\r\n \"https://www.youtube.com/embed/zpOULjyy-n8?rel=0&start=20&controls=1\",\r\n });\r\n }\r\n if (id === \"jogger\") {\r\n var categHoodie = id + \"/Hombre\";\r\n //obtenerSeccion(\"/\"+id)\r\n GetRuta({\r\n Categoria: categHoodie,\r\n Video:\r\n \"https://www.youtube.com/embed/zpOULjyy-n8?rel=0&start=20&controls=1\",\r\n });\r\n }\r\n };\r\n useEffect(() => {\r\n //$(\".carousel\").attr(\"data-interval\", \"2000\");\r\n /*$('.carousel').carousel({\r\n pause: \"true\"\r\n });*/\r\n\r\n /*$('.carousel').carousel({\r\n ride: true\r\n })*/\r\n\r\n Condicion();\r\n /*$('.carousel').carousel({\r\n ride: \"true\"\r\n });*/\r\n SetLandingHeader({ Estado: true });\r\n /*$('.carousel').on('touchstart', function(event){\r\n const xClick = event.originalEvent.touches[0].pageX;\r\n $(this).one('touchmove', function(event){\r\n const xMove = event.originalEvent.touches[0].pageX;\r\n const sensitivityInPx = 5;\r\n \r\n if( Math.floor(xClick - xMove) > sensitivityInPx ){\r\n $(this).carousel('next');\r\n }\r\n else if( Math.floor(xClick - xMove) < -sensitivityInPx ){\r\n $(this).carousel('prev');\r\n }\r\n });\r\n $(this).on('touchend', function(){\r\n $(this).off('touchmove');\r\n });\r\n });*/\r\n\r\n setTimeout(function () {\r\n activar();\r\n }, 3000);\r\n\r\n //obtenerSeccion(RutaL.Categoria)//\"/Camiseta/Hombre\" Product.length > 0\r\n }, []);\r\n\r\n return (\r\n
\r\n {Product.length > 0 ? (\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n
style={{display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\",alignItems: \"center\"}}*/}\r\n\r\n \r\n \r\n
\r\n {Product.map((imagen, index) =>\r\n index > 0 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n \r\n
\r\n )\r\n )}\r\n
\r\n \r\n \r\n Previous\r\n \r\n \r\n \r\n Next\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

Precio Mayorista

\r\n

\r\n {Product[0].PrecioMayorista}\r\n

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

Precio Minorista

\r\n

\r\n {Product[0].PrecioMinorista}\r\n

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

Compra protegida

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

\r\n Disponible pago contra entrega\r\n

\r\n
\r\n \r\n \r\n \r\n CambioProductos(\"Minoristas\")}\r\n target=\"_blank\"\r\n >\r\n \r\n Quiero comprar una unidad.\r\n

\r\n \r\n CambioProductos(\"Mayoristas\")}\r\n target=\"_blank\"\r\n >\r\n \r\n Quiero comprar al por mayor.\r\n

\r\n \r\n \r\n \r\n Quiero contactar un asesor.\r\n

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

Clientes satisfechos

\r\n

\r\n {\" \"}\r\n En DK la prioridad es que los clientes se encuentren\r\n satisfechos con nuestros productos, siempre atendiendo sus\r\n necesidades con amabilidad y profesionalismo\r\n

\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Previous\r\n \r\n \r\n \r\n Next\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n

Nuestas alianzas

\r\n

\r\n {\" \"}\r\n Ahora puedes encontrar nuestras tiendas oficiales en los\r\n Marketplace que más te gustan, para que compres tus prendas\r\n favoritas con total confianza\r\n

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

Medios de pago

\r\n

\r\n {\" \"}\r\n Tenemos muchas opciones para que puedas comprar en nuestra\r\n página de forma segura\r\n

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

\r\n Aliados logisticos\r\n

\r\n

\r\n {\" \"}\r\n ¡Queremos que tu experiencia de compra sea la mejor!
{\" \"}\r\n Por esto contamos con los mejores aliados para que tus prendas\r\n lleguen a su destino de forma rápida y segura\r\n

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\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 Landing;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport \"../static/Indicadores.css\";\r\nimport swal from \"sweetalert\";\r\n\r\nconst Indicadores = ({ SetLandingHeader, apiUrlState, recursosUrlState }) => {\r\n const [ListMeta, GetListMeta] = useState([\r\n {\r\n _id: \"78858787\",\r\n Periodo: \"01 January 2021 - 31 January 2021\",\r\n Ingresos: \"$ 5.002.567\",\r\n Meta: \"$ 10.000.000\",\r\n Cumplida: \"No\",\r\n Opciobes: \"*\",\r\n },\r\n ]);\r\n\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n\r\n const VolverAdmin = () => {\r\n window.location.href = \"/Admin/Index/MenuPrincipal\";\r\n };\r\n\r\n const formatNumber = (amount) => {\r\n if (ListMeta.IngresosBancarios !== \"$ --\") {\r\n var temp = amount + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n }\r\n };\r\n\r\n const Cumplida = (amount) => {\r\n let condicion = \"\";\r\n if (amount) {\r\n return (condicion = \"Si\");\r\n } else {\r\n return (condicion = \"No\");\r\n }\r\n };\r\n const obtenerMetas = async () => {\r\n await axios\r\n .post(\r\n apiUrlState + \"/Api/Indicadores/GetMetas\",\r\n {\r\n data: {},\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n GetListMeta(response.data);\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n const DeleterMeta = async (id) => {\r\n swal({\r\n title: \"Esta seguro de eliminar esta Meta ?\",\r\n text: \"Al eliminarla no se podran recuperar los datos\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true,\r\n }).then((willDelete) => {\r\n if (willDelete) {\r\n axios\r\n .post(\r\n apiUrlState + \"/Api/Indicadores/DeleteMeta\",\r\n {\r\n data: {\r\n _id: id,\r\n },\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n window.location.href = \"/Admin/Indicadores\";\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n\r\n swal(\"Poof! Meta Eliminada\", {\r\n icon: \"success\",\r\n });\r\n } else {\r\n swal(\"La Meta no se eliminó\");\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n SetLandingHeader({ Estado: true });\r\n obtenerMetas();\r\n }, []);\r\n return (\r\n
\r\n

\r\n Listado de Metas\r\n

\r\n
\r\n \r\n \r\n Nueva meta\r\n

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Periodo\r\n \r\n \r\n Ingresos\r\n \r\n \r\n Meta\r\n \r\n \r\n Cumplida\r\n \r\n \r\n Opciones\r\n \r\n \r\n \r\n \r\n {ListMeta.map((Meta) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
{Meta.Periodo}$ {formatNumber(Meta.Ingresos)}$ {formatNumber(Meta.Meta)}{Cumplida(Meta.MetaCumplida)}\r\n \r\n \r\n Ver Mas\r\n \r\n \r\n \r\n DeleterMeta(Meta._id)}\r\n >\r\n Eliminar\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Indicadores;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport \"../static/Indicadores.css\";\r\nimport { useParams } from \"react-router\";\r\nimport { Doughnut } from \"react-chartjs-2\";\r\n\r\nconst DetalleMeta = ({ SetLandingHeader, apiUrlState }) => {\r\n const [ListMeta, GetListMeta] = useState({\r\n IngresosBancarios: \"$ --\",\r\n IngresosEfectivo: \"$ --\",\r\n IngresosTotales: \"$ --\",\r\n Meta: \"$ --\",\r\n NoVencido: \"$ --\",\r\n Periodo: \"--\",\r\n TotalCxC: \"$ --\",\r\n TotalPorVender: \"$ --\",\r\n TotalVencido: \"$ --\",\r\n VencidoMas90Dias: \"$ --\",\r\n VencidoMax30Dias: \"$ --\",\r\n VencidoMax60Dias: \"$ --\",\r\n VencidoMax90Dias: \"$ --\",\r\n abonosVentasCredito: \"$ --\",\r\n ventasCredito: \"$ --\",\r\n Ventas: {\r\n Vendedor1: {Ventas: \"$ --\", Devoluciones: \"$ --\", Total: \"$ --\"},\r\n Vendedor2: {Ventas: \"$ --\", Devoluciones: \"$ --\", Total: \"$ --\"},\r\n VendedorWeb: {Ventas: \"$ --\", Devoluciones: \"$ --\", Total: \"$ --\"},\r\n Maquila: {Ventas: \"$ --\", Devoluciones: \"$ --\", Total: \"$ --\"},\r\n }\r\n });\r\n\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n let { id } = useParams();\r\n\r\n const obtenerDetalle = async () => {\r\n await axios\r\n .get(apiUrlState + \"/Api/Indicadores/CalcularMeta/\" + id)\r\n .then((response) => {\r\n GetListMeta(response.data);\r\n console.log(\"DATA: \",response.data)\r\n })\r\n .catch(function (err) {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const formatNumber = (amount) => {\r\n if (ListMeta.IngresosBancarios != \"$ --\") {\r\n var temp = Math.round(amount) + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n }\r\n };\r\n\r\n const dataVentas = {\r\n labels: [\"Vendido\", \"Por Vender\"],\r\n datasets: [\r\n {\r\n data: [ListMeta.IngresosTotales, ListMeta.TotalPorVender],\r\n backgroundColor: [\"rgba(0, 255, 0, 1)\", \"rgba(255, 0, 23, 1)\"],\r\n borderColor: [\"rgba(75, 192, 192, 1)\", \"rgba(255, 99, 132, 1)\"],\r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n\r\n useEffect(() => {\r\n SetLandingHeader({ Estado: true });\r\n obtenerDetalle();\r\n }, []);\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {ListMeta.Periodo}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Vendido: $ {formatNumber(ListMeta.IngresosTotales)}

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

Por Vender: $ {formatNumber(ListMeta.TotalPorVender)}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Ingresos Bancarios\r\n \r\n \r\n Ingresos Efectivo\r\n \r\n \r\n Ventas a Credito\r\n \r\n \r\n Abonos a Ventas a Credito\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n $ {formatNumber(ListMeta.IngresosBancarios)}\r\n \r\n $ {formatNumber(ListMeta.IngresosEfectivo)}\r\n \r\n $ {formatNumber(ListMeta.ventasCredito)}\r\n \r\n $ {formatNumber(ListMeta.abonosVentasCredito)}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Total CxC: $ {formatNumber(ListMeta.TotalCxC)}

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

Vencido: $ {formatNumber(ListMeta.TotalVencido)}

\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n Sin Vencer\r\n \r\n \r\n Vencido 0 - 30 dias\r\n \r\n \r\n Vencido 31 - 60 dias\r\n \r\n \r\n Vencido 61 - 90 dias\r\n \r\n \r\n Vencido Mas 90\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n $ {formatNumber(ListMeta.NoVencido)}\r\n \r\n ${formatNumber(ListMeta.VencidoMax30Dias)}\r\n \r\n ${formatNumber(ListMeta.VencidoMax60Dias)}\r\n \r\n ${formatNumber(ListMeta.VencidoMax90Dias)}\r\n \r\n ${formatNumber(ListMeta.VencidoMas90Dias)}\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n

ANGELA

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

\r\n VENTAS: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.Vendedor1.Ventas)}\r\n

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

\r\n DEVOLUCIONES: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.Vendedor1.Devoluciones)}\r\n

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

TOTAL: $ {formatNumber(ListMeta.Ventas.Vendedor1.Total)}

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

KATHERINE

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

\r\n VENTAS: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.Vendedor2.Ventas)}\r\n

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

\r\n DEVOLUCIONES: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.Vendedor2.Devoluciones)}\r\n

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

TOTAL: $ {formatNumber(ListMeta.Ventas.Vendedor2.Total)}

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

WEB

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

\r\n VENTAS: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.VendedorWeb.Ventas)}\r\n

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

\r\n DEVOLUCIONES: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.VendedorWeb.Devoluciones)}\r\n

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

TOTAL: $ {formatNumber(ListMeta.Ventas.VendedorWeb.Total)}

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

MAQUILA

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

\r\n VENTAS: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.Maquila.Ventas)}\r\n

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

\r\n DEVOLUCIONES: ${\" \"}\r\n {formatNumber(ListMeta.Ventas.Maquila.Devoluciones)}\r\n

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

TOTAL: $ {formatNumber(ListMeta.Ventas.Maquila.Total)}

\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DetalleMeta;\r\n","//Zona de importacion de componentes externos.\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { SlideDown } from \"react-slidedown\";\r\nimport \"react-slidedown/lib/slidedown.css\";\r\nimport \"./static/css/Detalle/Detalle.css\";\r\nimport Producto from \"./Producto\";\r\nimport { useParams } from \"react-router\";\r\nimport axios from \"axios\";\r\nimport GrupoTallas from \"./GrupoTallas\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { TransformWrapper, TransformComponent } from \"react-zoom-pan-pinch\";\r\nimport $ from \"jquery\";\r\nimport Footer from \"../Footer/Footer\";\r\n\r\nconst Detalle = ({\r\n ViewDetalle,\r\n SetViewDetalle,\r\n SetLandingHeader,\r\n headerState,\r\n modificarHeaderState,\r\n filtrosState,\r\n modificarFiltrosState,\r\n productosState,\r\n modificarProductosState,\r\n tallasState,\r\n modificarTallasState,\r\n coloresState,\r\n modificarColoresState,\r\n marcasState,\r\n modificarMarcasState,\r\n carrito,\r\n modificarCarritoState,\r\n cliente,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n categoriasHombreState,\r\n modificarCategoriasHombreState,\r\n categoriasMujerState,\r\n modificarCategoriasMujerState,\r\n CatalogoState,\r\n actualizarSessionStorage,\r\n estadoBar,\r\n vendedor,\r\n modificarVendedorState,\r\n Bodega,\r\n setBodega,\r\n}) => {\r\n const [Product, GetProduct] = useState({});\r\n const [ProductRel, GetProductRel] = useState([]);\r\n const [ProductAux, GetProductAux] = useState();\r\n const [foto1, setFoto1] = useState({ f1: false });\r\n const [foto2, setFoto2] = useState({ f2: false });\r\n const [foto3, setFoto3] = useState({ f3: false });\r\n let { id } = useParams();\r\n\r\n const ProductoDetalle = async () => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \" Buscando Producto...\",\r\n });\r\n }\r\n var genero = \"\";\r\n await axios\r\n .get(apiUrlState + \"/Api/Inventario/BusquedaPalabraRef/\" + id +`/${Bodega}`, {}, {})\r\n .then((response) => {\r\n genero = response.data[0].data[0].Genero.Genero;\r\n GetProduct(response.data[0].data[0]);\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n\r\n /*const generoState = await axios.get(apiUrlState + '/Api/Inventario/BusquedaPalabraRef/'+genero, {});\r\n GetProductRel(generoState.data.data)*/\r\n\r\n /** Modificaciones */\r\n // Relacionados(genero);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n /** End Modificaciones */\r\n };\r\n const calcularDescuento = (precio, descuento) => {\r\n const precioInt = arreglarPrecio(precio);\r\n const descuentoAplicar = parseFloat(descuento);\r\n return formatNumber(precioInt - precioInt * (descuentoAplicar / 100));\r\n };\r\n\r\n const arreglarPrecio = (precio) => {\r\n var separacion = precio;\r\n if (precio.indexOf(\"$\") !== -1) separacion = precio.split(\" \")[1];\r\n var separacion2 = separacion.split(\".\");\r\n return parseFloat(separacion2[0] + separacion2[1]);\r\n };\r\n\r\n //Añade el punto de miles al precio ingresado y lo retorna.\r\n const formatNumber = (amount) => {\r\n var temp = amount + \"\";\r\n var i = temp.length - 3;\r\n while (i > 0) {\r\n temp = temp.substring(0, i) + \".\" + temp.substring(i);\r\n i -= 3;\r\n }\r\n return \" \" + temp;\r\n };\r\n\r\n const rotacionFlecha = (codigo) => {\r\n var listaClases = document.getElementById(\"Flecha\" + codigo);\r\n if (listaClases.classList.contains(\"giroFlechaArriba\")) {\r\n listaClases.classList.remove(\"giroFlechaArriba\");\r\n listaClases.classList.add(\"giroFlechaAbajo\");\r\n } else {\r\n listaClases.classList.remove(\"giroFlechaAbajo\");\r\n listaClases.classList.add(\"giroFlechaArriba\");\r\n }\r\n };\r\n\r\n const Relacionados = async (genero) => {\r\n await axios\r\n .get(\r\n apiUrlState + \"/Api/Inventario/BusquedaPalabraRef/\" + genero,\r\n {},\r\n {}\r\n )\r\n .then((response) => {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n GetProductRel(response.data[0].data);\r\n GetProductAux(\r\n Math.floor(Math.random() * (response.data[0].data.length - 1))\r\n );\r\n //Getrelacionados(true)\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error 2\");\r\n });\r\n };\r\n\r\n const VerificarFotos = (codigo, tipo) => {\r\n let img = document.createElement(\"img\");\r\n img.src = recursosUrlState + \"/img/Productos/Ref \" + codigo + \"1.webp\";\r\n img.onerror = function () {\r\n setFoto1({ f1: true });\r\n };\r\n let imgD = document.createElement(\"img\");\r\n imgD.src = recursosUrlState + \"/img/Productos/Ref \" + codigo + \"2.webp\";\r\n imgD.onerror = function () {\r\n setFoto2({ f2: true });\r\n };\r\n let imgD2 = document.createElement(\"img\");\r\n imgD2.src = recursosUrlState + \"/img/Productos/Ref \" + codigo + \"3.webp\";\r\n imgD2.onerror = function () {\r\n setFoto3({ f3: true });\r\n };\r\n return \"/img/Productos/Ref\" + tipo + \" \" + codigo + \".jpg\";\r\n };\r\n\r\n useEffect(() => {\r\n ProductoDetalle();\r\n //SetLandingHeader({\"Estado\": true})\r\n SetViewDetalle({ Estado: true });\r\n VerificarFotos(id, \"T\");\r\n modificarHeaderState({ ...headerState, Cliente: \"Minoristas\" });\r\n }, []);\r\n\r\n $(document).ready(function () {\r\n // active thumbnail\r\n $(\"#thumbSlider .thumb\").on(\"click\", function () {\r\n $(this).addClass(\"active\");\r\n $(this).siblings().removeClass(\"active\");\r\n });\r\n });\r\n\r\n return (\r\n
\r\n {Product.PrecioMinorista !== undefined ? (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n {foto1.f1 ? null : (\r\n \r\n \r\n
\r\n )}\r\n\r\n {foto2.f2 ? null : (\r\n \r\n \r\n
\r\n )}\r\n\r\n {foto3.f3 ? 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 {foto1.f1 ? null : (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {foto2.f2 ? null : (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {foto3.f3 ? null : (\r\n
\r\n \r\n
\r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Previous\r\n \r\n \r\n \r\n Next\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n {foto1.f1 ? null : (\r\n \r\n \r\n \r\n )}\r\n\r\n {foto2.f2 ? null : (\r\n \r\n \r\n \r\n )}\r\n\r\n {foto3.f3 ? 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 {Product.Categoria.Categoria} {Product.Marca.Marca}\r\n \r\n
\r\n
\r\n
\r\n Ref {Product.Referencia}\r\n
\r\n
\r\n\r\n {headerState[\"Cliente\"] === \"Minoristas\" ? (\r\n Product.DescuentoMinorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {calcularDescuento(\r\n Product.PrecioMinorista,\r\n Product.DescuentoMinorista\r\n )}\r\n \r\n \r\n \r\n {Product.PrecioMinorista}\r\n \r\n
\r\n ) : (\r\n \r\n \r\n $ {Product.PrecioMinorista} \r\n \r\n \r\n )\r\n ) : Product.DescuentoMayorista !== 0 ? (\r\n \r\n \r\n \r\n ${\" \"}\r\n {calcularDescuento(\r\n Product.PrecioMayorista,\r\n Product.DescuentoMayorista\r\n )}\r\n \r\n \r\n \r\n {Product.PrecioMayorista}\r\n \r\n \r\n ) : (\r\n \r\n \r\n $ {Product.PrecioMayorista}\r\n \r\n \r\n )}\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n rotacionFlecha(Product.Referencia)}\r\n >\r\n

\r\n \r\n \r\n Mas información\r\n \r\n \r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-abajo-negro.png\";\r\n }}\r\n >\r\n
\r\n \r\n \r\n \r\n Material: \r\n {\" \"}\r\n {Product.Descripcion}\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Medidas/medidasGeneral\" \r\n // +\r\n // Product.Categoria.Categoria +\r\n // Product.Genero.Genero +\r\n // Product.Medidas \r\n +\r\n \".webp\";\r\n }}\r\n />\r\n \r\n \r\n Cuidados especiales: \r\n {\" \"}\r\n Lavar en lavadora con agua fria 30ºC, ciclo delicado con\r\n colores similares, lavar con jabón suave, no exprimir.\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n rotacionFlecha(Product.Referencia)}\r\n >\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/General/compraProtegida.png\";\r\n }}\r\n />\r\n
\r\n \r\n Compra protegida\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState + \"/img/Modal/pin-negro.png\";\r\n }}\r\n />\r\n
\r\n \r\n Disponible pago contra entrega\r\n

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

\r\n Productos Relacionados\r\n

\r\n
\r\n \r\n {ProductRel.length > 0 ? (\r\n \r\n \r\n \r\n ) : index <= 2 && ProductAux !== undefined ? (\r\n \r\n \r\n \r\n
\r\n

\r\n {ProductRel[ProductAux].Categoria.Categoria}{\" \"}\r\n {ProductRel[ProductAux].Marca.Marca}\r\n

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

Ref {ProductRel[ProductAux].Referencia}

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

\r\n $ {ProductRel[ProductAux].PrecioMinorista}\r\n

\r\n \r\n
\r\n \r\n ) : null\r\n )}\r\n \r\n ) : null}\r\n \r\n ) : null}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Detalle;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport \"../static/Indicadores.css\";\r\n\r\nconst CrudIndicadores = ({ SetLandingHeader, apiUrlState }) => {\r\n const [Meta, GetMeta] = useState({\r\n FechaI: \" \",\r\n FechaF: \"\",\r\n Meta: \"\",\r\n Ingresos: \"\",\r\n });\r\n\r\n const onFileChanges = (e, tipo) => {\r\n if (tipo === \"Ingresos\") {\r\n GetMeta({\r\n ...Meta,\r\n FechaI: e.target.value,\r\n });\r\n }\r\n if (tipo === \"Meta\") {\r\n GetMeta({\r\n ...Meta,\r\n Meta: e.target.value,\r\n });\r\n }\r\n if (tipo === \"Ingresos\") {\r\n GetMeta({\r\n ...Meta,\r\n Ingresos: e.target.value,\r\n });\r\n }\r\n if (tipo === \"FechaF\") {\r\n GetMeta({\r\n ...Meta,\r\n FechaF: e.target.value,\r\n });\r\n }\r\n if (tipo === \"FechaI\") {\r\n GetMeta({\r\n ...Meta,\r\n FechaI: e.target.value,\r\n });\r\n }\r\n };\r\n\r\n const CrearMeta = async () => {\r\n await axios\r\n .post(\r\n apiUrlState + \"/Api/Indicadores/CreateMeta\",\r\n {\r\n data: {\r\n FechaInicial: Meta.FechaI,\r\n FechaFinal: Meta.FechaF,\r\n Meta: Meta.Meta,\r\n Ingresos: Meta.Ingresos,\r\n },\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n window.location.href = \"/Admin/Indicadores\";\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n useEffect(() => {\r\n SetLandingHeader({ Estado: true });\r\n }, []);\r\n return (\r\n
\r\n \r\n Registrar Meta\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n onFileChanges(e, \"FechaI\")}\r\n type=\"date\"\r\n style={{ fontSize: \"15px\" }}\r\n placeholder=\"Ingrese su fecha de nacimiento\"\r\n name=\"FechaNacimiento\"\r\n id=\"fechaNacimiento_input\"\r\n min=\"1910-01-01\"\r\n required\r\n >\r\n
\r\n
\r\n \r\n onFileChanges(e, \"Meta\")}\r\n type=\"text\"\r\n placeholder=\"Ingrese una meta\"\r\n name=\"Celular\"\r\n id=\"celular_input\"\r\n required\r\n >\r\n
\r\n
\r\n
\r\n
\r\n \r\n onFileChanges(e, \"FechaF\")}\r\n type=\"date\"\r\n style={{ fontSize: \"15px\" }}\r\n placeholder=\"Ingrese su fecha de nacimiento\"\r\n name=\"FechaNacimiento\"\r\n id=\"fechaNacimiento_input\"\r\n min=\"1910-01-01\"\r\n required\r\n >\r\n
\r\n {/*
\r\n \r\n onFileChanges(e, \"Ingresos\")} type=\"text\" placeholder=\"Ingrese su numero de celular\" name=\"Celular\" id=\"celular_input\" required>\r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Cancelar\r\n

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n CrearMeta()}\r\n >\r\n Guardar\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CrudIndicadores;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport \"../static/Indicadores.css\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst Unidades = ({ SetLandingHeader, apiUrlState, recursosUrlState }) => {\r\n const VolverAdmin = () => {\r\n window.location.href = \"/Admin/Index/MenuUnidades\";\r\n };\r\n const [ListaUnidades, GetListaUnidades] = useState([\r\n {\r\n grupo: \"PRUEBA\",\r\n S: 0,\r\n M: 0,\r\n L: 0,\r\n XL: 0,\r\n XXL: 0,\r\n U: 0,\r\n Total: 0,\r\n },\r\n ]);\r\n const [TotalUnidades, GetTotalUnidades] = useState({\r\n S: 0,\r\n M: 0,\r\n L: 0,\r\n XL: 0,\r\n XXL: 0,\r\n U: 0,\r\n Total: 0,\r\n });\r\n\r\n const S = 0;\r\n\r\n //Login validation\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n const obtenerUnidades = async () => {\r\n await axios\r\n .get(apiUrlState + \"/Api/Unidades/ConteoUnidades\")\r\n .then((response) => {\r\n GetListaUnidades(response.data.data);\r\n GetTotalUnidades(response.data.total);\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n SetLandingHeader({ Estado: true });\r\n obtenerUnidades();\r\n }, []);\r\n\r\n return (\r\n
\r\n {/*
VolverAdmin()}>\r\n

\r\n Volver\r\n

\r\n {\r\n e.target.onerror = null;\r\n e.target.src =\r\n recursosUrlState +\r\n \"/img/Index/web/botones/flecha-izquierda-negro.png\";\r\n }}\r\n >\r\n
*/}\r\n \r\n Unidades en Bodega\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Linea\r\n \r\n\r\n \r\n Tallas\r\n \r\n\r\n \r\n Total\r\n \r\n \r\n \r\n \r\n S\r\n \r\n \r\n M\r\n \r\n \r\n L\r\n \r\n \r\n XL\r\n \r\n \r\n XXL\r\n \r\n \r\n U\r\n \r\n \r\n \r\n \r\n {ListaUnidades.map((grupo) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{grupo.grupo}{grupo.S}{grupo.M}{grupo.L}{grupo.XL}{grupo.XXL}{grupo.U}{grupo.Total}
{TotalUnidades.S}{TotalUnidades.M}{TotalUnidades.L}{TotalUnidades.XL}{TotalUnidades.XXL}{TotalUnidades.U}{TotalUnidades.Total}
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Unidades;\r\n","import \"../static/Indicadores.css\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nconst MenuPrincipal = ({}) => {\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n VENTAS\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n UNIDADES\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MenuPrincipal;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport \"../static/Indicadores.css\";\r\n\r\nconst MenuUnidades = ({ SetLandingHeader, apiUrlState, recursosUrlState }) => {\r\n const VolverAdmin = () => {\r\n window.location.href = \"/Admin/Index/MenuPrincipal\";\r\n };\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ROTACIÓN UNIDADES\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n DISPONIBLE\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MenuUnidades;\r\n","import React from 'react';\r\nimport * as FaIcons from 'react-icons/fa';\r\nimport * as AiIcons from 'react-icons/ai';\r\nimport * as IoIcons from 'react-icons/io';\r\nimport { MdOutlineLocalOffer } from \"react-icons/md\";\r\n\r\n\r\nconst SidebarData = [\r\n {\r\n title: 'Indicadores',\r\n path: '/Admin/Indicadores', \r\n icon: ,\r\n cName: 'nav-text'\r\n },\r\n {\r\n title: 'Unidades',\r\n path: '/Admin/Index/MenuUnidades',\r\n icon: ,\r\n cName: 'nav-text'\r\n },\r\n {\r\n title: 'Whatsapp',\r\n path: '/Admin/Whatsapp',\r\n icon: ,\r\n cName: 'nav-text'\r\n },\r\n {\r\n title: 'Catálogos',\r\n path: '/Admin/GeneradorDeCatalogos',\r\n icon: ,\r\n cName: 'nav-text'\r\n },\r\n {\r\n title: 'Carga De Fotos',\r\n path: '/Admin/Imagenes',\r\n icon: ,\r\n cName: 'nav-text'\r\n },\r\n {\r\n title: 'Descuentos',\r\n path: '/Admin/Descuentos',\r\n icon: ,\r\n cName: 'nav-text'\r\n }\r\n];\r\n\r\nexport default SidebarData;","import React, { useState } from 'react';\r\nimport * as FaIcons from 'react-icons/fa';\r\nimport * as AiIcons from 'react-icons/ai';\r\nimport { Link } from 'react-router-dom';\r\nimport SidebarData from './Sidebar';\r\nimport './static/Navbar.css';\r\nimport { IconContext } from 'react-icons';\r\n\r\nfunction NavBar({setView}) {\r\n const menu = !setView;\r\n const [sidebar, setSidebar] = useState(false);\r\n\r\n const showSidebar = () => setSidebar(!sidebar);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {menu? (\r\n \r\n \r\n \r\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;","import React, { useEffect, useState } from 'react'\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport NavBar from './NavBar';\r\nimport SidebarData from './Sidebar';\r\n\r\nconst Dashboard = ({setMenuView ,setAdminHeaderState}) => {\r\n\r\n\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token || setMenuView) {\r\n setAdminHeaderState({\r\n second: 'SecondHeaderamd', \r\n principal: 'centerHeaderamd'})\r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\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\nexport default Dashboard;","import React, { useEffect, useState } from 'react'\r\n\r\nconst NuevaColeccion = ({vars}) => {\r\n\r\n\r\n const token = localStorage.getItem(\"token\");\r\n\r\n return (\r\n <>\r\n

\r\n
\r\n 🚨 NUEVA COLECCIÓN 🚨
\r\n
\r\n ¡Ya tenemos {vars.Categoria}
\r\n
\r\n Tienen un valor de ${vars.PMayorista} pesos al por mayor y ${vars.PMinorista} pesos por unidad.
\r\n
\r\n Recuerda que también tenemos disponibles:
\r\n
\r\n - Gorras 🧢
\r\n - Camisetas para hombre 👕
\r\n - Camisetas para mujer 👚
\r\n - Polos 👕
\r\n - Hoodies para Hombre y Mujer 🧥
\r\n - Joggers para Hombre y Mujer 👖
\r\n - Pantalonetas 🏝️
\r\n
\r\n Para ver todos nuestros productos solo debes hacer CLICK en el botón \"ir a Mayoristas\" o en el siguiente link:
\r\n
\r\n http://www.dkda.com.co/Mayoristas 👈
\r\n
\r\n P.D: Si no quieres seguir recibiendo noticias sobre nuevos productos o promociones, solo escríbenos para eliminarte de nuestros contactos. \r\n
\r\n
\r\n

\r\n \r\n )\r\n}\r\n\r\nexport default NuevaColeccion;","import React, { useEffect, useState } from 'react'\r\n\r\nconst Descuentos = ({varsDesc}) => {\r\n\r\n\r\n const token = localStorage.getItem(\"token\");\r\n const { InicioDesc, FinDesc, Descuento } = varsDesc;\r\n return (\r\n <>\r\n

\r\n
\r\n 🚨 REBAJAS 🚨
\r\n\r\n Comenzó nuestra temporada de DESCUENTOS!
\r\n
\r\n Aprovecha desde {InicioDesc} hasta {FinDesc} hasta el {Descuento} en prendas seleccionadas.\r\n
\r\n INGRESA YA!\r\n
\r\n
\r\n

\r\n \r\n )\r\n}\r\n\r\nexport default Descuentos;","import React, { useEffect, useState } from \"react\";\r\nimport './static/Whatsapp.css'\r\nimport axios from \"axios\";\r\nimport NuevaColeccion from \"./Templates/NuevaColeccion\";\r\nimport Descuentos from \"./Templates/Descuentos\";\r\nimport Modal from \"./Templates/Modal\";\r\nimport swal from \"sweetalert\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst Whatsapp = ({apiUrlState}) => {\r\n const Mensaje = \"🚨 *NUEVA COLECCIÓN* 🚨 ¡Ya tenemos *{{1}}* Tienen un valor de *${{2}} pesos al por mayor* y *${{3}} pesos por unidad.* Recuerda que también tenemos disponibles: - Gorras 🧢 - Camisetas para hombre 👕 - Camisetas para mujer 👚 - Polos 👕 - Hoodies para Hombre y Mujer 🧥 - Joggers para Hombre y Mujer 👖 - Pantalonetas 🏝️ Para ver todos nuestros productos solo debes hacer CLICK en el botón ir a Mayoristas o en el siguiente link: http://www.dkda.com.co/Mayoristas 👈 P.D: Si no quieres seguir recibiendo noticias sobre nuevos productos o promociones, solo escríbenos para eliminarte de nuestros contactos.\"\r\n const [vars, setVars] = useState({\r\n Plantilla: \"notificacion_de_nueva_coleccion\",\r\n Categoria: \"Nuevas Camisetas para Hombre 👕\",\r\n PMayorista: \"\",\r\n PMinorista: \"\",\r\n TipoEnvio:\"Test\",\r\n TipoCliente: \"Mayorista\"\r\n });\r\n\r\n const [varsDesc, setVarsDesc] = useState({\r\n Plantilla: \"temporada_descuentos\",\r\n InicioDesc: \"\",\r\n FinDesc: \"\",\r\n Descuento:\"\",\r\n TipoCliente: \"Mayorista\"\r\n });\r\n const [archivos, setArchivos]= useState(null);\r\n const [dataFile, setdataFile]= useState(null);\r\n const [countClients, setcountClients]= useState(null);\r\n\r\n const { TipoEnvio, Plantilla, Categoria, PMayorista, PMinorista } = vars;\r\n const { InicioDesc, FinDesc, Descuento } = varsDesc;\r\n const uploadFile =(e)=>{\r\n setArchivos(e)\r\n //TODO esto captura el archivo!\r\n /*const [ file ] = e.target.files;\r\n setdataFile ({\r\n fileRaw:file,\r\n fileName:file.name\r\n })*/\r\n \r\n }\r\n\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n let urlcount = apiUrlState+\"/Api/whatsapp/countClients\"\r\n let dataCount = {\r\n type: TipoEnvio\r\n }\r\n\r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n const optionsTemplate = [\r\n {\r\n label: \"Nueva Colección\",\r\n value: \"notificacion_de_nueva_coleccion\",\r\n },\r\n {\r\n label: \"Descuentos\",\r\n value: \"temporada_descuentos\",\r\n }\r\n];\r\n\r\nconst optionsCategoria= [\r\n {\r\n label: \"Camiseta Hombre\",\r\n value: \"Nuevas Camisetas para Hombre 👕\",\r\n },\r\n {\r\n label: \"Camisetas Mujer\",\r\n value: \"Nuevas Camiseta para Mujer 👚!\",\r\n },\r\n {\r\n label: \"Gorras\",\r\n value: \"Nuevas Gorras 🧢 !\",\r\n },\r\n {\r\n label: \"Polos\",\r\n value: \"Nuevos Polos 👕 !\",\r\n },\r\n {\r\n label: \"Hoodies Hombre\",\r\n value: \"Nuevos Hoodies para Hombre 🧥!\",\r\n },\r\n {\r\n label: \"Hoodies Mujer\",\r\n value: \"Nuevos Hoodies para Mujer 🧥!\",\r\n },\r\n {\r\n label: \"Jogger Hombre\",\r\n value: \"Nuevos Jogger para Hombre 👖!\",\r\n },\r\n {\r\n label: \"Jogger Mujer\",\r\n value: \"Nuevos Jogger para Mujer 👖!\",\r\n },\r\n\r\n {\r\n label: \"Pantalonetas\",\r\n value: \"Nuevas Pantalonetas 🏝️!\",\r\n }\r\n];\r\n\r\n const insertarArchivo = async() => {\r\n console.log(\"Entra\")\r\n const f = new FormData();\r\n \r\n f.append(\"myFile\", archivos[0])\r\n //f.append('myFile', dataFile.fileRaw, dataFile.fileName);\r\n console.log(\"F: \", f)\r\n await axios.post(apiUrlState+\"/Api/whatsapp/catalog\",f) /*,{headers: {'Content-Type': 'multipart/form-data'}}*/\r\n .then(response =>{\r\n console.log(response.data)\r\n }).catch(error => {\r\n console.log(error)\r\n })\r\n }\r\n\r\n const modChange = async (e) => {\r\n console.log(\"[e.target.name]\", e.target.name)\r\n console.log(\"[e.target.value]\", e.target.value)\r\n let urlcount = apiUrlState+\"/Api/whatsapp/countClients\"\r\n let dataCount = {\r\n type: e.target.value\r\n }\r\n await axios\r\n .post(urlcount, dataCount)\r\n .then((res) => {\r\n const { data } = res;\r\n console.log(\"data: \", data.count)\r\n setcountClients(data.count)\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n //setMensaje(\"email u password incorrecta\");\r\n setTimeout(() => {\r\n //setMensaje(\"\");\r\n }, 1500);\r\n });\r\n \r\n\r\n };\r\n\r\n const HandleChange = (e) => {\r\n console.log(\"[e.target.name]\", e.target.name)\r\n console.log(\"[e.target.value]\", e.target.value)\r\n /*if(Plantilla === \"notificacion_de_nueva_coleccion\"){\r\n setVars({ ...vars, [e.target.name]: e.target.value });\r\n }else{\r\n setVarsDesc({ ...varsDesc, [e.target.name]: e.target.value });\r\n }*/\r\n setVars({ ...vars, [e.target.name]: e.target.value });\r\n setVarsDesc({ ...varsDesc, [e.target.name]: e.target.value });\r\n \r\n\r\n };\r\n\r\n const onSubmit = async (e) => {\r\n \r\n console.log(\"ENTRA CLICK\", e.Categoria, Categoria,e.Plantilla, Plantilla, countClients )\r\n e.preventDefault();\r\n await insertarArchivo()\r\n let url = apiUrlState+\"/Api/whatsapp/sendmessage\"\r\n\r\n let data = {\r\n Plantilla,\r\n Categoria,\r\n PMayorista, \r\n PMinorista,\r\n TipoEnvio\r\n };\r\n if(Plantilla === \"temporada_descuentos\"){\r\n data={\r\n Plantilla,\r\n InicioDesc,\r\n FinDesc,\r\n Descuento,\r\n TipoEnvio\r\n }\r\n url = apiUrlState+\"/Api/whatsapp/sendmessageDesc\"\r\n }\r\n //setLoading(true);\r\n \r\n \r\n \r\n await swal({\r\n title: `Esta seguro de enviar la campaña ${Plantilla} a ${countClients} numeros de Whatsapp ?`,\r\n text: \"Esta accion no se podra detener despues de ser enviada\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true,\r\n }).then((willDelete) => {\r\n if (willDelete) {\r\n axios\r\n .post(url, data)\r\n .then((res) => {\r\n const { data } = res;\r\n //setMensaje(data.mensaje);\r\n setTimeout(() => {\r\n //setMensaje(\"\");\r\n \r\n localStorage.setItem(\"token\", data?.token);\r\n //history.push('/Admin/Indicadores')\r\n //navigate(`/welcome`);\r\n }, 1500);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n //setMensaje(\"email u password incorrecta\");\r\n swal(\"Error al enviar campaña\", {\r\n icon: \"error\",\r\n });\r\n setTimeout(() => {\r\n //setMensaje(\"\");\r\n }, 1500);\r\n });\r\n \r\n swal(\"Campaña enviada correctamente!\", {\r\n icon: \"success\",\r\n });\r\n } else {\r\n swal(\"Se cancelo el envio de la campaña\");\r\n }\r\n });\r\n\r\n \r\n //setInputs({ email: \"\", password: \"\" });\r\n //setLoading(false);\r\n\r\n };\r\n\r\n return (\r\n
\r\n
onSubmit(e)} style={{width: \"50vw\"}}>\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n { vars.Plantilla === \"notificacion_de_nueva_coleccion\" ? <>\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n HandleChange(e)}\r\n name = \"PMayorista\"\r\n value={PMayorista}\r\n type=\"text\"\r\n class=\"form-control FuenteBebas\"\r\n id=\"PMayorista\"\r\n placeholder=\"28.900\"\r\n />\r\n
\r\n
\r\n \r\n HandleChange(e)}\r\n value={PMinorista}\r\n name=\"PMinorista\"\r\n type=\"text\"\r\n class=\"form-control FuenteBebas\"\r\n id=\"PMinorista\"\r\n placeholder=\"28.900\"\r\n />\r\n
\r\n \r\n :\r\n <>\r\n
\r\n \r\n HandleChange(e)}\r\n name = \"InicioDesc\"\r\n value={varsDesc.InicioDesc}\r\n type=\"text\"\r\n class=\"form-control FuenteBebas\"\r\n id=\"InicioDesc\"\r\n placeholder=\"Eje: Desde Hoy\"\r\n />\r\n
\r\n
\r\n \r\n HandleChange(e)}\r\n value={vars.FinDesc}\r\n name=\"FinDesc\"\r\n type=\"text\"\r\n class=\"form-control FuenteBebas\"\r\n id=\"FinDesc\"\r\n placeholder=\"Eje: Hasta el 28 Noviembre\"\r\n />\r\n
\r\n
\r\n \r\n HandleChange(e)}\r\n value={varsDesc.Descuento}\r\n name=\"Descuento\"\r\n type=\"text\"\r\n class=\"form-control FuenteBebas\"\r\n id=\"Descuento\"\r\n placeholder=\"Eje: 50% OFF\"\r\n />\r\n
\r\n \r\n \r\n }\r\n
\r\n \r\n uploadFile(e.target.files)}\r\n />\r\n
\r\n
\r\n \r\n {\r\n vars.Plantilla === \"notificacion_de_nueva_coleccion\" ? \r\n \r\n :\r\n \r\n }\r\n \r\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 Whatsapp;\r\n","import React from \"react\";\r\nimport Registro from \"../Usuario/Registro\";\r\nimport axios from \"axios\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nconst RegistroTercero = ({\r\n headerState,\r\n modificarHeaderState,\r\n pedidoState,\r\n modificarPedidoState,\r\n // clienteState,\r\n // modificarClienteState,\r\n errorState,\r\n modificarErrorState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n apiUrlState,\r\n modificarApiUrlState,\r\n recursosUrlState,\r\n modificarRecursosUrlState,\r\n actualizarSessionStorage,\r\n})=> {\r\n const { clienteState } = useGlobalContext();\r\n\r\n //Revisa que ningun datos del state de cliente este vacio.\r\n const revisionDatosUsuarios = () => {\r\n for (const dato in clienteState) {\r\n if (clienteState[dato] === \"\") return [false, dato];\r\n }\r\n return [true, \"\"];\r\n };\r\n\r\n //Segun los datos del state de cliente realiza una actualizacion de este en Contapyme.\r\n const actualizarDatosUsuario = async (callback) => {\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Actualizando tu datos...\",\r\n });\r\n }\r\n await axios\r\n .post(apiUrlState + \"/Api/Usuario/ActualizarUsuario\", {\r\n NuevosDatosUsuario: [\r\n {\r\n NumeroDocumento: clienteState[\"NumeroDocumento\"],\r\n TipoDocumento: clienteState[\"TipoDocumento\"],\r\n Correo: clienteState[\"Correo\"],\r\n Nombres: clienteState[\"Nombres\"],\r\n Apellidos: clienteState[\"Apellidos\"],\r\n FechaNacimiento: clienteState[\"FechaNacimiento\"],\r\n Celular: clienteState[\"Celular\"],\r\n Genero: clienteState[\"Genero\"],\r\n Pais: clienteState[\"Pais\"],\r\n Departamento: clienteState[\"Departamento\"],\r\n Ciudad: clienteState[\"Ciudad\"],\r\n Direccion: clienteState[\"Direccion\"],\r\n Barrio: clienteState[\"Barrio\"],\r\n Universidad: clienteState[\"Universidad\"],\r\n TipoTercero: \"Concursante\",\r\n },\r\n ],\r\n })\r\n .then((response) => {\r\n if (!response.data.error) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n callback(true);\r\n } else {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: response.data.message,\r\n });\r\n }\r\n callback(false);\r\n }\r\n })\r\n .catch(function (err) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({ Error: true, Mensaje: \"Revisa Tus Datos.\" });\r\n }\r\n });\r\n };\r\n\r\n const registrarParticipante = async ()=> {\r\n let revision = await revisionDatosUsuarios();\r\n if(revision[0]) {\r\n await actualizarDatosUsuario(async function (respuesta) {\r\n console.log(errorState[\"Error\"])\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Registro exitoso\",\r\n });\r\n }\r\n console.log(errorState[\"Error\"])\r\n\r\n })\r\n } else {\r\n if (!errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Datos incompletos...\",\r\n faltante: revision[1],\r\n });\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n

Concurso nacional de diseño

\r\n \r\n \r\n
\r\n registrarParticipante()}\r\n >\r\n Registrar\r\n

\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default RegistroTercero;","import React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport \"../static/Indicadores.css\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\n\r\nconst Rotacion = ({ SetLandingHeader, apiUrlState, recursosUrlState }) => {\r\n\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n let { id } = useParams();\r\n const VolverAdmin = () => {\r\n window.location.href = \"/Admin/Rotacion/Seller/\" + Periodo;\r\n };\r\n const [LRotacion, GetListaRotacion] = useState([\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n {\r\n grupo: \"PRUEBA\",\r\n Final: 0,\r\n vendidas: 0,\r\n disponible: 0,\r\n rotacion: 0,\r\n VendidasDafiti: 0,\r\n VendidasMercado: 0,\r\n VendidasLinio: 0,\r\n VendidasExito: 0,\r\n Devoluciones: 0,\r\n VendidasTotal: 0,\r\n },\r\n ]);\r\n const [Periodo, GetPeriodo] = useState(\"PRUEBA\");\r\n const [Costo, GetCosto] = useState(0);\r\n const [Venta, GetVenta] = useState(0);\r\n const [Marketplace, GetMarketplace] = useState(\"PRUEBA\");\r\n const [Totales, SetTotales] = useState([0,0,0,0,0,0,0,0,0,0]);\r\n\r\n const Rotacion = async () => {\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/RotacionUnidades\", {\r\n _id: id,\r\n })\r\n .then((response) => {\r\n GetMarketplace(response.data.data[0].Markeplace);\r\n GetCosto(response.data.data[0].costo);\r\n GetVenta(response.data.data[0].venta);\r\n GetPeriodo(response.data.data[0].Periodo);\r\n GetListaRotacion(response.data.data[0].data);\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n\r\n const totales = ()=>{\r\n let inventarioInicial = 0;\r\n let devoluciones = 0;\r\n let ventasUnidadesCroatta = 0;\r\n let ventasDafiti = 0;\r\n let ventasLinio = 0;\r\n let ventasMercado = 0;\r\n let ventasExito = 0;\r\n let ventasTotal = 0;\r\n let final = 0;\r\n let rotacion = 0;\r\n let contadorR = 0;\r\n for(const grupo of LRotacion) {\r\n // console.log(grupo, grupo.VendidasTotal);\r\n inventarioInicial += grupo.disponible;\r\n devoluciones += grupo.Devoluciones;\r\n ventasUnidadesCroatta += grupo.vendidas;\r\n ventasDafiti += grupo.VendidasDafiti;\r\n ventasLinio += grupo.VendidasLinio;\r\n ventasMercado += grupo.VendidasMercado;\r\n ventasExito+= grupo.VendidasExito;\r\n ventasTotal += grupo.VendidasTotal;\r\n final += grupo.Final;\r\n // rotacion += grupo.rotacion;\r\n if(grupo.rotacion > 0) {\r\n contadorR += 1;\r\n rotacion += grupo.rotacion;\r\n }\r\n }\r\n // let mediaR = rotacion / LRotacion.length;\r\n let mediaR = parseInt(rotacion / contadorR);\r\n SetTotales([\r\n inventarioInicial,\r\n devoluciones,\r\n ventasUnidadesCroatta,\r\n ventasDafiti,\r\n ventasLinio,\r\n ventasMercado,\r\n ventasExito,\r\n ventasTotal,\r\n final,\r\n mediaR,\r\n ]);\r\n }\r\n\r\n const formatterPeso = new Intl.NumberFormat('es-CO', {\r\n style: 'currency',\r\n currency: 'COP',\r\n minimumFractionDigits: 0\r\n });\r\n\r\n useEffect(() => {\r\n SetLandingHeader({ Estado: true });\r\n Rotacion();\r\n }, []);\r\n\r\n useEffect(()=>{\r\n totales();\r\n }, [LRotacion]);\r\n\r\n return (\r\n
\r\n \r\n Rotación De Unidades{\" \"}\r\n

\r\n {Periodo} {Marketplace}\r\n

\r\n \r\n\r\n
\r\n
\r\n \r\n {Marketplace === \"CROATTA\" ? (\r\n <>\r\n \r\n \r\n \r\n Linea\r\n \r\n\r\n \r\n Inventario inicial\r\n \r\n \r\n Devoluciones\r\n \r\n \r\n Vendidas\r\n \r\n \r\n Inventario final\r\n \r\n\r\n \r\n Rotacion\r\n \r\n \r\n\r\n \r\n \r\n CROATTA\r\n \r\n \r\n DAFITI\r\n \r\n \r\n LINIO\r\n \r\n \r\n MERCADOLIBRE\r\n \r\n \r\n EXITO\r\n \r\n \r\n TOTAL\r\n \r\n \r\n \r\n \r\n {LRotacion.map((elemento, 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n Linea\r\n \r\n\r\n \r\n Inventario inicial\r\n \r\n \r\n Vendidas\r\n \r\n \r\n Inventario final\r\n \r\n\r\n \r\n Rotacion\r\n \r\n \r\n \r\n \r\n {LRotacion.map((elemento, 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
{elemento.grupo}{elemento.disponible}{elemento.Devoluciones}{elemento.vendidas}{elemento.VendidasDafiti}{elemento.VendidasLinio}{elemento.VendidasMercado}{elemento.VendidasExito}{elemento.VendidasTotal}{elemento.Final}{elemento.rotacion}%
Totales{Totales[0]}{Totales[1]}{Totales[2]}{Totales[3]}{Totales[4]}{Totales[5]}{Totales[6]}{Totales[7]}{Totales[8]}{Totales[9]}%
{elemento.grupo}{elemento.disponible}{elemento.vendidas}{elemento.Final}{elemento.rotacion}%
Totales{Totales[0]}{Totales[2]}{Totales[8]}{Totales[9]}%
\r\n
\r\n
\r\n \r\n Costo: {formatterPeso.format(Costo)}\r\n \r\n \r\n Venta: {formatterPeso.format(Venta)}\r\n \r\n \r\n Utilidad: {formatterPeso.format(Venta+Costo)}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Rotacion;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport \"../static/Indicadores.css\";\r\nimport { Link, useParams, useHistory } from \"react-router-dom\";\r\nimport swal from \"sweetalert\";\r\n\r\nconst RotacionIndex = ({\r\n SetLandingHeader,\r\n apiUrlState,\r\n recursosUrlState,\r\n modificarSpinnerState,\r\n}) => {\r\n const VolverAdmin = () => {\r\n window.location.href = \"/Admin/Rotacion\";\r\n };\r\n\r\n let { periodo } = useParams();\r\n const [LRotacion, GetListaRotacion] = useState([\r\n {\r\n _id: \"61e844699370522d20653248\",\r\n mes: \"10\",\r\n anio: \"2021\",\r\n Estado: \"PRUEBA\",\r\n Periodo: \"PRUEBA 2021\",\r\n Markeplace: \"croatta\",\r\n },\r\n ]);\r\n\r\n //Login validation\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n const ActulizarRotacion = async (mes, anio, periodo) => {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/CrearRotacionUnidades\", {\r\n mes: mes,\r\n anio: anio,\r\n periodo: periodo,\r\n })\r\n .then((response) => {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n VolverAdmin();\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n\r\n const Rotacion = async () => {\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/RotacionUnidades/Periodo\", {\r\n Periodo: periodo,\r\n })\r\n .then((response) => {\r\n GetListaRotacion(response.data.data);\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n SetLandingHeader({ Estado: true });\r\n Rotacion();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n ROTACIÓN DE UNIDADES
{LRotacion[0].Periodo}\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Markeplace\r\n \r\n \r\n Opciones\r\n \r\n \r\n \r\n \r\n {LRotacion.map((mes) =>\r\n mes.Periodo !== \"PRUEBA 2021\" ? (\r\n \r\n \r\n \r\n \r\n ) : null\r\n )}\r\n \r\n
{mes.Markeplace}\r\n \r\n \r\n Ver Mas\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default RotacionIndex;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport io from 'socket.io-client'\r\nimport \"../static/Indicadores.css\";\r\nimport { Link, useHistory} from \"react-router-dom\";\r\nimport swal from \"sweetalert\";\r\nimport ProgressBar from \"@ramonak/react-progress-bar\";\r\n\r\n// const socket = io('http://localhost:4000')\r\n\r\nconst RotacionSeller = ({\r\n SetLandingHeader,\r\n apiUrlState,\r\n recursosUrlState,\r\n modificarSpinnerState,\r\n}) => {\r\n const VolverAdmin = () => {\r\n window.location.href = \"/Admin/Index/MenuUnidades\";\r\n };\r\n\r\n const [Periodo, GetPeriodo] = useState([\"PRUEBA 2021\"]);\r\n const [Periodo2, SetPeriodo2] = useState([{anio: \"\", mes: \"\", Periodo: \"AGOSTO 2023\"}]);\r\n const [Fechas, SetFechas] = useState({ FechaIni: \"\", FechaFin: \"\" });\r\n const [Progreso, SetProgreso] = useState(0);\r\n // const [Mensaje, SetMensaje] = useState(\"\");\r\n\r\n const Periodos = async () => {\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/GetPeriodos\", {})\r\n .then((response) => {\r\n GetPeriodo(response.data.data);\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n };\r\n\r\n const VerificarPeriodo = ()=> {\r\n let existe = false;\r\n for(const periodo of Periodo) {\r\n if(periodo == Periodo2.Periodo){\r\n existe = true;\r\n }\r\n }\r\n return existe\r\n }\r\n\r\n const actualizarProgreso = () => {\r\n const socket = io(apiUrlState);\r\n socket.on('Progreso', (pr) => {\r\n console.log(pr);\r\n SetProgreso(pr.Progreso);\r\n // SetMensaje(pr.Mensaje);\r\n });\r\n }\r\n\r\n const cargarRotacion = async () => {\r\n if(Periodo2.Periodo != undefined){\r\n let res = VerificarPeriodo(Periodo2.Periodo)\r\n if(res) {\r\n swal({\r\n title: \"El informe ya ha sido generado anteriormente\",\r\n text: \"Si continúa el informe será reemplazado con los datos actuales\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true,\r\n }).then(async(continuar) => {\r\n if (continuar) {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/CargarRotacion\", Periodo2)\r\n .then((response) => {\r\n Periodos();\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n console.log(\"Carga completa\");\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n }\r\n });\r\n }else {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/CargarRotacion\", Periodo2)\r\n .then((response) => {\r\n Periodos();\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n console.log(\"Carga completa\");\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n }\r\n }\r\n }\r\n\r\n const onChangePeriodo2 = (value) => {\r\n let periodo = value.split(\"-\");\r\n let anio = periodo[0];\r\n let mes = parseInt(periodo[1]) -1;\r\n const meses = [\"ENERO\", \"FEBRERO\", \"MARZO\", \"ABRIL\", \"MAYO\", \"JUNIO\", \"JULIO\", \"AGOSTO\", \"SEPTIEMBRE\", \"OCTUBRE\", \"NOVIEMBRE\", \"DICIEMBRE\"];\r\n let stringMes = meses[mes];\r\n let dataPeriodo = stringMes + \" \" + anio;\r\n SetPeriodo2({ anio: anio, mes: mes+1, Periodo: dataPeriodo });\r\n }\r\n\r\n\r\n const onChangeFecha = (fecha, tipo) => {\r\n if(tipo === \"FechaI\") {\r\n SetFechas({ ...Fechas, FechaIni: fecha });\r\n } else if(tipo === \"FechaF\") {\r\n let fechaI = new Date(Fechas.FechaIni);\r\n let fechaF = new Date(fecha);\r\n if(fechaF < fechaI) {\r\n console.log(\"la fecha final no puede ser anterior a la fecha inicial\")\r\n } else {\r\n SetFechas({ ...Fechas, FechaFin: fecha });\r\n }\r\n }\r\n }\r\n\r\n const onChangePeriodo_2 = (periodo) => {\r\n const fechaActual = new Date();\r\n const anio = fechaActual.getFullYear();\r\n const mes = fechaActual.getMonth() + 1;\r\n const Periodo = periodo.toUpperCase();\r\n SetPeriodo2({ anio: anio, mes: mes, Periodo: Periodo });\r\n }\r\n\r\n const generarInformeRotacion = async() => {\r\n actualizarProgreso();\r\n if(Fechas.FechaIni != undefined && Fechas.FechaFin != undefined) {\r\n let res = VerificarPeriodo(Periodo2.Periodo);\r\n if(res) {\r\n swal({\r\n title: \"El informe ya ha sido generado anteriormente\",\r\n text: \"Si continúa el informe será reemplazado con los datos actuales\",\r\n icon: \"warning\",\r\n buttons: true,\r\n dangerMode: true,\r\n }).then(async(continuar) => {\r\n if (continuar) {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/GenerarInformeRotacion\", {Periodo2, Fechas})\r\n .then((response) => {\r\n Periodos();\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n console.log(\"Carga completa\");\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n }\r\n });\r\n }else {\r\n modificarSpinnerState({\r\n Desplegar: true,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n await axios\r\n .post(apiUrlState + \"/Api/Unidades/GenerarInformeRotacion\", {Periodo2, Fechas})\r\n .then((response) => {\r\n Periodos();\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n console.log(\"Carga completa\");\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\");\r\n });\r\n } \r\n }\r\n }\r\n\r\n useEffect(()=> {\r\n if(Progreso === 100) {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: \"actualizando rotacion\",\r\n });\r\n SetProgreso(0);\r\n } \r\n // else if(Progreso !== 0) {\r\n // modificarSpinnerState({\r\n // Desplegar: true,\r\n // Texto: Mensaje,\r\n // })\r\n // }\r\n }, [Progreso])\r\n\r\n //Login validation\r\n const token = localStorage.getItem(\"token\");\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (token) {\r\n \r\n }else{\r\n history.push(\"/login\")\r\n }\r\n //console.log(reports)\r\n },[token]);\r\n\r\n useEffect(() => {\r\n SetLandingHeader({ Estado: true });\r\n Periodos();\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n ROTACIÓN DE UNIDADES\r\n \r\n\r\n
\r\n {Progreso != 0? (\r\n \r\n ) : (null)}\r\n
\r\n
\r\n
\r\n \r\n onChangeFecha(e.target.value, \"FechaI\")}\r\n type=\"date\"\r\n style={{ fontSize: \"15px\" }}\r\n name=\"FechaNacimiento\"\r\n id=\"fecha_inicial\"\r\n min=\"1910-01-01\"\r\n required\r\n >\r\n
\r\n
\r\n \r\n onChangeFecha(e.target.value, \"FechaF\")}\r\n type=\"date\"\r\n style={{ fontSize: \"15px\" }}\r\n name=\"FechaNacimiento\"\r\n id=\"fecha_final\"\r\n min=\"1910-01-01\"\r\n required\r\n >\r\n
\r\n
\r\n \r\n onChangePeriodo_2(e.target.value)}\r\n type=\"text\"\r\n style={{ fontSize: \"15px\" }}\r\n placeholder=\"Ej: ENERO 2023\"\r\n name=\"_periodo\"\r\n id=\"periodo\"\r\n min=\"1910-01-01\"\r\n required\r\n >\r\n
\r\n
\r\n\r\n
\r\n {generarInformeRotacion()}}\r\n >\r\n Generar Informe\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Mes\r\n \r\n \r\n Opciones\r\n \r\n \r\n \r\n \r\n {Periodo.map((mes) =>\r\n mes !== \"PRUEBA 2021\" ? (\r\n \r\n \r\n \r\n \r\n ) : null\r\n )}\r\n \r\n
{mes}\r\n \r\n \r\n Ver Mas\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default RotacionSeller;\r\n","import React, { useEffect, useState } from \"react\";\r\n//import epayco from 'epayco-sdk-js';\r\n\r\nfunction EpaycoButton() {\r\n // Configuración del botón de Epayco\r\n const [paymentSuccess, setPaymentSuccess] = useState(false);\r\n const [paymentError, setPaymentError] = useState(false);\r\n const [paymentStatus, setPaymentStatus] = useState('');\r\n\r\n function procesarRespuestaEPayco(response) {\r\n if (response.status === 'Aprobada') {\r\n // mostrar mensaje de confirmación en tu sitio web \r\n alert('El pago se ha realizado correctamente. ¡Gracias por tu compra!');\r\n } else {\r\n // mostrar mensaje de error en tu sitio web \r\n alert('Lo sentimos, el pago no se ha podido procesar en este momento. Por favor, intenta de nuevo más tarde.');\r\n }\r\n }\r\n const data = {\r\n key: '0026d7220b852a0f67c6ed61d2e8c9fd',\r\n amount: '10000',\r\n name: 'Producto de prueba',\r\n description: 'Descripción del producto',\r\n image: 'https://picsum.photos/200', // URL de la imagen del producto\r\n currency: 'COP',\r\n country: 'CO',\r\n factura: 44444,\r\n test: true,\r\n external: true,\r\n //response: false,\r\n //response: 'http://localhost', // URL de la página de respuesta\r\n confirmation: 'http://localhost', // URL de la página de confirmación\r\n acepted: \"https://www.dkda.com.co/Pedido/Confirmacion\",\r\n rejected: \"https://www.dkda.com.co/Pedido/Rechazado\",\r\n pending: \"https://www.dkda.com.co/Pedido/Pendiente\",\r\n // onapproved: () => setPaymentSuccess(true),\r\n // onrejected: () => setPaymentError(true),\r\n // response: procesarRespuestaEPayco,\r\n // confirmation: (confirmation) => {\r\n // console.log(confirmation);\r\n // },\r\n close: () => {\r\n console.log('Modal cerrado');\r\n }\r\n };\r\n\r\n // Función que se ejecuta al hacer clic en el botón de Epayco\r\n const handleEpaycoClick = () => {\r\n // Carga el script de Epayco y muestra el formulario de pago\r\n const handler = window.ePayco.checkout.configure({\r\n key: data.key,\r\n test: data.test,\r\n });\r\n // Agregar el evento message al objeto window para escuchar el mensaje de cierre del modal\r\n window.addEventListener('message', function(event) {\r\n console.log(\"ENTRA: \", event.data)\r\n //console.log(\"ENTRA Error: \", JSON.stringify(event))\r\n if(event.data.event === 'onCloseModal') {\r\n alert('el modal se ha cerrado.');\r\n }\r\n if(event.error) {\r\n alert('Error en el pago, vuelve a intentarlo.');\r\n }\r\n // Verificar que el mensaje provenga del dominio de ePayco\r\n if (event.origin === 'https://checkout.epayco.co') {\r\n // Verificar que el mensaje sea de tipo \"close\" y que la transacción se haya completado\r\n if (event.data === 'close' || event.data.status === 'Aceptada') {\r\n // Mostrar un mensaje de confirmación de pago finalizado o modal cerrado\r\n alert('El pago ha sido confirmado o el modal se ha cerrado.');\r\n }\r\n }\r\n });\r\n\r\n // Agregar el evento error al objeto window para escuchar el mensaje de error en el proceso de pago\r\n window.addEventListener('r', function(event) {\r\n // Verificar que el mensaje provenga del dominio de ePayco\r\n console.log(\"ENTRA ERRORRR-------------: \", event)\r\n if (event.origin === 'https://checkout.epayco.co') {\r\n // Mostrar un mensaje de error en el proceso de pago\r\n alert('Ha ocurrido un error en el proceso de pago.');\r\n }\r\n });\r\n handler.open(data,(response) => {\r\n if (response.status === 'Aprobada') {\r\n // la transacción fue aprobada, hacer algo aquí\r\n } else {\r\n // la transacción no fue aprobada, hacer algo aquí\r\n }\r\n });\r\n\r\n };\r\n\r\n const handlePayment = () => {\r\n // Configuración del botón de pago\r\n const data = {\r\n key: '0026d7220b852a0f67c6ed61d2e8c9fd',\r\n amount: '10000',\r\n name: 'Producto de prueba',\r\n description: 'Descripción del producto',\r\n image: 'https://picsum.photos/200', // URL de la imagen del producto\r\n currency: 'COP',\r\n country: 'CO',\r\n test: false,\r\n external: false,\r\n response: 'http://localhost', // URL de la página de respuesta\r\n confirmation: 'http://localhost', // URL de la página de confirmación\r\n onapproved: () => setPaymentSuccess(true),\r\n onrejected: () => setPaymentError(true)\r\n };\r\n\r\n\r\n \r\n // Creación del botón de pago con Epayco\r\n const button = new window.ePayco.Button(data);\r\n button.onClick();\r\n };\r\n\r\n const handlePayment2 = () => {\r\n\r\n };\r\n\r\n // useEffect(() => {\r\n // if (paymentSuccess) {\r\n // console.log(\"todo ok \")\r\n // }\r\n // console.log(\"paymentSuccess\", paymentSuccess)\r\n // console.log(\"paymentError\", paymentError)\r\n // if (paymentError) {\r\n // console.log(\"Cierra \")\r\n // }\r\n // }, [paymentSuccess, paymentError])\r\n\r\n useEffect(() => {\r\n console.log(\"paymentStatus: \", paymentStatus)\r\n }, [paymentStatus])\r\n\r\n useEffect(() => {\r\n const btnFinalizarCompra = document.getElementById('btn-finalizar-compra');\r\n if (btnFinalizarCompra) {\r\n btnFinalizarCompra.addEventListener('click', handleFinalizarCompra);\r\n }\r\n\r\n // limpiar evento de escucha cuando se desmonta el componente\r\n return () => {\r\n if (btnFinalizarCompra) {\r\n btnFinalizarCompra.removeEventListener('click', handleFinalizarCompra);\r\n }\r\n }\r\n }, []);\r\n\r\n function handleFinalizarCompra() {\r\n console.log(\"Pago fue realizado\")\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n {paymentSuccess &&

Pago exitoso

}\r\n {paymentError &&

Error en el pago

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

Checkout

\r\n \r\n {paymentStatus === 'approved' &&

Pago realizado exitosamente.

}\r\n {paymentStatus === 'rejected' &&

Error al procesar el pago.

}\r\n
\r\n \r\n\r\n );\r\n}\r\n\r\nexport default EpaycoButton;","import axios from \"axios\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Footer from \"../Footer/Footer\";\r\nimport EpaycoButton from \"../Epayco\";\r\n\r\nimport \"./static/css/newIndex.css\";\r\nimport CarouselInfo from \"./CarouselInfo\";\r\nimport { useCategContext } from \"../../providers/CategoriasProviders\";\r\n\r\nconst NewIndex = ({\r\n headerState,\r\n modificarHeaderState,\r\n categoriasState,\r\n marcasState,\r\n modificarCategoriasState,\r\n modificarMarcasState,\r\n productosState,\r\n modificarProductosState,\r\n spinnerState,\r\n modificarSpinnerState,\r\n errorState,\r\n modificarErrorState,\r\n apiUrlState,\r\n}) => {\r\n\r\n const categorias = useCategContext();\r\n const recursosUrlState = \"https://hosting.dkda.com.co/AppWeb\";\r\n const images = {\r\n img1: [\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL1.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL12.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL13.webp`,\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL1.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL2.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL3.webp\",\r\n ],\r\n img2: [\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL21.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL22.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL23.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL24.webp`,\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL21.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL22.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL23.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL24.webp\",\r\n ],\r\n img3: [\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL31.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL32.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL33.webp`,\r\n `${recursosUrlState}/img/Index/web/home/BANNERPRINCIPAL34.webp`,\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL31.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL32.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL33.webp\",\r\n // \"https://hosting.dkda.com.co/AppWeb/img/Index/web/home/BANNERPRINCIPAL34.webp\",\r\n ]\r\n\r\n }\r\n \r\n\r\n const aleatorio= (max)=>{\r\n return Math.floor(Math.random() * max);\r\n }\r\n const CambioProductos = async (\r\n categoria,\r\n subcategoria,\r\n marca,\r\n genero,\r\n nuevo = false,\r\n descuento = false\r\n ) => {\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n [],\r\n ]);\r\n let url = apiUrlState + \"/Api/Inventario/GetProductos\";\r\n let data = {};\r\n\r\n if (nuevo) {\r\n data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: true,\r\n Descuentos: false,\r\n Todo: false,\r\n Origen: \"New1\"\r\n };\r\n } else if (descuento) {\r\n data = {\r\n Categorias: [],\r\n Generos: [],\r\n Marcas: [],\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: [],\r\n ParametroOrdenamiento: \"\",\r\n ProductosNuevos: false,\r\n Descuentos: true,\r\n Todo: false,\r\n Origen: \"New2\"\r\n };\r\n } else {\r\n data = {\r\n Categorias: categoria === null ? [] : [categoria],\r\n Generos: genero === null ? [] : [genero],\r\n Marcas: marca === null ? [] : marca,\r\n Medidas: [],\r\n Tallas: [],\r\n Colores: [],\r\n Subcategoria: subcategoria === null ? [] : [subcategoria],\r\n ParametroOrdenamiento: \"Marca\",\r\n Descuentos: false,\r\n ProductosNuevos: false,\r\n Origen: \"New3\"\r\n };\r\n }\r\n\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Cargando productos...\",\r\n });\r\n }\r\n await axios\r\n .post(\r\n url,\r\n {\r\n data,\r\n },\r\n {}\r\n )\r\n .then((response) => {\r\n modificarProductosState([\r\n { CambioSeccion: false, Busqueda: false, irInicio: true },\r\n response.data.data,\r\n ]);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n if (errorState[\"Error\"]) {\r\n modificarErrorState({\r\n Error: false,\r\n Mensaje: \"Todo bien, todo correcto\",\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n if (!errorState[\"Error\"])\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n modificarHeaderState({ ...headerState, Cliente: \"Minoristas\" });\r\n }, []);\r\n\r\n\r\n // Cambio temporal para el concurso de diseño\r\n // const [fondo, setFondo] = useState(aleatorio(fondos.length)); // descomentar\r\n const [fondo, setFondo] = useState(3); // comentar\r\n\r\n\r\n useEffect(() => { \r\n console.log(\"asd\", fondo);\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n CambioProductos(null, null, null, null, true, false)}\r\n >\r\n {/* \r\n NEW\r\n */}\r\n

\r\n NUEVA COLECCIÓN\r\n

\r\n \r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n {categorias.map((categoria, index) => (\r\n {}\r\n // CambioProductos(\r\n // categoria[2],\r\n // categoria[3],\r\n // categoria[4],\r\n // categoria[5],\r\n // categoria[6],\r\n // categoria[9]\r\n // )\r\n }\r\n >\r\n
\r\n \r\n \r\n {/* 2000x500 */}\r\n \r\n {/* 1400x500 */}\r\n \r\n {/* 800x600 */}\r\n \r\n {/* 600x500 */}\r\n \r\n\r\n {/* \r\n {categoria[0]}\r\n */}\r\n
\r\n \r\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 NewIndex;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"../static/Indicadores.css\";\r\nimport { FaFileUpload, FaServer, FaCloudUploadAlt } from 'react-icons/fa';\r\n\r\nconst Imagenes = ({ apiUrlState }) => {\r\n const [archivos, setArchivos] = useState(null);\r\n\r\n const subirArchivos = (file) => {\r\n setArchivos(file);\r\n };\r\n\r\n const insertarArchivos = async () => {\r\n const formData = new FormData();\r\n for (let index = 0; index < archivos.length; index++) {\r\n formData.append(\"file\", archivos[index]);\r\n }\r\n let carga = await fetch(apiUrlState + \"/Api/imagenes/upload\", {\r\n method: \"POST\",\r\n body: formData,\r\n });\r\n\r\n console.log(carga.status);\r\n\r\n if (carga.status == 202) {\r\n document.getElementById(\"preview\").innerHTML = \"\";\r\n document.getElementById(\"carga\").innerHTML =\r\n \"por Favor de click en Carga hosting\";\r\n console.log(carga, \"**********\");\r\n }\r\n };\r\n\r\n // const insertarHost = async () => {\r\n // let carga = await fetch(apiUrlState + \"/Api/imagenes/upload2\", {\r\n // method: \"GET\",\r\n // });\r\n\r\n const insertarHost = async () => {\r\n let carga = await fetch(apiUrlState + \"/Api/Upload/upload-images\", {\r\n method: \"POST\",\r\n body: {},\r\n });\r\n\r\n \r\n\r\n console.log(carga.status);\r\n\r\n if (carga.status == 201) {\r\n document.getElementById(\"preview\").innerHTML = \"\";\r\n document.getElementById(\"carga\").innerHTML =\r\n \"Proceso de carga iniciado, se notifica por correo cuando el proceso concluya\";\r\n console.log(carga, \"**********\");\r\n }\r\n console.log(apiUrlState + \"/Api/imagenes/upload2\");\r\n \r\n };\r\n\r\n const listarArchivos = (files) => {\r\n console.log(files);\r\n console.log(typeof files);\r\n let ul = document.getElementById(\"preview\");\r\n\r\n if (files.length > 0) {\r\n for (let index = 0; index < files.length; index++) {\r\n console.log(files[index].name);\r\n let li = document.createElement(\"li\");\r\n li.appendChild(document.createTextNode(files[index].name));\r\n ul.appendChild(li);\r\n }\r\n } else {\r\n document.getElementById(\"preview\").innerHTML = \"\";\r\n }\r\n };\r\n\r\n return (\r\n
\r\n

CARGA DE FOTOS

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n insertarArchivos()}\r\n value=\"Subir archivos\"\r\n className=\"btn btn-dark\"\r\n \r\n >\r\n \r\n \r\n insertarHost()}\r\n value=\"Carga Hosting\"\r\n className=\"btn btn-dark\"\r\n >\r\n
\r\n \r\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 Imagenes;\r\n","import axios from 'axios';\r\nimport React, { useState, useEffect } from 'react' \r\n\r\nconst LoginVendedor = ({\r\n apiUrlState,\r\n modificarApiUrlState,\r\n headerState,\r\n modificarHeaderState,\r\n errorState,\r\n modificarErrorState,\r\n vendedor,\r\n modificarVendedorState,\r\n actualizarSessionStorage,\r\n}) => {\r\n\r\n // states\r\n const [userData, setUserData] = useState({ email: \"\", password: \"\" });\r\n const [loading, setLoading] = useState(false);\r\n const [warning, setWarning] = useState(\"\")\r\n\r\n // Actualizacion de campos de formulario\r\n const HandleChange = (e) => {\r\n // console.log(\"[e.target.name]\", e.target.name)\r\n // console.log(\"[e.target.value]\", e.target.value.toLowerCase())\r\n let value = e.target.value;\r\n setUserData({ ...userData, [e.target.name]: value.toLowerCase() });\r\n };\r\n\r\n useEffect(() => {\r\n if(localStorage.getItem(\"Vendedor\")) {\r\n window.location.href = \"/Preventa/Catalogo\"\r\n }\r\n }, [])\r\n \r\n\r\n const onSubmit = async( e ) => {\r\n e.preventDefault();\r\n if(userData.email !== \"\" && userData.password !== \"\") {\r\n setLoading(true);\r\n setWarning(\"\");\r\n const respuesta = await axios.post(apiUrlState + `/Api/Vendedor/LoginVendedor`, userData);\r\n const Vendedor = respuesta.data.data;\r\n if(Vendedor !== null) {\r\n localStorage.setItem(\"Vendedor\", JSON.stringify(Vendedor));\r\n localStorage.setItem(\"TipoCliente\", \"Mayoristas\");\r\n localStorage.removeItem(\"Carrito\");\r\n localStorage.setItem(\"Bodega\", \"6\"); // Bodega predeterminada\r\n modificarVendedorState(Vendedor);\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Bienvenido Vendedor\",\r\n Vendedor: Vendedor.Nombre\r\n });\r\n modificarHeaderState({\r\n ...headerState,\r\n Cliente: \"Mayoristas\"\r\n });\r\n setTimeout(()=>{\r\n window.location.href = \"/Preventa/Catalogo\";\r\n },2000);\r\n } else {\r\n setLoading(false);\r\n setWarning(\"Datos incorrectos\");\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
onSubmit(e)} className=\"form-info\">\r\n
\r\n \r\n Inicia Sesión\r\n

\r\n
\r\n
\r\n HandleChange(e)}\r\n // value={email}\r\n className=\"text-center\"\r\n type=\"text\"\r\n placeholder=\"Ingrese su correo electrónico\"\r\n name=\"email\"\r\n id=\"usuario_input\"\r\n >\r\n
\r\n
\r\n HandleChange(e)}\r\n className=\"text-center\"\r\n // value={password}\r\n type=\"password\"\r\n placeholder=\"Ingrese su contraseña\"\r\n name=\"password\"\r\n id=\"contraseña_input\"\r\n >\r\n
\r\n \r\n \r\n {loading ? \"Cargando...\" : \"Iniciar Sesión\"}\r\n \r\n

{warning}

\r\n \r\n \r\n
\r\n
\r\n {/*
\r\n cambioRegistro()}\r\n >\r\n ¿Nuevo? Regístrate ahora.\r\n

\r\n
*/}\r\n
\r\n )\r\n \r\n}\r\n\r\nexport default LoginVendedor;","import { useState, useEffect } from \"react\"\r\nimport \"./static/Descuentos.css\"\r\nimport axios from \"axios\"\r\nimport swal from \"sweetalert\";\r\n\r\nconst Descuentos = ({\r\n apiUrlState,\r\n}) => {\r\n\r\n const [descuentos, setDescuentos] = useState({\r\n Mayorista: 0,\r\n Minorista: 0,\r\n });\r\n\r\n const [colecciones, setColecciones] = useState([]);\r\n\r\n const modificarDescuento = (e, mod) =>{\r\n if(e === \"Mayorista\" && mod === \"add\" && descuentos.Mayorista < 100) {\r\n setDescuentos({\r\n Mayorista: descuentos.Mayorista += 5,\r\n Minorista: descuentos.Minorista,\r\n });\r\n } else if (e === \"Minorista\" && mod === \"add\" && descuentos.Minorista < 100) {\r\n setDescuentos({\r\n Mayorista: descuentos.Mayorista,\r\n Minorista: descuentos.Minorista +=5,\r\n });\r\n } else if (e === \"Mayorista\" && mod === \"sub\" && descuentos.Mayorista > 0) {\r\n setDescuentos({\r\n Mayorista: descuentos.Mayorista -=5,\r\n Minorista: descuentos.Minorista,\r\n });\r\n } else if (e === \"Minorista\" && mod === \"sub\" && descuentos.Minorista > 0) {\r\n setDescuentos({\r\n Mayorista: descuentos.Mayorista,\r\n Minorista: descuentos.Minorista -=5,\r\n });\r\n }\r\n }\r\n\r\n const activarDescuentosAuto = async () => {\r\n const url = `${apiUrlState}/Api/Inventario/ActivarDescuentosAuto`;\r\n axios.get(url)\r\n .then((response)=>{\r\n swal(response.data.message, {\r\n icon: \"info\",\r\n });\r\n });\r\n }\r\n\r\n const desactivarDescuentosAuto = async () => {\r\n console.log(\"Desactivando descuentos\");\r\n const url = `${apiUrlState}/Api/Inventario/DesactivarDescuentosAuto`;\r\n axios.get(url)\r\n .then((response)=>{\r\n swal(response.data.message, {\r\n icon: \"info\",\r\n });\r\n });\r\n }\r\n\r\n const activarDescuentosColeccion = async(e) => {\r\n e.preventDefault();\r\n const Coleccion = e.target.Coleccion.value;\r\n const Bodega = e.target.Bodega.value;\r\n const DescuentoMayorista = e.target.DctoMayorista.value;\r\n const DescuentoMinorista = e.target.DctoMinorista.value;\r\n // Realizar peticion \r\n const url = `${apiUrlState}/Api/Inventario/DescuentosColeccion`;\r\n await axios.post(url, {\r\n Coleccion,\r\n Bodega, \r\n DescuentoMayorista,\r\n DescuentoMinorista,\r\n }\r\n ).then((response)=>{\r\n console.log(response)\r\n swal(response.data.message, {\r\n icon: \"info\",\r\n });\r\n })\r\n\r\n }\r\n\r\n const desactivarDescuentosColeccion = async(e) => {\r\n e.preventDefault();\r\n console.log(e, e.target.Coleccion.value)\r\n const Coleccion = e.target.Coleccion.value;\r\n const Bodega = e.target.Bodega.value;\r\n const DescuentoMayorista = 0;\r\n const DescuentoMinorista = 0;\r\n // Realizar peticion \r\n const url = `${apiUrlState}/Api/Inventario/DescuentosColeccion`;\r\n await axios.post(url, {\r\n Coleccion,\r\n Bodega, \r\n DescuentoMayorista,\r\n DescuentoMinorista,\r\n }\r\n ).then((response)=>{\r\n console.log(response)\r\n })\r\n }\r\n\r\n const getColecciones = async() => {\r\n const url = `${apiUrlState}/Api/Inventario/GetColecciones`;\r\n await axios.get(url)\r\n .then((response)=>{\r\n setColecciones(response.data.data);\r\n });\r\n }\r\n \r\n useEffect(() => {\r\n getColecciones();\r\n }, [])\r\n \r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

Descuentos automáticos

\r\n

Estos descuentos se asignarán de acuerdo a la fecha de creación del producto.

\r\n { activarDescuentosAuto() }}\r\n >Activar\r\n { desactivarDescuentosAuto() }}\r\n >Desactivar\r\n
\r\n\r\n
\r\n
{activarDescuentosColeccion(e)}}>\r\n

Descuentos por colección

\r\n

Estos descuentos se asignarán a los productos de la colección y bodega seleccionada.

\r\n
\r\n
\r\n \r\n {/* */}\r\n {colecciones.map((item, index)=> (\r\n {item}\r\n ))}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {modificarDescuento(\"Mayorista\", \"sub\")}}\r\n >-\r\n \r\n {modificarDescuento(\"Mayorista\", \"add\")}}\r\n >+\r\n
\r\n \r\n
\r\n
\r\n
\r\n {modificarDescuento(\"Minorista\", \"sub\")}}\r\n >-\r\n \r\n {modificarDescuento(\"Minorista\", \"add\")}}\r\n >+\r\n
\r\n \r\n
\r\n
\r\n \r\n {/* {desactivarDescuentosColeccion()}}\r\n >Desactivar\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 Descuentos;","//Importacion de componentes externos.\r\nimport React, { Fragment, useState } from \"react\";\r\nimport {\r\n Redirect,\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n} from \"react-router-dom\";\r\nimport { ModalProvider } from \"react-simple-hook-modal\";\r\n\r\n//Importacion de componentes internos.\r\nimport Header from \"./components/Header/Header\";\r\nimport Index from \"./components/Index/Index\";\r\nimport Mercado from \"./components/Mercado/Mercado\";\r\nimport Mayoristas from \"./components/Mercado/Mayoristas\";\r\nimport Pedido from \"./components/Pedido/Pedido\";\r\nimport PaymentConfirmation from \"./components/ConfirmacionPago/index\";\r\nimport PaymentRejected from \"./components/ConfirmacionPago/Rechazado\";\r\nimport PaymentPending from \"./components/ConfirmacionPago/Pendiente\";\r\nimport ModalGeneral from \"./components/Modal/ModalGeneral\";\r\nimport InicioSesion from \"./components/Usuario/InicioSesion\";\r\nimport Ayuda from \"./components/Ayuda/Ayuda\";\r\nimport Loader from \"react-loader-spinner\";\r\n\r\nimport Landing from \"./components/Landing/Landing\";\r\nimport Indicadores from \"./components/Admin/Indicadores/Indicadores\";\r\nimport DetalleMeta from \"./components/Admin/Indicadores/DetalleMeta\";\r\nimport Detalle from \"./components/Mercado/Detalle\";\r\nimport CrudIndicadores from \"./components/Admin/CrudIndicadores/CrudInicadores\";\r\nimport Unidades from \"./components/Admin/Unidades/Unidades\";\r\nimport MenuPrincipal from \"./components/Admin/Index/MenuPrincipal\";\r\nimport MenuUnidades from \"./components/Admin/Index/MenuUnidades\";\r\nimport Dashboard from \"./components/Admin/Dashboard/Dashboard\";\r\nimport Whatsapp from \"./components/Admin/Whatsapp/Whatsapp\";\r\n\r\nimport RegistroTercero from \"./components/Concurso/registroConcurso\";\r\n\r\n//Importaciones de css\r\nimport \"./components/Index/static/css/Index.css\";\r\nimport \"./static/css/General.css\";\r\nimport TagManager from \"react-gtm-module\";\r\nimport ReactPixel from \"react-facebook-pixel\";\r\nimport Rotacion from \"./components/Admin/Rotacion/Rotacion\";\r\nimport RotacionIndex from \"./components/Admin/Rotacion/RotacionIndex\";\r\nimport RotacionSeller from \"./components/Admin/Rotacion/RotacionSeller\";\r\nimport NewIndex from \"./components/Index/NewIndex\";\r\nimport Imagenes from \"./components/Admin/Imagenes/Imagenes\";\r\nimport LoginVendedor from \"./components/Vendedor/LoginVendedor\";\r\nimport Promocion from \"./components/Promos/Promocion\"\r\nimport Descuentos from \"./components/Admin/Descuentos/Descuentos\";\r\nimport { CategoriasProvider } from \"./providers/CategoriasProviders\";\r\nimport { GlobalStatesProvider } from './providers/GlobalStatesProviders';\r\n\r\nconst tagManagerArgs = {\r\n //GTM-5RGW82S\r\n gtmId: \"GTM-5RGW82S\",\r\n};\r\n\r\nTagManager.initialize(tagManagerArgs);\r\nTagManager.dataLayer({\r\n dataLayer: {\r\n event: \"pageview\",\r\n path: \"/\",\r\n },\r\n});\r\nReactPixel.init(\"1057432718119761\");\r\nReactPixel.pageView();\r\nReactPixel.track(\"track\", \"ViewContent\");\r\nfunction App() {\r\n let DEBUG = false;\r\n\r\n //State para peticiones al servidor, determinado por el estado del DEBUG. 192.168.2.109 \"http://181.55.127.197:5000\"\r\n const [apiUrlState, modificarApiUrlState] = useState(\r\n DEBUG ? \"http://localhost:4000\" : \"https://api.dkda.com.co\"\r\n );\r\n\r\n //State para el uso de recursos de imagenes segun el estado del DEBUG.\r\n const [recursosUrlState, modificarRecursosUrlState] = useState(\r\n DEBUG ? \"https://hosting.dkda.com.co/AppWeb\" : \"https://hosting.dkda.com.co/AppWeb\"\r\n );\r\n\r\n //State que contiene la lista de productos actuales del cliente.\r\n const [carrito, modificarCarritoState] = useState({\r\n Accion: \"Recuperar\",\r\n Carrito: [],\r\n });\r\n\r\n //State para definicion de los colores del header y ocultar y mostrar elementos.\r\n const [headerState, modificarHeaderState] = useState({\r\n srcLogo: recursosUrlState + \"/img/Email/45441614379749154.png\",\r\n srcBolsa: recursosUrlState + \"/img/Index/web/home/carrito.png\",\r\n srcFlecha:\r\n recursosUrlState + \"/img/Index/web/botones/flecha-derecha-negro.png\",\r\n displayBuscar: \"in-line\",\r\n displayMenu: \"Index\",\r\n color: \"negro\",\r\n Seccion: \"\",\r\n Cliente: \"\",\r\n BotonCatalogo: false,\r\n });\r\n\r\n const [AdminHeaderState, setAdminHeaderState] = useState({\r\n second: \"SecondHeader\",\r\n principal: \"centerHeader\",\r\n });\r\n\r\n const [administradorState, modificarAdministradorState] = useState({\r\n Recuperar: true,\r\n NumeroDocumento: \"\",\r\n Nombres: \"\",\r\n Apellidos: \"\",\r\n Tipo: \"\",\r\n });\r\n\r\n const [metodoFact, setMetodoFact] = useState({\r\n Facturacion: 0,\r\n Remision: 100\r\n });\r\n\r\n /** Seleccion de bodega para catalogos */\r\n let parsedBodegaC\r\n const localStorageBodegaC = localStorage.getItem(\"BodegaCatalogos\");\r\n if(!localStorageBodegaC) {\r\n parsedBodegaC = \"3\"\r\n } else {\r\n parsedBodegaC = localStorageBodegaC;\r\n }\r\n const [BodegaCatalogos, setBodegaCatalogos] = useState(parsedBodegaC);\r\n \r\n //** Estados para manejo de vendedores */\r\n let parsedBodega\r\n const localStorageBodega = localStorage.getItem(\"Bodega\");\r\n if(!localStorageBodega) {\r\n parsedBodega = \"3\"\r\n } else {\r\n parsedBodega = localStorageBodega;\r\n }\r\n const [Bodega, setBodega] = useState(parsedBodega);\r\n\r\n let parsedVendedor;\r\n const localStorageVendedor = localStorage.getItem(\"Vendedor\");\r\n if(!localStorageVendedor) {\r\n // localStorage.setItem('Vendedor', JSON.stringify([]));\r\n parsedVendedor = null\r\n } else {\r\n parsedVendedor = JSON.parse(localStorageVendedor);\r\n localStorage.setItem(\"TipoCliente\", \"Mayoristas\")\r\n }\r\n const [vendedor, modificarVendedorState] = useState(parsedVendedor);\r\n //** END Estados para manejo de vendedores */\r\n\r\n //State para el despliegue del spinner.\r\n const [spinnerState, modificarSpinnerState] = useState({\r\n Desplegar: false,\r\n Texto: \"Cargando productos...\",\r\n });\r\n\r\n //State para estados de pagos en pedidos y la pagina.\r\n const [pedidoState, modificarPedidoState] = useState({\r\n Pagina: 1,\r\n Efecty: false,\r\n EfectyImg: recursosUrlState + \"/img/Pedido/efecty-negro.png\",\r\n Baloto: false,\r\n BalotoImg: recursosUrlState + \"/img/Pedido/baloto-negro.png\",\r\n PSE: false,\r\n PSEImg: recursosUrlState + \"/img/Pedido/pse-negro.png\",\r\n Credito: false,\r\n CreditoImg: recursosUrlState + \"/img/Pedido/credito-negro.png\",\r\n Contraentrega: false,\r\n ContraentregaImg: recursosUrlState + \"/img/Pedido/contraentrega.png\",\r\n Consignacion: false,\r\n ConsignacionImg: recursosUrlState + \"/img/Pedido/bancolombia-negro.png\",\r\n SuperGiros: false,\r\n SuperGirosImg: recursosUrlState + \"/img/Pedido/supergiros-negro.png\",\r\n Epayco: false,\r\n EpaycoImg: recursosUrlState + \"/img/Pedido/epayco-negro.png\",\r\n Addi: false,\r\n AddiImg: recursosUrlState + \"img/Pedido/ADDI_logo.png\",\r\n });\r\n\r\n //State para despliegue del modal de error e informacion.\r\n const [errorState, modificarErrorState] = useState({\r\n Error: false,\r\n Mensaje: \"\",\r\n });\r\n\r\n //State para los radioButtons del index, en el cambio de imagen.\r\n const [radioButtons, modificarRadioButtons] = useState({\r\n radio1: recursosUrlState + \"/img/Index/web/botones/radioSeleccion.png\",\r\n radio2: recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.png\",\r\n radio3: recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.png\",\r\n radio4: recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.png\",\r\n radio5: recursosUrlState + \"/img/Index/web/botones/radioSinSeleccionar.png\",\r\n });\r\n\r\n //State que contiene estados de busqueda de productos y tambien la lista de productos actuales.\r\n const [productosState, modificarProductosState] = useState([\r\n { CambioSeccion: true, Busqueda: false, irInicio: false },\r\n [],\r\n ]);\r\n //State que contiene los estados del header para modificar su estilo en la vista de landing.\r\n const [landingState, modificarlandingState] = useState({\r\n Display: \"\",\r\n Posicion: \"1%\",\r\n positionlogo: \"\",\r\n transform: \"\",\r\n });\r\n\r\n //State para la categoria y genero, estados de cambio de filtro, categoria y posicion de filtro.\r\n const [filtrosState, modificarFiltrosState] = useState({\r\n Genero: \"607ed653521b1c0910a581b8\",\r\n Categoria: \"\",\r\n CambioFiltro: false,\r\n CambioCategoria: false,\r\n filtroResumido: false,\r\n posicionFiltros: \"-100%\",\r\n width: \"0px\",\r\n });\r\n\r\n //State de estados de categorias de hombre.\r\n const [categoriasState, modificarCategoriasState] = useState({\r\n Hombre: null,\r\n Mujer: null,\r\n Niño: null,\r\n });\r\n const [subCategoriasState, modificarSubCategoriasState] = useState(\"\");\r\n\r\n const [LandingHeader, SetLandingHeader] = useState({ Estado: false });\r\n\r\n const [ViewDetalle, SetViewDetalle] = useState({ Estado: false });\r\n\r\n const [tallasState, modificarTallasState] = useState([]);\r\n\r\n const [coloresState, modificarColoresState] = useState([]);\r\n\r\n const [marcasState, modificarMarcasState] = useState([]);\r\n\r\n const [medidasState, modificarMedidasState] = useState([]);\r\n\r\n const [refNoCatalogoState, modificarRefNoCatalogoState] = useState([]);\r\n\r\n // Estabelece el check de la lista de productos en catálogo\r\n const [checkedProductos, setCheckedProductos] = useState(true);\r\n\r\n const [ayudaState, modificarAyudaState] = useState({\r\n Producto: false,\r\n Envio: false,\r\n Cambios: false,\r\n });\r\n\r\n const actualizarSessionStorage = (nombreItem, item) => {\r\n //Obtengo todos los items de la sessionStorage actual, para no perder ningun dato.\r\n const clienteSession = localStorage.Cliente;\r\n const tipoClienteSession = localStorage.TipoCliente;\r\n const carritoSession = localStorage.Carrito;\r\n const administradorSession = localStorage.Administrador;\r\n\r\n //Limpiamos la localStorage actual.\r\n //localStorage.clear();\r\n localStorage.removeItem(\"Cliente\", \"TipoCliente\", \"Carrito\", \"Administrador\");\r\n //Y añadimos los item a la localStorage, primeramente el item que entra por parametro y despues cada uno de los otros items verificando si no es el que entro por parametro.\r\n localStorage.setItem(nombreItem, item);\r\n if (nombreItem !== \"Cliente\")\r\n localStorage.setItem(\"Cliente\", clienteSession);\r\n if (nombreItem !== \"TipoCliente\")\r\n localStorage.setItem(\"TipoCliente\", tipoClienteSession);\r\n if (nombreItem !== \"Carrito\")\r\n localStorage.setItem(\"Carrito\", carritoSession);\r\n if (nombreItem !== \"Administrador\")\r\n localStorage.setItem(\"Administrador\", administradorSession);\r\n };\r\n\r\n return (\r\n \r\n \r\n {spinnerState[\"Desplegar\"] ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {spinnerState[\"Texto\"]}\r\n

\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n (\r\n <>\r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n /**/\r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\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","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\n//Importaciones de css\r\nimport \"./components/Header/static/css/Header.css\";\r\nimport \"./components/Header/static/css/Header_Movil.css\";\r\nimport \"./components/Header/static/css/Header_Web.css\";\r\nimport \"./components/Index/static/css/Index.css\";\r\nimport \"./components/Index/static/css/Index_Movil.css\";\r\nimport \"./components/Index/static/css/Index_Web.css\";\r\nimport \"./components/Mercado/static/css/Filtros/Filtros.css\";\r\nimport \"./components/Mercado/static/css/GrupoTallas/Tallas.css\";\r\nimport \"./components/Mercado/static/css/Mayoristas/Mayoristas.css\";\r\nimport \"./components/Mercado/static/css/Mayoristas/Mayoristas_Web.css\";\r\nimport \"./components/Mercado/static/css/Mayoristas/Mayoristas_movil.css\";\r\nimport \"./components/Mercado/static/css/Mercado/Mercado.css\";\r\nimport \"./components/Mercado/static/css/Mercado/Mercado_MovilGrande.css\";\r\nimport \"./components/Mercado/static/css/Mercado/Mercado_MovilHorizontal.css\";\r\nimport \"./components/Mercado/static/css/Mercado/Mercado_MovilPequeño.css\";\r\nimport \"./components/Mercado/static/css/Mercado/Mercado_Web.css\";\r\nimport \"./static/css/General.css\";\r\nimport \"./static/css/Modal.css\";\r\nimport \"./components/Ayuda/static/css/Ayuda.css\";\r\nimport \"./components/Ayuda/static/css/AyudaMovil.css\";\r\nimport \"./components/Ayuda/static/css/AyudaWeb.css\";\r\nimport \"./components/Pedido/static/css/Pedido.css\";\r\nimport \"./components/Pedido/static/css/PedidoMovilGrande.css\";\r\nimport \"./components/Pedido/static/css/PedidoMovilHorizontal.css\";\r\nimport \"./components/Pedido/static/css/PedidoMovilPequeño.css\";\r\nimport \"./components/Pedido/static/css/PedidoTablet.css\";\r\nimport \"./components/Pedido/static/css/PedidoWeb.css\";\r\nimport \"./components/Usuario/static/css/InicioSesion/InicioSesion.css\";\r\nimport \"./components/Usuario/static/css/InicioSesion/InicioSesionMovil.css\";\r\nimport \"./components/Usuario/static/css/InicioSesion/InicioSesionWeb.css\";\r\nimport \"./components/Usuario/static/css/Registro/Registro.css\";\r\nimport \"./components/Usuario/static/css/Registro/RegistroMovil.css\";\r\nimport \"./components/Usuario/static/css/Registro/RegistroWeb.css\";\r\n\r\nimport App from \"./App\";\r\n\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"bootstrap/dist/js/bootstrap.bundle.min\";\r\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\r\nimport \"bootstrap-css-only/css/bootstrap.min.css\";\r\nimport \"mdbreact/dist/css/mdb.css\";\r\nimport \"hint.css/hint.min.css\";\r\nimport \"react-simple-hook-modal/dist/styles.css\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}