{"version":3,"sources":["providers/PreventaProviders.js","components/Mercado/Filtros.js","services/apiFacebook.js","global/functions.js","providers/GlobalStatesProviders.js","components/Header/Header.js","components/Index/Carousel.js","components/Index/Index.js","components/Mercado/GrupoTallas_v2.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/GrupoTallas.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/Index/NewIndex.js","components/Admin/Imagenes/Imagenes.js","components/Vendedor/LoginVendedor.js","App.js","reportWebVitals.js","index.js"],"names":["PreventaContext","createContext","usePreventaContext","useContext","PreventaProvider","parsedBodega","children","localStorageBodega","localStorage","getItem","parsedVendedor","useState","Bodega","setBodega","localStorageVendedor","JSON","parse","parsedBodegaC","vendedor","modificarVendedorState","localStorageBodegaC","BodegaCatalogos","setBodegaCatalogos","Facturacion","Remision","metodoFact","setMetodoFact","Provider","value","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","checkedProductos","setCheckedProductos","CambioFiltro","CambioCategoria","Categoria","Genero","seleccionado","backgroundSize","outline","textDecoration","padding","border","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","Desplegar","Texto","CambioSeccion","Busqueda","irInicio","axios","post","then","response","Error","Mensaje","catch","err","limpiarFiltros","limpiarFiltros2","pro","cerrarFiltros","onChangeValueCategorias","categoria","auxcategoria","palabra","toLowerCase","href","document","getElementById","_id","GrupoTallas","onChangeValueMedidas","medidaId","listaMedidaTemp","splice","indexOf","TipoCatalogo","e","tipoC","prepararCatalogo","catalogo","filter","producto","find","prodS","Referencia","comprobarCantidades","cantidad","tallas","Variantes","Cantidad","useEffect","Estado","DeHombre","DeMujer","DeNino","error","marcas","marcasObj","map","marca","get","medidasH","medidasM","medidasObjH","medidasObjM","medida","Medida","className","style","color","fontSize","marginTop","marginBottom","id","cursor","onClick","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","apiFacebook","ip","actualizarEventId","facebook_event_id","newEvent_id","Date","now","parseInt","stringify","GlobalContext","useGlobalContext","GlobalStatesProvider","Registro","Accion","Sesion","TipoDocumento","NumeroDocumento","Nombres","Apellidos","Sucursal","Correo","Celular","FechaNacimiento","Pais","Ciudad","Departamento","Direccion","Barrio","clienteState","modificarClienteState","Map","procomponente","setProcomponente","componentes","setComponentes","dataLoad","setDataLoad","actualizarComponente","key","has","codComponente","prevMap","newMap","currentValue","set","actualizarComponentesCarrito","carrito","CantidadComp","Header","colorActual","menuActual","ViewDetalle","modificarCarritoState","administradorState","modificarAdministradorState","LandingHeader","landingState","AdminHeaderState","consultaLupa","setConsultaLupa","RutaActual","history","useHistory","srcLogo","srcBolsa","displayBuscar","displayMenu","presionEnter","propiedadesFiltro","position","top","left","flexWrap","alignContent","getDataCart","num_items","content_ids","contents","item","Codigo","quantity","item_price","PrecioMayorista","PrecioMinorista","currency","enviarEventoFacebook","event_id","userIP","event_name","event_source_url","client_user_agent","navigator","userAgent","client_ip_address","custom_data","ActulizarDescuentoV2","Carrito","findProd","prod","CodBodega","DescuentoMinorista","DescuentoMayorista","carritoNew","formatNumber","amount","temp","substring","cantidadTotal","contarProductos","obtenerProductosFiltro","obtenerComponentes","matrizActual","tiene_caracter_especial","texto","comprobarEnter","llevarAPedido","cantidadProd","carritoSession","clienteSession","Cliente","tipoClienteSession","TipoCliente","administradorSession","Administrador","header","undefined","storageCart","calcularDescuento","precio","descuento","precioInt","cambioPng","replace","second","background","principal","zIndex","antes","escribiendo","onKeyPress","consultarConEnter","autoComplete","removeItem","boxShadow","loading","codigo","imagen","img","innerHTML","comprobarImgProducto","tabIndex","disminuirComponente","disminuirCantidad","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","GrupoTallasV2","mostar","setTallas","tallaSeleccionada","setTallaSelecionada","setCantidad","cantidadComp","setCantidadComp","unidadesDisponibles","setUnidadesDisponibles","actualDisponible","setActualDisponible","adicion","setAdicion","handleChange","test","arreglarPrecio","separacion","split","separacion2","adicionar","cantidadActual","crear","productoNuevo","Componente","swal","text","icon","separarUnidades","undAdicion","undIventario","undComponente","adicionarV2","cantidadAdicion","totalDisponibles","disponible","auxAdicionarV","undPermitidas","buttons","cancel","visible","closeModal","confirm","res","totalAdicion","obtenerCantidadTallaProductoActual","productoFiltrado","obtenerCantidadComp","hasProcomponente","label","undDisponible","image","estado","ObtenerTallas","index","element","changeSelectedTalla","alignItems","min","Producto","cliente","selectedProductId","setSelectedProductId","individualChecked","setIndividualChecked","storedProductId","Mercado","setTimeout","parseFloat","Math","round","almacenarReferencias","productosCatalogoTemp","productId","right","fontWeight","borderColor","listaClases","classList","contains","remove","add","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","barCamisetasHombreBasicas","barCamisetasHombreEstampadas","barCamisetasHombreValtimor","barPantalonetasHombre","barPolosHombre","barGorras","barCamisetasMujer","barCamisetasBasicasMujer","barBlusas","barDescuentos","listaCamisetasHombre","listaCamisetasHombreBasicas","listaCamisetasHombreEstampadas","listaCamisetasHombreValtimor","listaHoodiesHombre","listaJoggersHombre","listaPantalonetasHombre","listaPolosHombre","listaGorras","listaCamisetasMujer","listaCamisetasBasicasMujer","listaHoodiesMujer","listaJoggersMujer","listaBlusas","listaVestidos","listaLycras","listaBodys","listaCamisas","listaPantalones","listaDescuentos","actualizarEstadoBar","GORRAS","Nuevo","Descuento","Disponible","BASICAS","ESTAMPADAS","VALTIMOR","MUJER","CB_MUJER","POLOS","BLUSAS","VESTIDOS","LYCRAS","BODYS","CAMISAS","PANTALONETAS","HOODIES_H","HODDIES_M","JOGGER_H","JOGGER_M","PANTALONES_H","actualizarData","obtenerProductos","refBar","categoriaId","generoId","subgeneroId","marcaExcluida","marcaALlamar","SubgeneroALlamar","MarcaExcluida","obtenerData","actualizarLista","queBar","MarcaId","SubgeneroId","ReactPixel","track","estados","sessionStorage","img0","FormRegistro","actualizar","setActualizar","useForm","register","handleSubmit","setValue","watch","errors","formState","departamentos","setDepartamentos","ciudades","setCiudades","vinculado","setVinculado","sucursales","setSucursales","selectSucursal","setSelectSucursal","consulta","setConsulta","step","consultarDepartamentos","consultarCiudades","consultarVinculado","documento","existe","Sucursales","consultarSucursales","handleChangeSucursal","idSucursal","sucursal","suc","Identificador","llenarFormVinculado","consultado","storageClient","clienteLocal","initialValues","Documento","Apellido","Telefono","Email","fecha","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","handleChangeDoc","onBlur","hidden","validate","dpto","ciudad","pedidoState","modificarPedidoState","useLocation","ModalEpayco","accion","role","ModalAddi","borderRadius","Pedido","Pagina","Efecty","EfectyImg","Baloto","BalotoImg","PSE","PSEImg","Credito","CreditoImg","Contraentrega","ContraentregaImg","Consignacion","ConsignacionImg","SuperGiros","SuperGirosImg","Epayco","EpaycoImg","Addi","AddiImg","cambioPagina","user_data","email","phone","ge","lastname","city","country","stylePagina1","stylePagina2","stylePagina3","EfectyBackground","ConsignacionBackground","ContarEntregaBackground","SuperGirosBackground","EpaycoBackground","totalCarritoState","modificarTotalCarritoState","getCantidadProductoBodega","codBodega","idProducto","cantidadDisponible","body","bodega","referencia","aumentarCantidad","cantidadFisica","elemento","botonPago","letEfecty","letBaloto","letPSE","letCredito","letContraEntrega","letEpayco","letAddi","pagina","actualizarDatosUsuario","respuesta","callback","vaciarCarrito","listaCarrito","listaALlevar","calcularPedido","Cupon","TotalPedido","crearDatosAddi","newItems","sku","unitPrice","tax","pictureUrl","category","brand","orderId","NumeroOperacion","totalAmount","shippingAmount","totalTaxesAmount","items","client","idType","idNumber","firstName","lastName","cellphone","cellphoneCountryCode","address","lineOne","shippingAddress","billingAddress","pickUpAddress","allyUrlRedirection","logoUrl","callbackUrl","redirectionUrl","geoLocation","latitude","longitude","crearPedido","bancos","verificarCiudadEnvioRR","tipoPago","TipoPago","Componentes","Array","from","Procomponentes","MedioDePago","Banco","Vendedor","Total","pin","MedioPago","description","external","acepted","rejected","pending","handler","ePayco","checkout","configure","open","auth","Link","Respuesta","UrlPse","Referencias","ProductosNoPermitidos","comprobarCupon","valorCupon","Tipo","descripcion","valor","PagoPorConsignacion","tipoConsignacion","mensaje","ciudaR","CostoEnvioRappi","includes","EnvioRR","Recaudo","CostoExtraPorRR","NuevoTotal","flechaIzquierdaPedido","backgroundImage","modificarFacturacion","mod","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","referenciasMap","AjustarValores","reduce","nuevoCarrito","isOpen","transition","ModalTransition","BOTTOM_UP","InicioSesion","password","inputs","setInputs","setMensaje","setLoading","HandleChange","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","Vendedor3","VendedorC","VendedorWeb","Maquila","obtenerDetalle","dataVentas","labels","datasets","borderWidth","adicionarV","cantidadReal","obtenerCantidad","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","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","NewIndex","subcategoria","nuevo","Imagenes","insertarArchivos","formData","fetch","method","carga","insertarHost","multiple","accept","file","ul","li","appendChild","createTextNode","listarArchivos","LoginVendedor","userData","setUserData","warning","setWarning","initialize","gtmId","init","App","Recuperar","nombreItem","exact","render","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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AiB,GAEnBwC,EAAQL,IAAWpF,GAAUoF,GAC7BlC,GAAoBuC,IAIhBlI,GAAW,uCAAG,sBAAArd,EAAA,sDAGA,aAAdrD,GAAuC,WAAXC,GAC9BqoB,GACE,uBACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,aAAdtoB,GAAuC,UAAXC,GAC9BqoB,GACE,sBACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,UAAdtoB,GAAoC,WAAXC,GAC3BqoB,GACE,cACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,WAAdtoB,GAAqC,WAAXC,GAC5BqoB,GACE,qBACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,WAAdtoB,GAAqC,UAAXC,GAC5BqoB,GACE,oBACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,SAAdtoB,GAAmC,WAAXC,GAC1BqoB,GACE,mBACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,UAAdtoB,GACFsoB,GACE,cACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,YAAdtoB,GACFsoB,GACE,gBACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,UAAdtoB,GACFsoB,GACE,cACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,SAAdtoB,GACFsoB,GACE,aACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,WAAdtoB,GACFsoB,GACE,eACA,2BACA,2BACA,QACA,KACA,KACA,MAIc,gBAAdtoB,GAA0C,WAAXC,GACjCqoB,GACE,0BACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,WAAdtoB,GAAqC,WAAXC,GAC5BqoB,GACE,qBACA,2BACA,2BACA,SACA,KACA,KACA,MAIc,WAAdtoB,GAAqC,UAAXC,GAC5BqoB,GACE,oBACA,2BACA,2BACA,QACA,KACA,KACA,MAKY,aAAdtoB,GACW,WAAXC,GACU,aAAVwE,GAEA6jB,GACE,+BACA,2BACA,2BACA,SACA,KACA,KACA,4BAKY,aAAdtoB,GACW,WAAXC,GACc,eAAdqkB,GAEAgE,GACE,iCACA,2BACA,2BACA,SACA,2BACA,2BACA,MAMY,aAAdtoB,G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","file":"static/js/main.71efeb04.chunk.js","sourcesContent":["import { useState, useContext, createContext } from 'react'\r\n\r\nconst PreventaContext = createContext();\r\n\r\n/** contexto que contiene las variables de uso para preventa */\r\nexport const usePreventaContext = () => {\r\n return useContext(PreventaContext)\r\n}\r\n\r\nexport const PreventaProvider = ({ children }) => {\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 = \"03\"\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\r\n }\r\n const [vendedor, modificarVendedorState] = useState(parsedVendedor);\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 = \"03\"\r\n } else {\r\n parsedBodegaC = localStorageBodegaC;\r\n }\r\n const [BodegaCatalogos, setBodegaCatalogos] = useState(parsedBodegaC);\r\n\r\n const [metodoFact, setMetodoFact] = useState({\r\n Facturacion: 0,\r\n Remision: 100\r\n });\r\n\r\n //** END Estados para manejo de vendedores */\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 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\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\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 checkedProductos,\r\n setCheckedProductos,\r\n}) => {\r\n const { Bodega, BodegaCatalogos, setBodegaCatalogos } = usePreventaContext();\r\n\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/Producto/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: \"CambioMatriz\"\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;\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 );\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 != \"\") {\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\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: \"Limpiar\"\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\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 // console.log(\"CATEGORIAAA: \", categoria.Categoria)\r\n // console.log(\"Genero: \", genero)\r\n if(Ruta !== '/Admin/GeneradorDeCatalogos'){// Ruta === '/'\r\n let auxcategoria = convertirPalabra(categoria.Categoria)\r\n if(genero === \"Hombre\" && auxcategoria === \"Camiseta\"){\r\n auxcategoria = \"Camiseta\"\r\n }\r\n if(auxcategoria === \"Gorra\"){\r\n genero = \"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}/${genero}`\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: 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 //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 useEffect(() => {\r\n if (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 )\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 )\r\n obtenerMedidas();\r\n },[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\", \"6\");\r\n window.location.reload();\r\n }}\r\n >\r\n Cali\r\n */}\r\n {\r\n localStorage.setItem(\"BodegaCatalogos\", \"13\");\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
\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 axios from \"axios\";\r\n\r\nconst apiFacebook = {\r\n /** Obtener ip */\r\n get: async () => {\r\n try {\r\n const response = await axios.get('https://api.ipify.org?format=json');\r\n // console.log('Tu IP es: ', response.data.ip);\r\n return response.data.ip; // Retornando el valor de la IP correctamente\r\n } catch (error) {\r\n // console.error('Error al obtener la IP:', error);\r\n return null; // Retornar null o manejar el error de alguna otra forma\r\n }\r\n },\r\n\r\n /** Enviar evento */\r\n post: async (url, data) => {\r\n const response = await axios.post(url, data);\r\n // console.log(response);\r\n }\r\n}\r\n\r\nexport default apiFacebook;","/** Funciones de uso global */\r\n\r\nexport const actualizarEventId = () => {\r\n let facebook_event_id = localStorage.getItem(\"facebook_event_id\");\r\n if(!facebook_event_id) {\r\n const id = Date.now();\r\n localStorage.setItem(\"facebook_event_id\", JSON.stringify(id));\r\n facebook_event_id = id;\r\n } else {\r\n const newEvent_id = Date.now();\r\n const diferencia = newEvent_id - parseInt(facebook_event_id)\r\n const miliseg_hora = 3600000;\r\n if(diferencia > miliseg_hora) {\r\n localStorage.setItem(\"facebook_event_id\", JSON.stringify(newEvent_id));\r\n facebook_event_id = localStorage.getItem(\"facebook_event_id\");\r\n }\r\n }\r\n return facebook_event_id;\r\n} \r\n\r\n","import { useState, useContext, createContext } from 'react'\r\n\r\nconst GlobalContext = createContext();\r\n\r\n/** contexto que contiene los states para uso global */\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 /** Contiene la relación entre producto y componente */\r\n const [procomponente, setProcomponente] = useState(new Map());\r\n\r\n /** Contiene la información de las unidades disponibles de los componentes\r\n * que usa un producto */\r\n const [componentes, setComponentes] = useState(new Map());\r\n\r\n const [dataLoad, setDataLoad] = useState(false);\r\n\r\n /** Actualiza un componente de la lista */\r\n const actualizarComponente = (key, value) => {\r\n const existe = procomponente.has(key);\r\n if (existe) {\r\n const codComponente = procomponente.get(key);\r\n setComponentes(prevMap => {\r\n const newMap = new Map(prevMap);\r\n const currentValue = newMap.get(codComponente);\r\n newMap.set(codComponente, currentValue + value);\r\n return newMap;\r\n });\r\n }\r\n }\r\n\r\n /** Actualiza la lista de componentes restando las unidades ya pedidas\r\n * en el carrito */\r\n const actualizarComponentesCarrito = (carrito) => {\r\n for (const producto of carrito) {\r\n if (procomponente.has(producto.id)) {\r\n actualizarComponente(producto.id , -producto.CantidadComp);\r\n }\r\n }\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 { useHistory } from 'react-router-dom'\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 { useLocation } from \"react-router-dom\";\r\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\r\n\r\n/** Importacion de servicios */\r\nimport apiFacebook from \"../../services/apiFacebook\";\r\nimport { actualizarEventId } from \"../../global/functions\";\r\n\r\nimport \"./static/css/NewHeader.css\";\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 checkedProductos,\r\n setCheckedProductos,\r\n}) {\r\n const { Bodega, setBodega, vendedor, modificarVendedorState } = usePreventaContext();\r\n const { setProcomponente, setComponentes, dataLoad, setDataLoad, actualizarComponente, actualizarComponentesCarrito } = useGlobalContext();\r\n\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 history = useHistory();\r\n\r\n const getComponentes = async () => {\r\n const url = `${apiUrlState}/Api/Componentes/GetComponentes`;\r\n axios.get(url)\r\n .then(response => {\r\n if (!response.error) {\r\n const listaComponentes = response.data.data;\r\n const mapProcomponente = new Map(\r\n listaComponentes.map(procomp => [procomp.Referencia, procomp.Codigo])\r\n );\r\n // console.log(mapProcomponente)\r\n setProcomponente(mapProcomponente); // Relacion de la referencia y el codigo del componente\r\n\r\n const componentesUnicos = obtenerComponentesDiferentes(listaComponentes);\r\n const mapComponentes = new Map(\r\n componentesUnicos.map(comp => [comp.Codigo, comp.Disponible])\r\n );\r\n // console.log(mapComponentes)\r\n setComponentes(mapComponentes); // Relacion del componente y la cantidad disponible;\r\n setDataLoad(true);\r\n }\r\n })\r\n }\r\n\r\n const obtenerComponentesDiferentes = (listaComponentes) => {\r\n let componentesUnicos = listaComponentes.reduce((acc, item) => {\r\n const existe = acc.find(comp => comp.Codigo === item.Codigo);\r\n if(!existe) {\r\n acc.push({ ...item });\r\n }\r\n return acc;\r\n }, []);\r\n return componentesUnicos;\r\n }\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 // ReactPixel.track(\"HomeMayoristas\", \"ViewContent\");\r\n\r\n const getDataCart = () => {\r\n let value = 0, num_items = 0;\r\n let content_ids = [], contents = []\r\n for(const item of carrito[\"Carrito\"]) {\r\n const id = item.Codigo;\r\n const quantity = item.Cantidad;\r\n const item_price = headerState[\"Cliente\"] == \"Mayoristas\"\r\n ? item.PrecioMayorista\r\n : item.PrecioMinorista;\r\n value += item_price;\r\n num_items += quantity;\r\n content_ids.push(id);\r\n contents.push({id, quantity, item_price});\r\n }\r\n const custom_data = {\r\n currency: \"COP\",\r\n value,\r\n content_ids,\r\n contents,\r\n num_items\r\n }\r\n return custom_data;\r\n }\r\n /** Envia el evento de iniciar pago de la pagina web a facebook */\r\n const enviarEventoFacebook = async () => {\r\n const event_id = actualizarEventId();\r\n const userIP = await apiFacebook.get();\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEvent`, {\r\n event_id: `ch-${event_id}`,\r\n event_name: \"InitiateCheckout\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\",\r\n custom_data: getDataCart()\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\r\n \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/Producto/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/Producto/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 const obtenerComponentes = vendedor? true: false;\r\n if (palabra !== \"\") {\r\n await axios\r\n .get(apiUrlState + \"/Api/Inventario/BusquedaPalabraRef/\" + palabra +`/${Bodega}/${obtenerComponentes}`, {})\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 if (headerState[\"displayMenu\"] === \"Index\") {\r\n history.push(\"/Mercado\");\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 data.vendedor = vendedor? true : false;\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 13 (Preventa)\r\n let rutaVerificacion = \"/Api/Contapyme/VerificarProductoContapyme/\" + idProducto\r\n if (vendedor) {\r\n rutaVerificacion = \"/Api/Contapyme/VerificarProductoContapyme/\" + 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 const getCantidadProductoBodega = async (Producto) => {\r\n const codBodega = Producto.Bodega;\r\n const idProducto = Producto[\"Codigo\"];\r\n const talla = Producto[\"Talla\"];\r\n let cantidadDisponible = 0;\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Agregando producto...\",\r\n });\r\n }\r\n const url = apiUrlState + \"/Api/Inventario/VerificarProductoBD\";\r\n const body = {\r\n bodega: codBodega,\r\n referencia: idProducto,\r\n talla: talla\r\n }\r\n await axios.post(url, body)\r\n .then(response => {\r\n cantidadDisponible = response.data.data;\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n }).catch(error => {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n })\r\n return cantidadDisponible;\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 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 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 let disminuirComponente = false;\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 {\r\n carrito[\"Carrito\"][i][\"Cantidad\"] -= 1;\r\n if (carrito[\"Carrito\"][i][\"CantidadComp\"] > 0) {\r\n carrito[\"Carrito\"][i][\"CantidadComp\"] -= 1;\r\n disminuirComponente = true;\r\n } else {\r\n disminuirComponente = false;\r\n }\r\n }\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 if (disminuirComponente) {\r\n actualizarComponente(producto.id, 1);\r\n }\r\n }\r\n presionEnter = false;\r\n };\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 const cantidadFisica = await getCantidadProductoBodega(producto);\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 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 actualizarComponente(producto.id, producto.Cantidad);\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 // getComponentes();\r\n };\r\n\r\n //Lleva a la vista de pedido.\r\n const llevarAPedido = async () => {\r\n enviarEventoFacebook();\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 history.push(\"/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 history.push(\"/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\"); // Probar\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 // useEffect(() => {\r\n // getComponentes();\r\n // },[])\r\n\r\n useEffect(() => {\r\n if (dataLoad) {\r\n const storageCart = localStorage.getItem('Carrito');\r\n if(storageCart !== 'undefined' && storageCart != null) {\r\n actualizarComponentesCarrito(JSON.parse(storageCart));\r\n }\r\n }\r\n }, [dataLoad])\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 $150.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 {vendedor ? (\r\n <>\r\n \r\n
\r\n Salir\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\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\r\n\r\n/** Importacion de servicios */\r\nimport apiFacebook from \"../../services/apiFacebook\";\r\n\r\n//Zona de importacion de Css.\r\nimport \"./static/css/GrupoTallas/Tallas.css\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\r\n\r\nconst GrupoTallasV2 = ({\r\n carrito,\r\n modificarCarritoState,\r\n producto,\r\n apiUrlState,\r\n recursosUrlState,\r\n headerState,\r\n actualizarSessionStorage,\r\n mostar,\r\n}) => {\r\n const { vendedor } = usePreventaContext();\r\n const { procomponente, componentes, actualizarComponente } = useGlobalContext();\r\n\r\n const [tallas, setTallas] = useState([]);\r\n const [tallaSeleccionada, setTallaSelecionada] = useState([]);\r\n const [cantidad, setCantidad] = useState(0); // Unidades en inventario\r\n const [cantidadComp, setCantidadComp] = useState(0); // Unidades del componente\r\n const [unidadesDisponibles, setUnidadesDisponibles] = useState(0); // cantidad + cantidadComp\r\n const [actualDisponible, setActualDisponible] = useState(-1);\r\n const [adicion, setAdicion] = useState(0);\r\n\r\n /** Envia el evento de agregar al carrito pagina web a facebook */\r\n const enviarEventoFacebook = async (producto) => {\r\n const userIP = await apiFacebook.get();\r\n const item_price = headerState[\"Cliente\"] == \"Mayoristas\"\r\n ? producto.PrecioMayorista\r\n : producto.PrecioMinorista;\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEvent`, {\r\n event_id: `cart-${Date.now()}`,\r\n event_name: \"AddToCart\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\",\r\n custom_data: {\r\n currency: \"COP\",\r\n contents: [\r\n {\r\n id: producto.id,\r\n item_price,\r\n }\r\n ]\r\n }\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\r\n \r\n }\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,2}$/.test(value)) { // Limitar a 2 dígitos\r\n setAdicion(value);\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 //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 setActualDisponible(cantidad - cantidadActual);\r\n if (tallaSeleccionada.length !== 0) { \r\n if (cantidadActual + 1 <= unidadesDisponibles) {\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 Componente: procomponente.get(producto.Referencia + talla),\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: 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 enviarEventoFacebook(productoNuevo)\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 actualizarComponente(producto.Referencia + talla, - 1) // Aqui revisar\r\n } else {\r\n swal({\r\n title: \"¡Importante!\",\r\n text: `No puedes agregar más unidades de la referencia ${producto.Referencia + talla}\\\r\n al carrito. Si se presenta la novedad con todas las referencias, solicite soporte.`,\r\n icon: \"warning\",\r\n });\r\n }\r\n }\r\n };\r\n\r\n /** Reparte las unidades que se piden del inventario\r\n * y las que se piden de los componentes. */\r\n const separarUnidades = (undAdicion, cantidadActual) => {\r\n let undIventario = undAdicion;\r\n let undComponente = 0;\r\n if (cantidadActual >= cantidad) {\r\n undIventario = 0;\r\n undComponente = undAdicion;\r\n } else if (cantidadActual + undAdicion > cantidad) {\r\n undIventario = cantidad - cantidadActual;\r\n undComponente = undAdicion - undIventario;\r\n }\r\n console.log(\"Separar\", undIventario, undComponente, undAdicion, cantidadActual >= cantidad, cantidadActual + undAdicion > cantidad);\r\n return { undIventario, undComponente };\r\n }\r\n\r\n /** Agrega productos al carrito, gestionando cantidades en inventario y componentes */\r\n const adicionarV2 = async (talla, cantidadActual, cantidadAdicion) => {\r\n const totalDisponibles = cantidadActual > cantidad? cantidadComp : cantidad + cantidadComp - cantidadActual;\r\n const { undIventario, undComponente } = separarUnidades(cantidadAdicion, cantidadActual);\r\n const disponible = (undIventario > 0 || undComponente > 0) && undComponente <= cantidadComp;\r\n // console.log(\"TotalDispon\",totalDisponibles, \"CantComp\",cantidadComp, \"Cantidad\", cantidad, disponible);\r\n setActualDisponible(totalDisponibles);\r\n \r\n if (tallaSeleccionada.length !== 0) {\r\n if (disponible) {\r\n auxAdicionarV(talla, undIventario, undComponente);\r\n setAdicion(1);\r\n } else {\r\n if (cantidadAdicion > totalDisponibles) {\r\n const undPermitidas = totalDisponibles;\r\n if (undPermitidas > 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 ${undPermitidas} 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 const res = separarUnidades(undPermitidas, cantidadActual);\r\n auxAdicionarV(talla, res.undIventario, res.undComponente);\r\n }\r\n setAdicion(1);\r\n })\r\n } else {\r\n swal({\r\n title: \"¡Importante!\",\r\n text: `No puedes agregar más unidades de la referencia ${producto.Referencia + talla}\\\r\n al carrito. Si se presenta la novedad con todas las referencias, 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, undIventario, undComponente) => {\r\n const totalAdicion = parseInt(undIventario) + parseInt(undComponente);\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(totalAdicion);\r\n carrito[\"Carrito\"][i][\"CantidadComp\"] += parseInt(undComponente);\r\n setCantidadComp(cantidadComp - undComponente);\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 Componente: procomponente.get(producto.Referencia + talla),\r\n CantidadComp: undComponente,\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: totalAdicion,\r\n };\r\n setCantidadComp(cantidadComp - undComponente);\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 actualizarComponente(producto.Referencia + talla, - undComponente) // Aqui revisar\r\n\r\n }\r\n\r\n /** Obtiene las unidades pedidas de una referencia en el carrito */\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 const condicion = vendedor\r\n ? talla.Cantidad > 0 || talla.Componente > 0\r\n : talla.Cantidad > 0;\r\n if (condicion) {\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 obtenerCantidadComp(talla);\r\n setTallaSelecionada(talla);\r\n setTallas(temp);\r\n };\r\n\r\n /** Establece las unidades disponibles del componente */\r\n const obtenerCantidadComp = (talla) => {\r\n const hasProcomponente = procomponente.has(producto.Referencia + talla.label);\r\n const codComponente = procomponente.get(producto.Referencia + talla.label);\r\n let undDisponible = 0;\r\n if (hasProcomponente) {\r\n undDisponible = componentes.get(codComponente);\r\n } \r\n setCantidadComp(undDisponible);\r\n if (vendedor) {\r\n setUnidadesDisponibles(parseInt(talla.Cantidad) + parseInt(undDisponible));\r\n } else {\r\n setUnidadesDisponibles(talla.Cantidad);\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n ObtenerTallas();\r\n }, []);\r\n\r\n useEffect(()=> {\r\n setActualDisponible(-1)\r\n }, [tallas]);\r\n\r\n return (\r\n
\r\n {tallas?.map((talla, index) => (\r\n changeSelectedTalla(talla.value, talla)}\r\n />\r\n ))}\r\n\r\n
\r\n {unidadesDisponibles === 0 ? (\r\n \r\n ) : unidadesDisponibles === 1 ? (\r\n

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

\r\n ) : (\r\n

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

\r\n )}\r\n {tallaSeleccionada.length !== 0 ? (\r\n actualDisponible == 0 ? (\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 adicionarV2(\r\n tallaSeleccionada.label,\r\n obtenerCantidadTallaProductoActual(tallaSeleccionada.label),\r\n parseInt(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 adicionarV2(\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 GrupoTallasV2;\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 GrupoTallasV2 from \"./GrupoTallas_v2\";\r\nimport { Link } from \"react-router-dom\";\r\nimport \"./static/css/Producto/producto.css\";\r\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\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 checkedProductos,\r\n setCheckedProductos,\r\n}) => {\r\n const { vendedor } = usePreventaContext();\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 // console.log(\"Mercado \", Mercado)\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. The Croatta Company. 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.\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.croatta.com/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 \"GORRAS\",\r\n \"https://hosting.croatta.com/img/Index/web/home/CATEGORIA%20GORRAS.webp\",\r\n [{ Categoria: \"607ed63e521b1c0910a581ac\" }],\r\n [], // subcategoria\r\n [], // marca\r\n [ { Genero: \"607ed653521b1c0910a581bb\" } ], // genero\r\n false,\r\n \"Unisex\",\r\n \"Gorra\",\r\n false,\r\n ],\r\n [\r\n \"CAMISETAS ESTAMPADAS HOMBRE\",\r\n \"https://hosting.croatta.com/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 BÁSICAS HOMBRE\",\r\n \"https://hosting.croatta.com/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 \"POLOS\",\r\n \"https://hosting.croatta.com/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 \"PANTALONES\",\r\n \"https://hosting.croatta.com/img/Index/web/home/CATEGORIA%20PANTALONES.webp\",\r\n [{ Categoria: \"66ab94a0384bbb45fbe9ee0c\" }],\r\n [], // subcategoria\r\n [], // Marca\r\n [ { Genero: \"607ed653521b1c0910a581b8\" } ],\r\n false,\r\n \"Hombre\",\r\n \"Pantalon\",\r\n false,\r\n ],\r\n // [\r\n // \"CAMISETAS ESTAMPADAS MUJER\",\r\n // \"https://hosting.croatta.com/img/Index/web/home/CATEGORIA%20ESTAMPADAS%20MUJER.webp\",\r\n // [{ Categoria: \"607ed63e521b1c0910a581aa\" }],\r\n // [{ Subcategoria: \"607ed65a521b1c0910a581bf\" }],\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 \"BLUSAS BÁSICAS DK\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BLUSAS%20BASICAS.webp\",\r\n [\r\n { Categoria: \"651aec4251072238a0969749\" }, // Blusa\r\n // { Categoria: \"607ed63e521b1c0910a581aa\" }, // Camiseta\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 BÁSICAS CROATTA\",\r\n \"https://hosting.croatta.com/img/Index/web/home/CAMISETAS%20BASICAS.webp\",\r\n [\r\n // { Categoria: \"651aec4251072238a0969749\" }, // Blusa\r\n { Categoria: \"607ed63e521b1c0910a581aa\" }, // Camiseta\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 \"CamisetaB\",\r\n false,\r\n ],\r\n // [\r\n // \"PANTALONETAS\",\r\n // \"https://hosting.croatta.com/img/Index/web/home/CATEGORIA%20PANTALONETAS.webp\",\r\n // [{ Categoria: \"607ed63e521b1c0910a581b0\" }],\r\n // [], // subcategoria\r\n // [], // Marca\r\n // [ { Genero: \"607ed653521b1c0910a581b8\" } ],\r\n // false,\r\n // \"Hombre\",\r\n // \"Pantaloneta\",\r\n // false,\r\n // ], \r\n // [\r\n // \"CAMISETAS ESTAMPADAS DK\",\r\n // \"https://hosting.croatta.com/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.croatta.com/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 // \"VESTIDOS\",\r\n // \"https://hosting.croatta.com/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.croatta.com/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 // \"HOODIES HOMBRE\",\r\n // \"https://hosting.croatta.com/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.croatta.com/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.croatta.com/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.croatta.com/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.croatta.com/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.croatta.com/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/** Importacion de servicios */\r\nimport apiFacebook from \"../../services/apiFacebook\";\r\nimport { actualizarEventId } from \"../../global/functions\";\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 { usePreventaContext } from \"../../providers/PreventaProviders\";\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 checkedProductos,\r\n setCheckedProductos,\r\n}) => {\r\n // ReactPixel.track(\"HomeMinoristas\", \"ViewContent\");\r\n\r\n /** Envia el evento de visita a la pagina web de minoristas a facebook */\r\n const enviarEventoFacebook = async () => {\r\n const event_id = actualizarEventId();\r\n const userIP = await apiFacebook.get();\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEvent`, {\r\n event_id: `hmin-${event_id}`,\r\n event_name: \"HomeMinoristas\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\"\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\r\n \r\n }\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 const { Bodega, vendedor } = usePreventaContext();\r\n\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 if (!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: true,\r\n Bodega: Bodega,\r\n Origen: \"Merc1\"\r\n };\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 Origen: \"Merc2\"\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 Origen: \"Merc3\"\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 Origen: \"Merc4\"\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 Origen: \"Merc5\"\r\n };\r\n }\r\n\r\n //Ruta landing -> Replanteado para que se mas dinámico\r\n const RutaLanding2 = async () => {\r\n // console.log(Categoria, Genero)\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 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 === \"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\" },\r\n { Categoria: \"655bad5a1cdc932b9e974a01\" }\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\" },\r\n { Subcategoria: \"607ed65a521b1c0910a581bc\" }\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(\"607ed65a521b1c0910a581bc\"),\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: \"607ed65a521b1c0910a581bc\" }],\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 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 (!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: Bodega,\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 Bodega: Bodega,\r\n Origen: \"Merc6\"\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 (rutaDinamica) {\r\n const cateGene = await RutaLanding();\r\n // console.log(rutaDinamica, \"RUTA\", cateGene)\r\n data = cateGene;\r\n\r\n // Si hay un vendedor logueado, se consultan los productos de la bodega 2\r\n data.Bodega = Bodega;\r\n data.vendedor = vendedor? true : false;\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: false,\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\" && !vendedor)\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 useEffect(() => {\r\n enviarEventoFacebook();\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}) => {\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 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\r\n return (\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\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 CarouselInfo from \"../Index/CarouselInfo\";\r\n\r\n/** Importacion de servicios */\r\nimport apiFacebook from \"../../services/apiFacebook\";\r\nimport { actualizarEventId } from \"../../global/functions\";\r\n\r\nimport \"./static/css/Mayoristas/Mayoristas.css\";\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}) => {\r\n\r\n // ReactPixel.track(\"HomeMayoristas\", \"ViewContent\");\r\n /** Envia el evento de visita a la pagina web de mayoristas a facebook */\r\n const enviarEventoFacebook = async () => {\r\n const event_id = actualizarEventId();\r\n const userIP = await apiFacebook.get();\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEvent`, {\r\n event_id: `hmay-${event_id}`,\r\n event_name: \"HomeMayoristas\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\"\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\r\n \r\n }\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 barCamisetasBasicasMujer = 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 barPantalones = 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 listaCamisetasBasicasMujer: 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 listaPantalones: false,\r\n listaDescuentos: false,\r\n });\r\n\r\n const [data, actualizarData] = useState({\r\n GORRAS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n BASICAS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n ESTAMPADAS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n VALTIMOR: { Nuevo: false, Descuento: 0, Disponible: true },\r\n MUJER: { Nuevo: false, Descuento: 0, Disponible: true },\r\n CB_MUJER: { Nuevo: false, Descuento: 0, Disponible: true },\r\n POLOS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n BLUSAS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n VESTIDOS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n LYCRAS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n BODYS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n CAMISAS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n PANTALONETAS: { Nuevo: false, Descuento: 0, Disponible: true },\r\n HOODIES_H: { Nuevo: false, Descuento: 0, Disponible: true },\r\n HODDIES_M: { Nuevo: false, Descuento: 0, Disponible: true },\r\n JOGGER_H: { Nuevo: false, Descuento: 0, Disponible: true },\r\n JOGGER_M: { Nuevo: false, Descuento: 0, Disponible: true },\r\n PANTALONES_H: { Nuevo: false, Descuento: 0, Disponible: true },\r\n });\r\n\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: \"Mayo1\"\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 === \"listaCamisetasBasicasMujer\") {\r\n ReactPixel.track(\"Camisetas Basicas Mujer\", \"ViewContent\");\r\n }\r\n if (queBar === \"listaBlusas\") {\r\n ReactPixel.track(\"Blusas Basicas\", \"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 if (queBar === \"listaPantalones\") {\r\n ReactPixel.track(\"Pantalones Cargo\", \"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 listaCamisetasBasicasMujer: 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 listaPantalones: 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\r\n useEffect(() => {\r\n enviarEventoFacebook();\r\n }, [])\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 img0: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO1.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO2.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO3.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO4.webp\",\r\n ],\r\n img1: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL1.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL2.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL3.webp\",\r\n ],\r\n img2: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL21.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL22.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL23.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL24.webp\",\r\n ],\r\n img3: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL31.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL32.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL33.webp\",\r\n \"https://hosting.croatta.com/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 \"listaCamisetasBasicasMujer\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n \"607ed65a521b1c0910a581bd\",\r\n null,\r\n barCamisetasBasicasMujer\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 Básicas Mujer

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

\r\n NEW\r\n

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

{data.CB_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 \"listaCamisetasBasicasMujer\",\r\n \"607ed63e521b1c0910a581aa\",\r\n \"607ed653521b1c0910a581b9\",\r\n \"Mujer\",\r\n null,\r\n \"607ed65a521b1c0910a581bd\",\r\n null,\r\n barCamisetasBasicasMujer\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 Básicas Mujer

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

\r\n NEW\r\n

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

{data.CB_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 \"listaPantalones\",\r\n \"66ab94a0384bbb45fbe9ee0c\",\r\n \"607ed653521b1c0910a581b8\",\r\n \"Hombre\",\r\n null,\r\n null,\r\n null,\r\n barPantalones\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

Pantalones Cargo

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

\r\n NEW\r\n

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

{data.PANTALONES_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 \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 \"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 \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\n// import { useGlobalContext } from '../../providers/GlobalStatesProviders'\r\nimport './static/css/Registro/FormRegistro.css'\r\n\r\nconst FormRegistro = ({\r\n apiUrlState,\r\n headerState,\r\n clienteState,\r\n modificarClienteState,\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 if (documento.length > 5 && documento.length < 14) {\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\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 onBlur={() => consultarVinculado(watch(\"Documento\"))}\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 pattern: {\r\n value: /^[A-Za-z\\s]+$/,\r\n message: \"Apellido no válido, verifique que no tenga tildes u otros caracteres especiales.\",\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, { useState, useEffect, useRef } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport Sucursal from \"./Sucursal\";\r\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\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}) => {\r\n const { vendedor } = usePreventaContext();\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 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/GetInfoUsuario/\" + Identificacion)\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.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 if(string!=null){\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 } else {\r\n return \"\";\r\n }\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 } 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 } 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\n\r\n/** Importacion de servicios */\r\nimport apiFacebook from \"../../services/apiFacebook\";\r\nimport { actualizarEventId } from \"../../global/functions\";\r\n\r\n//Zona de importacion de Css.\r\nimport \"./static/css/PedidoNew.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 { usePreventaContext } from \"../../providers/PreventaProviders\";\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}) => {\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 const { vendedor, metodoFact, setMetodoFact } = usePreventaContext();\r\n const { procomponente, componentes, actualizarComponente } = useGlobalContext();\r\n const [selectSucursal, setSelectSucursal] = useState(\"Principal\");\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 /** Hook para realizar la actualizacion de datos cliente\r\n * cuando la actualizacion de sucursal halla finalizado */\r\n useEffect(() => {\r\n if(actualizar.Usuario) {\r\n cambioPagina(3);\r\n }\r\n }, [actualizar])\r\n\r\n const getDataCart = () => {\r\n let value = 0, num_items = 0;\r\n let content_ids = [], contents = []\r\n for(const item of carrito[\"Carrito\"]) {\r\n const id = item.Codigo;\r\n const quantity = item.Cantidad;\r\n const item_price = headerState[\"Cliente\"] == \"Mayoristas\"\r\n ? item.PrecioMayorista\r\n : item.PrecioMinorista;\r\n value += item_price;\r\n num_items += quantity;\r\n content_ids.push(id);\r\n contents.push({id, quantity, item_price});\r\n }\r\n const custom_data = {\r\n currency: \"COP\",\r\n value,\r\n content_ids,\r\n contents,\r\n num_items\r\n }\r\n return custom_data;\r\n }\r\n\r\n /** Envia el evento Comprar de la pagina web a facebook */\r\n const enviarEventoFacebook = async () => {\r\n const event_id = actualizarEventId();\r\n const userIP = await apiFacebook.get();\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEventData`, {\r\n event_id: `prch-${event_id}`,\r\n event_name: \"Purchase\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\",\r\n user_data: {\r\n email: clienteState.Correo,\r\n phone: clienteState.Celular,\r\n ge: clienteState.Genero,\r\n lastname: clienteState.Apellidos,\r\n name: clienteState.Nombres,\r\n city: clienteState.Ciudad,\r\n country: \"co\",\r\n },\r\n custom_data: getDataCart()\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\r\n \r\n }\r\n \r\n const continuar = () => {\r\n if(vendedor) {\r\n setActualizar({ ...actualizar, \"Sucursal\": true });\r\n }\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 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 let rutaVerificacion = \"/Api/Contapyme/VerificarProductoContapyme/\" + idProducto\r\n if (vendedor) {\r\n rutaVerificacion = \"/Api/Contapyme/VerificarProductoContapyme/\" + 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 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 const getCantidadProductoBodega = async (Producto) => {\r\n const codBodega = Producto.Bodega;\r\n const idProducto = Producto[\"Codigo\"];\r\n const talla = Producto[\"Talla\"];\r\n let cantidadDisponible = 0;\r\n if (!spinnerState[\"Desplegar\"]) {\r\n modificarSpinnerState({\r\n Desplegar: !spinnerState[\"Desplegar\"],\r\n Texto: \"Agregando producto...\",\r\n });\r\n }\r\n const url = apiUrlState + \"/Api/Inventario/VerificarProductoBD\";\r\n const body = {\r\n bodega: codBodega,\r\n referencia: idProducto,\r\n talla: talla\r\n }\r\n await axios.post(url, body)\r\n .then(response => {\r\n cantidadDisponible = response.data.data;\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n }).catch(error => {\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n modificarErrorState({\r\n Error: true,\r\n Mensaje: \"Error al recuperar datos del servidor\",\r\n });\r\n })\r\n return cantidadDisponible;\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 let disminuirComponente = false;\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 {\r\n carrito[\"Carrito\"][i][\"Cantidad\"] -= 1;\r\n if (carrito[\"Carrito\"][i][\"CantidadComp\"] > 0) {\r\n carrito[\"Carrito\"][i][\"CantidadComp\"] -= 1;\r\n disminuirComponente = true;\r\n } else {\r\n disminuirComponente = false;\r\n }\r\n }\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 if (disminuirComponente) {\r\n actualizarComponente(producto.id, 1);\r\n }\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 const cantidadFisica = await getCantidadProductoBodega(producto); \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 //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 actualizarComponente(producto.id, producto.Cantidad);\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 = () => {\r\n for (const dato in clienteState) {\r\n if(dato === \"FechaNacimiento\" || dato === \"Universidad\") {\r\n return [true, dato]\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 Componente: carrito[\"Carrito\"][i][\"Componente\"],\r\n CantidadComp: carrito[\"Carrito\"][i][\"CantidadComp\"],\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.croatta.com/img/Productos/Ref%20${item.Referencia}.webp`,\r\n category: \"Ropa\",\r\n brand: \"Croatta\"\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.croatta.com/img/Email/45441614379749154.png\", // https://api.croatta.com/Api/Marketplaces/Addi/ConfirmacionPago\r\n callbackUrl: \"https://api.croatta.com/Api/Marketplaces/Addi/ConfirmacionPago\",\r\n redirectionUrl: \"https://www.croatta.com/\"\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 Componentes: Array.from(componentes),\r\n Procomponentes: Array.from(procomponente),\r\n MedioDePago: tipoPago.toLowerCase(),\r\n Cupon: carrito.Cupon !== null ? carrito.Cupon : \"\",\r\n Banco: bancos,\r\n Vendedor: vendedor,\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: 'f4de09d2a003042e7601e59e3ac31352',\r\n amount: response.data.TotalPedido,\r\n name: `Croatta ${headerState[\"Cliente\"] }`,\r\n description: 'Croatta',\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.croatta.com/Pedido/Confirmacion\",\r\n rejected: \"https://www.croatta.com/Pedido/Rechazado\",\r\n pending: \"https://www.croatta.com/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 enviarEventoFacebook();\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/Contapyme/RealizarNuevaRemision\", {\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\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: 'f4de09d2a003042e7601e59e3ac31352',\r\n amount: response.data.TotalPedido,\r\n name: `Croatta ${headerState[\"Cliente\"] }`,\r\n description: 'Croatta',\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.croatta.com/Pedido/Confirmacion\",\r\n rejected: \"https://www.croatta.com/Pedido/Rechazado\",\r\n pending: \"https://www.croatta.com/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 enviarEventoFacebook();\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\"]} {producto[\"Codigo\"]}\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=573002186343&text=Hola Croatta 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 300 218 6343 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 300 218 6343 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\r\n/** Importacion de servicios */\r\nimport apiFacebook from \"../../services/apiFacebook\";\r\nimport { actualizarEventId } from \"../../global/functions\";\r\n\r\n//Zona de importacion de Css.\r\nimport \"../../static/css/Modal.css\";\r\n\r\nimport TagManager from \"react-gtm-module\";\r\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\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}) => {\r\n const { vendedor, metodoFact } = usePreventaContext();\r\n const { procomponente, componentes } = 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 getDataCart = () => {\r\n let value = 0, num_items = 0;\r\n let content_ids = [], contents = []\r\n for(const item of carrito[\"Carrito\"]) {\r\n const id = item.Codigo;\r\n const quantity = item.Cantidad;\r\n const item_price = headerState[\"Cliente\"] == \"Mayoristas\"\r\n ? item.PrecioMayorista\r\n : item.PrecioMinorista;\r\n value += item_price;\r\n num_items += quantity;\r\n content_ids.push(id);\r\n contents.push({id, quantity, item_price});\r\n }\r\n const custom_data = {\r\n currency: \"COP\",\r\n value,\r\n content_ids,\r\n contents,\r\n num_items\r\n }\r\n return custom_data;\r\n }\r\n \r\n /** Envia el evento Comprar de la pagina web a facebook */\r\n const enviarEventoFacebook = async () => {\r\n const event_id = actualizarEventId();\r\n const userIP = await apiFacebook.get();\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEventData`, {\r\n event_id: `prch-${event_id}`,\r\n event_name: \"Purchase\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\",\r\n user_data: {\r\n email: clienteState.Correo,\r\n phone: clienteState.Celular,\r\n ge: clienteState.Genero,\r\n lastname: clienteState.Apellidos,\r\n name: clienteState.Nombres,\r\n city: clienteState.Ciudad,\r\n country: \"co\",\r\n },\r\n custom_data: getDataCart()\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\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=573002186343&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=573002186343&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=573002186343&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 Componente: carrito[\"Carrito\"][i][\"Componente\"],\r\n CantidadComp: carrito[\"Carrito\"][i][\"CantidadComp\"],\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 //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 Componentes: Array.from(componentes),\r\n Procomponentes: Array.from(procomponente),\r\n MedioDePago: tipoPago.toLowerCase(),\r\n Cupon: carrito.Cupon !== null ? carrito.Cupon : \"\",\r\n Banco: \"\",\r\n Vendedor: vendedor,\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 enviarEventoFacebook();\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\" && 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=573002186343&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=573002186343&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=573002186343&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 const referenciasMap = new Map(\r\n errorState[\"Referencias\"].map((ref) => [ref[\"Codigo\"], ref])\r\n );\r\n carrito[\"Carrito\"].forEach((producto) => {\r\n const referencia = referenciasMap.get(producto[\"id\"]);\r\n if (referencia) {\r\n if (referencia[\"Cantidad\"] > 0) {\r\n disminuirCantidad(producto, referencia);\r\n } else {\r\n borrarElemento(producto);\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 AjustarPedido_old = 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 const disminuirCantidad = (producto, referencia) => {\r\n const carritoNew = carrito[\"Carrito\"].reduce((nuevoCarrito, item) => {\r\n if (item[\"id\"] === producto[\"id\"]) {\r\n if (item[\"Cantidad\"] - 1 > 0) {\r\n // Actualiza la cantidad si no llega a 0\r\n item[\"Cantidad\"] = referencia[\"Cantidad\"];\r\n if (item[\"Componente\"]) {\r\n item[\"CantidadComp\"] = referencia[\"CantidadComp\"];\r\n }\r\n nuevoCarrito.push(item);\r\n }\r\n } else {\r\n // Mantiene los demás productos\r\n nuevoCarrito.push(item);\r\n }\r\n return nuevoCarrito;\r\n }, []);\r\n \r\n modificarCarritoState({ Accion: \"Activo\", Carrito: carritoNew });\r\n actualizarSessionStorage(\"Carrito\", JSON.stringify(carritoNew));\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_old = (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 CROATTA. y dando cumplimiento de la Ley 1581\r\n de 2012, CROATTA 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 // onError={(e) =>\r\n // comprobarImgProducto(\r\n // producto[\"Referencia\"],\r\n // producto[\"Talla\"]\r\n // )\r\n // }\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: 76271246338.

\r\n Tipo de cuenta: Ahorros.



\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 CrearRemision(\"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 300 218 6343 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 300 218 6343 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 300 218 6343 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 300 218 6343 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=573002186343&text=Hola Croatta 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 Croatta puedes encontrar una amplia gama de prendas de\r\n materiales naturales, artificiales y sintéticos. Tanto en\r\n croatta.com 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 Croatta 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

CROATTA

\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 };\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 Croatta 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 Vendedor3: {Ventas: \"$ --\", Devoluciones: \"$ --\", Total: \"$ --\"},\r\n VendedorC: {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 HENAO

\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

PATRICIA GIRALDO

\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

OCTAVIO FRANCO

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

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

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

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

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

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

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

TIENDA CALI

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

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

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

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

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

TOTAL: $ {formatNumber(ListMeta.Ventas.VendedorC.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 swal from \"sweetalert\";\r\n\r\n//Zona de importacion de componentes internos.\r\nimport axios from \"axios\";\r\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\r\n\r\n/** Importacion de servicios */\r\nimport apiFacebook from \"../../services/apiFacebook\";\r\n\r\n//Zona de importacion de Css.\r\nimport \"./static/css/GrupoTallas/Tallas.css\";\r\nimport { useGlobalContext } from \"../../providers/GlobalStatesProviders\";\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}) => {\r\n const { vendedor } = usePreventaContext();\r\n const { procomponente, componentes, actualizarComponente } = useGlobalContext();\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 /** Envia el evento de agregar al carrito pagina web a facebook */\r\n const enviarEventoFacebook = async (producto) => {\r\n const userIP = await apiFacebook.get();\r\n const item_price = headerState[\"Cliente\"] == \"Mayoristas\"\r\n ? producto.PrecioMayorista\r\n : producto.PrecioMinorista;\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEvent`, {\r\n event_id: `cart-${Date.now()}`,\r\n event_name: \"AddToCart\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\",\r\n custom_data: {\r\n currency: \"COP\",\r\n contents: [\r\n {\r\n id: producto.id,\r\n item_price,\r\n }\r\n ]\r\n }\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\r\n \r\n }\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,2}$/.test(value)) { // Limitar a 2 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/Contapyme/VerificarProductoContapyme/\" + idProducto\r\n if (vendedor) {\r\n rutaVerificacion = \"/Api/Contapyme/VerificarProductoContapyme/\" + 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 const disponible = procomponente.has(producto.Referencia + talla)\r\n ? componentes.get(procomponente.get(producto.Referencia + talla))\r\n : cantidad - obtenerCantidadTallaProductoActual(producto.Referencia + talla); \r\n if (disponible > 0) {\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 Componente: procomponente.get(producto.Referencia + talla),\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: 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 enviarEventoFacebook(productoNuevo)\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 actualizarComponente(producto.Referencia + talla, - 1) // Aqui revisar\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 = cantidad; //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 adicionarV2 = async (talla, cantidadActual, cantidadAdicion) => {\r\n let undAdicion = cantidadAdicion;\r\n if (tallaSeleccionada.length !== 0) {\r\n const disponible = procomponente.has(producto.Referencia + talla)\r\n ? componentes.get(procomponente.get(producto.Referencia + talla))\r\n : cantidad - obtenerCantidadTallaProductoActual(producto.Referencia + talla);\r\n \r\n if (parseInt(undAdicion) <= disponible) {\r\n auxAdicionarV(talla, undAdicion)\r\n setAdicion(1);\r\n } else {\r\n undAdicion = disponible;\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 Componente: procomponente.get(producto.Referencia + talla),\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 actualizarComponente(producto.Referencia + talla, - cantidadAdicion) // Aqui revisar\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 obtenerCantidad(talla);\r\n setTallaSelecionada(talla);\r\n setTallas(temp);\r\n };\r\n\r\n /** Establece la cantidad de unidades disponibles de una talla especifica.\r\n * Si el producto tiene un componente, se establece la cantidad de ese\r\n * componente, de lo contrario se establece la cantidad normalmente. */\r\n const obtenerCantidad = (talla) => {\r\n const hasProcomponente = procomponente.has(producto.Referencia + talla.label);\r\n const codComponente = procomponente.get(producto.Referencia + talla.label)\r\n let undDisponible = 0;\r\n if (hasProcomponente) {\r\n undDisponible = componentes.get(codComponente);\r\n } else {\r\n undDisponible = talla.Cantidad;\r\n }\r\n setCantidad(undDisponible);\r\n return undDisponible;\r\n }\r\n\r\n /** Establece la condición para mostrar aviso de cantidades maximas en carrito */\r\n const aplicarCondicion = () => {\r\n const hasProcomponente = procomponente.has(producto.Referencia + tallaSeleccionada.label);\r\n let cantidadMaxima = !hasProcomponente\r\n ? cantidad === obtenerCantidadTallaProductoActual(tallaSeleccionada.label)\r\n : componentes.get(producto.Referencia + tallaSeleccionada.label) > 0;\r\n return cantidadMaxima;\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 {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 aplicarCondicion() ? (\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 adicionarV2(\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\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\nimport { usePreventaContext } from \"../../providers/PreventaProviders\";\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}) => {\r\n\r\n const { Bodega } = usePreventaContext();\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 modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n })\r\n .catch(function (err) {\r\n console.log(\"Error\", err);\r\n modificarSpinnerState({\r\n Desplegar: false,\r\n Texto: spinnerState[\"texto\"],\r\n });\r\n });\r\n\r\n /*const generoState = await axios.get(apiUrlState + '/Api/Producto/BusquedaPalabraNombre/'+genero, {});\r\n GetProductRel(generoState.data.data)*/\r\n // Relacionados(genero);\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/Producto/BusquedaPalabraNombre/\" + 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 (bodega) => {\r\n await axios\r\n .get(apiUrlState + \"/Api/Unidades/ConteoUnidades/\"+bodega)\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(3);\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\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\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\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.croatta.com/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.croatta.com/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 axios from \"axios\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Footer from \"../Footer/Footer\";\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 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\r\n const images = {\r\n img0: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO1.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO2.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO3.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPROMO4.webp\",\r\n ],\r\n img1: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL1.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL2.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL3.webp\",\r\n ],\r\n img2: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL21.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL22.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL23.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL24.webp\",\r\n ],\r\n img3: [\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL31.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL32.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL33.webp\",\r\n \"https://hosting.croatta.com/img/Index/web/home/BANNERPRINCIPAL34.webp\",\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: \"NewIndex\"\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: \"NewIndex2\"\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: \"NewIndex3\"\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\", displayMenu: \"Index\" });\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 DISPONIBLE\r\n

\r\n \r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n {categorias.map((categoria) => (\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\nimport { useHistory } from 'react-router-dom' \r\nimport { usePreventaContext } from '../../providers/PreventaProviders';\r\n\r\nconst LoginVendedor = ({\r\n apiUrlState,\r\n setAdminHeaderState,\r\n headerState,\r\n modificarHeaderState,\r\n modificarErrorState,\r\n}) => {\r\n\r\n // states\r\n const { vendedor, modificarVendedorState } = usePreventaContext();\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 const history = useHistory()\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)\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(vendedor) {\r\n // window.location.href = \"/Preventa/Catalogo\"\r\n history.push('/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 localStorage.setItem(\"Vendedor\", JSON.stringify(Vendedor));\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\", \"03\");\r\n setAdminHeaderState({\r\n second: 'SecondHeader', \r\n principal: 'centerHeader'\r\n });\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 history.push('/Preventa/Catalogo');\r\n\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 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;","//Importacion de componentes externos.\r\nimport React, { Fragment, useState, useEffect } 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/** Importacion de servicios */\r\nimport apiFacebook from \"./services/apiFacebook\";\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 { CategoriasProvider } from \"./providers/CategoriasProviders\";\r\nimport { PreventaProvider } from \"./providers/PreventaProviders\";\r\nimport { actualizarEventId } from \"./global/functions\";\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\n// ReactPixel.pageView();\r\n// ReactPixel.track(\"track\", \"ViewContent\");\r\n\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.croatta.com\"\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.croatta.com\" : \"https://hosting.croatta.com\"\r\n );\r\n\r\n /** Envia el evento de visita a la pagina web a facebook */\r\n const enviarEventoFacebook = async () => {\r\n const event_id = actualizarEventId();\r\n const userIP = await apiFacebook.get();\r\n apiFacebook.post(`${apiUrlState}/Api/Facebook/SendEvent`, {\r\n event_id: `pv-${event_id}`,\r\n event_name: \"PageView\",\r\n event_source_url: window.location.href,\r\n client_user_agent: navigator.userAgent,\r\n client_ip_address: userIP || \"0.0.0.0\"\r\n });\r\n\r\n /** Activar evento mediante pixel -> Pendiente */\r\n // fbq(\"track\", \"pageView\", {}, { \r\n // eventID: id \r\n // });\r\n\r\n // ReactPixel.track(\"pageView\", {}, { \r\n // eventID: id \r\n // });\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 //State de cliente en donde se guarda totda la informacion actual de este, 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 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 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 //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 useEffect(() => {\r\n enviarEventoFacebook();\r\n }, [])\r\n \r\n\r\n return (\r\n \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\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":""}