{"version":3,"sources":["assets/svg/SearchFail.js","services/userService.js","services/AuthServices.js","services/axios.js","vars.js","services/subscription.js","pages/Farmacia/components.js","pages/Farmacia/index.js","components/TabSelector/index.js","components/Title/index.js","components/PrescricaoCard/index.js","services/prescriptionService.js","components/PrescricoesLista/index.js","components/Loading/index.js","components/BuscaPrescricao/index.js","containers/Atendimento/BuscaPrescricaoContainer.js","components/MedicoCard/index.js","services/doctorService.js","components/MedicosLista/index.js","components/BuscaMedico/index.js","containers/Atendimento/BuscaMedicoContainer.js","pages/Atendimento/index.js","assets/images/base.png","assets/images/pos.png","assets/images/warehouse.png","assets/images/dispensacao.png","assets/images/settings.png","assets/images/atendimento.png","assets/images/delivery-form.jpg","pages/Home/index.js","assets/images/credentials.png","pages/Logout.js","components/MeuCadastro/index.js","components/CriarEditarUsuario/index.js","components/UsuarioCard/index.js","components/UsuariosLista/index.js","components/GerenciarCadastros/index.js","containers/Conta/GerenciarCadastrosContainer.js","pages/Conta/index.js","pages/PDV/index.js","services/documentService.js","assets/images/coding-freak.gif","pages/Credencial/index.js","services/pharmaceuticalCare.js","components/CepModal/index.js","components/AssistenciaFarmaceuticaButtons/index.js","components/GetNextCallButton/index.js","components/ScriptAssitanceButton/index.js","components/LigacaoAtencaoFarmaceutica/index.js","components/BotaoCarrinhoWhatsapp/index.js","components/PrescriptionGetCartModal/index.js","pages/AtencaoFarmaceutica/index.js","pages/Base/index.js","pages/DetalhesFarmacia/index.js","components/ProductEcommerce/index.js","components/FreteButton/index.js","components/BuscarMedicamentosModal/index.js","components/FinalizarCompra/index.js","pages/VendaFarmacia/index.js","pages/VendaOrientacao/index.js","helpers/orderStatuses.js","pages/ListaPedidos/index.js","components/EstoqueVirtualVTEX/index.js","containers/Warehouse/EstoqueVirtualVTEXContainer.js","services/warehouse.js","pages/Warehouse/index.js","helpers/orderStatusTransition.js","components/ProductShow/index.js","helpers/orderShipping.js","pages/DetalhePedido/index.js","components/FunilList/index.js","containers/Funil/FunilContainer.js","services/funilService.js","pages/Funil/index.js","pages/FormularioEntega/index.js","services/prescriptionOrder.js","router.js","assets/svg/FrameUser.js","assets/svg/LogoNexo.js","components/Navbar/index.js","components/AuthenticationDialog/index.js","App.js","index.js"],"names":["SvgSearchFail","props","width","height","fill","xmlns","d","id","x1","y1","x2","y2","gradientUnits","stopColor","offset","getAuthenticatedUser","async","loginUser","AuthService","getCurrentAuthenticatedUser","userEmail","email","user","myAxios","get","data","getUser","localStorage","setItem","JSON","stringify","userInfo","tokenId","profileObj","window","location","reload","signOut","sessionStorage","removeItem","replace","isSignIn","jwt","getItem","nexoInfo","parse","e","defaultOptions","baseURL","process","headers","axios","create","interceptors","request","use","config","token","Authorization","response","error","status","Promise","reject","getSubscriptions","customerEmail","params","statusToSearch","validateEmail","test","Select","active","className","children","LineSearch","onClick","createdAt","lastPurchaseDate","nextPurchaseDate","purchaseSettings","shippingAddress","items","sub","subscriptionDate","Date","toLocaleDateString","lastPurchaseDateFormated","SelectStatus","list","onChange","selected","map","FilterBox","setSearchStatusSelected","searchStatusSelected","Flex","SearchBox","onSearch","disabled","value","setValue","useState","key","target","Farmacia","history","subs","setSubs","placeholder","subscriptions","length","onClickSubscription","style","paddingTop","justifyContent","TabSelector","React","Component","render","this","tabs","tab","selectedTab","handleClick","Title","title","PrescricaoCard","constructor","super","state","unlockModal","loading","unlockType","statusColor","toUpperCase","CodigoValidacao","setState","put","validationCode","cancelPurchase","unlockPrescrition","onPrescriptionUpdate","prescricao","DataModificacao","Paciente","Nome","IdPaciente","Celular","Email","Medico","Parceiro","color","fontWeight","Status","paddingLeft","Button","variant","TemVendaVTEX","Modal","show","onHide","Header","closeButton","Body","handleUnlock","PrescricoesLista","Container","lista","Loading","defaultState","buttonEnabled","codigo","celular","nome","idPaciente","textoBusca","BuscaPrescricao","handleInput","bind","handleSearch","setTextoBusca","obj","formatTextoBusca","fluid","Row","paddingBottom","Col","md","sm","xs","InputGroup","FormControl","block","label","BuscaPrescricaoContainer","getPrescricoes","searchObj","resultados","post","searchPrescriptions","err","alert","MedicoCard","confirmModal","editDocument","documentFormValue","doctorId","document","updateDoctorDocument","medico","IdMedico","onDoctorUpdate","formatConselho","RegistroProfissional","Conselho","Numero","UF","maxWidth","marginLeft","Documento","Especialidades","Sexo","handleConfirm","MedicosLista","Math","random","conselhos","ufs","BuscaMedico","conselho","numeroConselho","ufConselho","uf","numero","options","BuscaMedicoContainer","getDoctors","searchDoctors","Atendimento","handleTabClick","componentDidMount","event","text","innerText","Home","availableFeatures","handlePageClick","page","href","features","includes","src","atendimento","alt","dispensacao","base","pos","warehouse","delivery","settings","Logout","useEffect","MeuCadastro","username","name","clientId","buttonText","onLogoutSuccess","formatFeatures","feature","CriarEditarUsuario","usuario","isAdmin","handleAdmin","checked","userObj","userId","editUser","createUser","handleClose","onUserUpdate","actionText","Form","Check","type","isDisabled","isMulti","Footer","UsuarioCard","UsuariosLista","selectedUser","showModal","GerenciarCadastros","usuarios","GerenciarCadastrosContainer","getUserList","getUsers","console","log","Conta","PDV","orderId","prescription","resultsFor","selectedFile","handleFileChange","handleUpload","fileInputRef","createRef","files","prescriptionId","file","formData","FormData","append","uploadDocumentoITI","IdPrescricao","prevState","PDFUrlValidacaoITI","TextTrackCueList","payload","searchPrescriptionForPDV","DataCriacao","PrescricaoAssinada","Idade","TelefoneCelular","Endereco","Prescritor","Estabelecimento","Contato","TelefoneComercial","Itens","item","Label","Quantidade","Posologia","open","PDFUrl","margin","PDFUrlFormularioDispensacao","PDFUrlDocumentoConsolidado","Credencial","display","flexDirection","logo","backend_token","backend_url","sendCallFeedback","callId","isOptedOut","optOutReason","find","s","returnFeedback","OperationStatus","OptOut","OptIOutReason","getProductsFromCall","shippingEstimate","postalCode","CepModal","showCepModal","setShowCepModal","shipmentAvailability","setShipmentAvailability","setLoading","setPostalCode","shippingUrl","SUCCESS","PARTIAL_SUCCESS","cep","shipping","EnablePurchase","shippingCalculate","mask","AssistenciaFarmaceuticaButtons","enableNextCallButton","freezeButtons","setFreezeButtons","showNoInterestModal","setShowNoInterestModal","showNoContactModal","setShowNoContactModal","optIn","setOptIn","setOptOutReason","ButtonGroup","size","Group","controlId","Control","noInterestFeedback","noContactFeedback","GetNextCallButton","getNextCall","class","ScriptAssistance","setShow","border","LigacaoAtencaoFarmaceutica","call","showNextCallButton","setShowNextCallButton","mb","CallId","PatientName","PatientMobileNumber","BotaoCarrinhoWhatsapp","callback","PrescriptionGetCartModal","prescriptionCode","handleCreateCart","createCallForDirectCart","nextCall","setNextCall","openModal","setOpenModal","nextCallPOS","openPrescriptionCodeModal","path","Base","DetalhesFarmacia","useParams","setSub","subInfo","setSubInfo","checkoutInfo","getCheckoutInfo","userProfile","paymentId","paymentMethod","paymentAccountId","addressId","price","reduce","acum","priceAtSubscriptionDate","quantity","address","availableAddresses","payment","availableAccounts","accountId","activeOrPaused","showPauseButton","showUnpauseButton","showJumpButton","isSkipped","showUnjumpButton","changeSubscription","body","postSubscription","firstName","lastName","paymentSystemName","cardNumber","street","number","neighborhood","complement","city","ProductEcommerce","product","addProductToCart","eanQuantity","setEanQuantity","eanPrice","setEanPrice","eanList","setEanList","formatter","Intl","NumberFormat","currency","addQuantity","ean","newEanQuantity","newEanPrice","Dosage","ProductOptions","Alert","p","initialQuantity","undefined","EAN","Price","AvailableItens","format","removeQuantity","FreteButton","productAvailable","setFinalAddress","setFrete","addressInitialState","setError","setAddress","setShipping","freteChoosed","setFreteChoosed","query","search","useLocation","useMemo","URLSearchParams","useQuery","checkAddressNumberError","postalCodeToAddress","enablePurchaseShipping","filter","updateAddress","fieldName","fieldValue","chooseFrete","frete","shippingUnavailable","ShippingMethod","DeliveryTimeInMinutes","EstimatedDeliveryTime","ShippingPrice","ShippingPriceLabel","center","inline","BuscarMedicamentosModal","addProduct","searchTerm","setSearchTerm","products","setProducts","searchProductsByTerm","searchProducts","fullscreen","centered","FinalizarCompra","generalInfo","productsCart","totalPrice","cpf","setCpf","rg","setRg","setEmail","mobilePhone","setMobilePhone","birthDate","setBirthDate","PaymentType","setPaymentType","OrderStatus","setOrderStatus","errorCpf","setErrorCpf","errorRg","setErrorRg","errorBirthDate","setErrorBirthDate","validateCpf","validateRg","validateBirthDate","toggleAddress","setToggleAddress","toggleFrete","setToggleFrete","parameterCpf","match","parameterRg","parameterBirthDate","completeOrder","order","OrderItems","Object","keys","k","OrderShipping","BuyerEmail","BuyerMobilePhone","BuyerName","BuyerCPF","BuyerRG","BuyerBirthDate","AddressType","ZipCode","Address","AddressNumber","AddressComplement","AddressDistrict","AddressCity","AddressState","TotalValue","TotalDiscount","DiscountPercentage","DiscountCoupom","ShippingType","orderResponse","completeOrderService","as","column","isValid","plaintext","Quantity","cursor","marginTop","refuseOrder","VendaFarmacia","showPatientInfo","setShowPatientInfo","extraProducts","setExtraProducts","setProductsCart","setQuantity","total","setTotal","totalFrete","setTotalFrete","cartAvailability","setCartAvailability","setPrice","getProducts","newTotal","calulateCartAvailability","newQuantity","newPrice","newProductsCart","productsUnavailable","forEach","Medicines","pr","choosedProducts","PrecriptionCode","ReceiptDate","DoctorName","orderStauses","all","order_canceled","reasonText","externalOrderReference","order_completed","order_ready_to_delivery","order_placed","ListaPedidos","orders","setOrders","setFilter","refresh","setRefresh","getOrdersPOS","poollingForOrders","setTimeout","getOrders","changeFilter","OrderStatuses","o","Table","striped","bordered","hover","OrderId","OrderDate","Badge","EstoqueVirtualVTEX","filtro","filterText","filterResults","getResult","getQuantidadeAtendida","pedido","quantidadeAtendida","retornos","retorno","itens_pedido","quantidade_atendida","x","referencia_externa","data_pedido_cliente","arquivo_envios","modalidade_entrega","data_estimada_entrega","itens_consolidados","retornado","faturado","recebido","temProblema","motivoProblema","vtex_status","separacao","EstoqueVirtualVTEXContainer","getEVOrders","sort","a","b","substring","split","reverse","join","Warehouse","OrderStatusTransitions","copyToClipboard","navigator","clipboard","writeText","bg","ProcFitId","UnitPrice","TotalPrice","orderShippingObject","orderDetails","setOrderDetails","orderShipping","setOrderShipping","orderItems","setOrderItems","showJustification","setShowJustification","handleCloseJustification","clearNextStatus","showExternalOrderReference","setExternalOrderReference","handleCloseExternalOrderReference","nextStatus","setNextStatus","nextStatusJustification","setNextStatusJustification","nextExternalOrderReference","setNextExternalOrderReference","getOrderDetails","od","GetOrderDetails","checkStatusJustification","setStatus","ReasonText","ExternalOrderReference","rel","editable","onCha","String","FunilList","funil","FunilContainer","getFunilList","onFunilUpdate","Funil","FormularioEntrega","documentUrl","searchForPrescriptionOrder","RoutesManager","exact","AtencaoFarmaceutica","SvgFrameUser","stroke","strokeWidth","strokeMiterlimit","strokeLinecap","strokeLinejoin","y","rx","SvgLogoNexo","viewBox","transform","Navbar","isSignedIn","userName","AuthenticationDialog","loaded","useGoogleLogin","onLoad","loginHint","onSuccess","signIn","onAuthenticate","onFailure","onAuthenticateFail","cookiePolicy","Block","NavigationButton","permission","textDecoration","marginBottom","topNavList","bottomTabList","LeftNavigation","userFeatures","some","perms","App","googleLoaded","setGoogleLoaded","setUserFeatures","setUserName","fetchData","padding","alignItems","isOpen","ReactDOM","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.1f4ff14b.chunk.js","sourcesContent":["import * as React from \"react\";\n\nfunction SvgSearchFail(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default SvgSearchFail;\n","import { AuthService } from './AuthServices';\nimport {myAxios} from './axios';\n\nexport const getUsers = async () => {\n const response = await myAxios.get('/user/');\n return response.data;\n}\n\nexport const getUser = async (userEmail) => {\n const response = await myAxios.get(`/user/${userEmail}`);\n return response.data;\n}\n\nexport const getAuthenticatedUser = async () => {\n const loginUser = await AuthService.getCurrentAuthenticatedUser();\n const userEmail = loginUser?.email\n if (!userEmail) return\n const user = await getUser(userEmail);\n \n localStorage.setItem('nexoInfo', JSON.stringify(user));\n return user\n}\n\nexport const createUser = async (user) => {\n const response = await myAxios.post('/user/', user);\n return response.data;\n} \n\nexport const editUser = async (userId, user) => {\n const response = await myAxios.put(`/user/${userId}`, user);\n return response.data;\n}\n","import { getAuthenticatedUser } from \"./userService\";\n\nexport const AuthService = {\n async signIn(userInfo) {\n localStorage.setItem('jwt', userInfo?.tokenId);\n localStorage.setItem('userInfo', JSON.stringify(userInfo.profileObj));\n await getAuthenticatedUser();\n window.location.reload();\n },\n signOut() {\n window.sessionStorage.removeItem(\"access_token\");\n window.sessionStorage.removeItem(\"nama\");\n localStorage.removeItem('jwt');\n localStorage.removeItem('userInfo');\n localStorage.removeItem('nexoInfo');\n window.location.replace('/');\n },\n isSignIn() {\n const jwt = localStorage.getItem('jwt');\n const userInfo = localStorage.getItem('userInfo');\n const nexoInfo = localStorage.getItem('nexoInfo');\n return !!jwt && !!userInfo && !!nexoInfo\n },\n async getCurrentAuthenticatedUser(){\n try {\n const userInfo = localStorage.getItem('userInfo');\n return JSON.parse(userInfo);\n } catch (e) {\n return null;\n }\n },\n};\n","import { enviromentVariables } from '../vars';\nimport axios from 'axios';\nimport { AuthService } from './AuthServices';\n\nconst defaultOptions = {\n baseURL: enviromentVariables.backofficeApiUrl,\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n },\n};\n\nlet myAxios = axios.create(defaultOptions);\n\nmyAxios.interceptors.request.use(function (config) {\n const token = localStorage.getItem('jwt');\n config.headers.Authorization = token ? `Bearer ${token}` : '';\n return config;\n});\n\nmyAxios.interceptors.response.use(function (response) {\n return response;\n}, function (error) {\n if (error?.response?.status === 401) {\n AuthService.signOut();\n }\n return Promise.reject(error);\n});\n\nexport { myAxios }\n","export const enviromentVariables = {\n backofficeApiUrl: process.env.REACT_APP_BACKOFFICE_API_URL\n}","import {myAxios} from './axios'\n\nexport const getSubscriptions = async ({ customerEmail, status, id }) => {\n const response = await myAxios.get(`subscription/${id || ''}`, { params: { customerEmail, status } })\n return response.data\n}\n\nexport const postSubscription = async (id, body) => {\n const response = await myAxios.post(`subscription/${id || ''}`, body)\n return response.data\n}\n\nexport const getOrder = async order => {\n const response = await myAxios.get('subscription/order/' + order)\n return response.data\n}\n\nexport const getCheckoutInfo = async customerEmail => {\n const response = await myAxios.get('subscription/checkout', { params: { customerEmail }})\n return response.data\n}\n","import React from 'react'\nimport { Flex } from '../../App'\nimport './styles.css'\n\nexport const statusToSearch = [\n 'ACTIVE',\n 'PAUSED',\n 'CANCELED',\n 'EXPIRED'\n]\n\nexport const validateEmail = (email) => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)\n\nexport function Select({ active, ...props }) {\n const className = `sucess-buble ${!active && 'hidden'}`\n\n return (\n \n )\n}\n\nexport const LineSearch = ({ onClick, ...props }) => {\n const { customerEmail, status, createdAt, lastPurchaseDate, nextPurchaseDate, purchaseSettings, shippingAddress, items } = props?.sub\n const subscriptionDate = new Date(createdAt)?.toLocaleDateString('pt-BR')\n const lastPurchaseDateFormated = new Date(lastPurchaseDate)?.toLocaleDateString('pt-BR')\n\n return (\n <>\n
onClick(props.sub)}>\n
{customerEmail}
\n
{subscriptionDate}
\n
{lastPurchaseDateFormated}
\n
{status}
\n
\n \n )\n}\n\nexport function SelectStatus({ list, onChange, selected }) {\n return (\n <>\n {list.map(status => {\n return (\n onChange(() => selected === status ? '' : status)}\n />\n )})}\n \n )\n}\n\nexport const FilterBox = ({ statusToSearch, setSearchStatusSelected, searchStatusSelected }) => {\n return (\n
\n

filtrar por:

\n \n \n \n
\n )\n}","import React, { useState } from 'react';\nimport { Flex } from '../../App';\nimport SvgSearchFail from '../../assets/svg/SearchFail';\nimport { getSubscriptions } from '../../services/subscription';\nimport {\n FilterBox,\n statusToSearch,\n validateEmail,\n LineSearch,\n} from './components';\nimport './styles.css';\n\nfunction SearchBox({ onSearch, disabled = () => false, ...props }) {\n const [value, setValue] = useState();\n\n return (\n \n setValue(key.target.value)}\n {...{ ...props }}\n />\n onSearch(value)}\n disabled={!disabled(value)}\n >\n buscar\n \n \n );\n}\n\nfunction Farmacia({ history }) {\n const [searchStatusSelected, setSearchStatusSelected] = useState();\n const [subs, setSubs] = useState(null);\n\n async function onSearch(customerEmail) {\n setSearchStatusSelected(null);\n const subscriptions = await getSubscriptions({ customerEmail });\n setSubs(subscriptions);\n }\n\n const onClickSubscription = async (e) => {\n if (!e?.id) return;\n window.location.replace('/dispensacao/' + e.id);\n };\n\n return (\n
\n \n \n {subs?.length || subs === null ? (\n subs?.map(\n (sub) =>\n (!searchStatusSelected || searchStatusSelected === sub?.status) && (\n onClickSubscription(sub)} sub={sub} />\n )\n )\n ) : (\n \n \n \n )}\n
\n );\n}\n\nexport default Farmacia;\n","import React from 'react';\nimport './styles.css';\n\nclass TabSelector extends React.Component {\n render() {\n return (\n
\n {\n this.props.tabs.map(tab => (\n
\n {tab}\n
\n ))\n } \n
\n );\n }\n}\n\nexport default TabSelector;","import React from 'react';\nimport './styles.css';\n\nclass Title extends React.Component {\n render() {\n return (\n
\n
\n {this.props.title}\n
\n
);\n }\n }\n\nexport default Title;","import React from 'react';\nimport {Button, Modal} from 'react-bootstrap';\nimport './styles.css';\nimport { BsFillUnlockFill } from 'react-icons/bs';\nimport { unlockPrescrition, cancelPurchase } from '../../services/prescriptionService';\n\nclass PrescricaoCard extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n unlockModal: false,\n loading: false,\n unlockType: null\n }\n }\n\n statusColor(status){\n status = status.toUpperCase();\n if(status === \"BLOQUEADA\"){\n return 'red';\n }\n \n if(status === \"INICIADA\") {\n return 'orange';\n } \n\n if(status === \"EMITIDA\") {\n return 'green';\n }\n }\n\n async handleUnlock(CodigoValidacao){\n this.setState({loading: true})\n if(this.state.unlockType === 'venda-vtex'){\n await cancelPurchase(CodigoValidacao);\n } else {\n await unlockPrescrition(CodigoValidacao);\n }\n this.setState({unlockModal: false, loading: false})\n this.props.onPrescriptionUpdate();\n }\n\n render() {\n return (\n
\n
\n
\n Código: {this.props.prescricao.CodigoValidacao}\n
\n
\n Data: {this.props.prescricao.DataModificacao}\n
\n
\n
\n
\n Paciente: {this.props.prescricao.Paciente.Nome}\n
\n
\n ID: {this.props.prescricao.Paciente.IdPaciente}\n
\n
\n Celular: {this.props.prescricao.Paciente.Celular}\n
\n
\n Email: {this.props.prescricao.Paciente.Email}\n
\n
\n Médico: {this.props.prescricao.Medico.Nome}\n
\n
\n Parceiro: {this.props.prescricao.Parceiro}\n
\n
\n
\n
\n STATUS:\n \n {this.props.prescricao.Status}\n \n
\n
\n {\n this.props.prescricao.Status.toUpperCase() === \"BLOQUEADA\" ?\n \n :\n null\n }\n
\n
\n {\n this.props.prescricao.TemVendaVTEX ? \n \n :\n null\n }\n
\n
\n {\n this.state.unlockModal ? \n this.setState({unlockModal: false})}>\n \n \n {\n this.state.unlockType === 'venda-vtex' ?\n \"Confirmar cancelamento de venda?\"\n :\n \"Confirmar desbloqueio da receita?\"\n } \n \n \n \n
\n \n \n
\n
\n
\n :\n null\n }\n
\n );\n }\n}\n\nexport default PrescricaoCard;","import {myAxios} from './axios';\n\nexport const unlockPrescrition = async (validationCode) => {\n const response = await myAxios.put(`/prescription/${validationCode}/unlock`);\n return response.data;\n}\n\nexport const cancelPurchase = async (validationCode) => {\n const response = await myAxios.put(`/prescription/${validationCode}/cancelPurchase`);\n return response.data;\n}\n\nexport const searchPrescriptions = async (searchObj) => {\n const data = searchObj;\n const response = await myAxios.post('/prescription/search', data);\n return response.data;\n}\n\n\nexport const searchPrescriptionForPDV = async (searchObj) => {\n const data = searchObj;\n const response = await myAxios.post('/prescription/pdv', data);\n return response.data;\n}","import React from 'react';\nimport {Container} from 'react-bootstrap';\nimport PrescricaoCard from '../PrescricaoCard';\n\nclass PrescricoesLista extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n\n }\n }\n\n render() {\n return (\n \n {this.props.lista.map(prescricao => (\n \n ))}\n \n );\n }\n}\n\nexport default PrescricoesLista;","import './styles.css';\nconst Loading = () => {\n return (\n
carregando...
\n );\n}\n\nexport default Loading;","import React from 'react';\nimport { Container, Row, Col, FormControl, InputGroup, Button } from 'react-bootstrap';\nimport PrescricoesLista from '../PrescricoesLista';\nimport Loading from '../Loading';\nimport './styles.css';\n\nconst defaultState = {\n buttonEnabled: false,\n codigo: '',\n email: '',\n celular: '',\n nome: '',\n idPaciente: '',\n textoBusca: ''\n}\n\nclass BuscaPrescricao extends React.Component {\n constructor(props) {\n super(props);\n this.state = defaultState\n this.handleInput = this.handleInput.bind(this);\n this.handleSearch = this.handleSearch.bind(this);\n this.setTextoBusca = this.setTextoBusca.bind(this);\n }\n\n handleInput(e, state){\n this.setState({[state]: e.target.value}, () => {\n const buttonEnabled = !!this.state.codigo || !!this.state.email || !!this.state.celular || !!this.state.nome || !!this.state.idPaciente;\n this.setState({buttonEnabled});\n });\n }\n\n handleSearch(){\n const obj = {\n codigo: this.state.codigo,\n email: this.state.email,\n celular: this.state.celular,\n nome: this.state.nome,\n id: !!this.state.idPaciente ? this.state.idPaciente : null\n }\n this.props.onPrescriptionUpdate(obj);\n this.setTextoBusca();\n this.setState({\n buttonEnabled: false,\n codigo: '',\n email: '',\n celular: '',\n nome: '',\n idPaciente: ''\n });\n }\n\n formatTextoBusca(){\n if(this.state.codigo){\n return `Codigo Validação ${this.state.codigo}`\n } \n if(this.state.idPaciente){\n return `idPaciente ${this.state.idPaciente}`\n }\n if(this.state.celular){\n return `Celular ${this.state.celular}`\n }\n if(this.state.email){\n return `Email ${this.state.email}`\n }\n if(this.state.nome){\n return `Nome paciente ${this.state.nome}`\n }\n }\n\n setTextoBusca(){\n this.setState({textoBusca: this.formatTextoBusca()});\n }\n\n render() {\n return (\n \n \n Busca de prescrições com base no paciente. Ao menos um campo é obrigatório:\n \n \n \n \n
\n \n this.handleInput(e,'codigo')}\n /> \n \n
\n \n {/*\n
\n \n this.handleInput(e,'email')}\n /> \n \n
\n */}\n \n
\n \n this.handleInput(e,'celular')}\n /> \n \n
\n \n {/*\n
\n \n this.handleInput(e,'nome')}\n /> \n \n
\n */}\n \n
\n \n this.handleInput(e,'idPaciente')}\n /> \n \n
\n \n \n \n BUSCAR\n \n \n
\n \n \n \n \n
\n

Mostrando resultados para {this.state.textoBusca}:

\n
\n {\n this.props.loading ?\n \n :\n \n }\n \n
\n
\n );\n }\n}\n\nexport default BuscaPrescricao;","import React from 'react';\nimport BuscaPrescricao from '../../components/BuscaPrescricao';\nimport { searchPrescriptions } from '../../services/prescriptionService';\n\nclass BuscaPrescricaoContainer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lista: [],\n loading: false,\n }\n this.getPrescricoes = this.getPrescricoes.bind(this);\n }\n\n async getPrescricoes(searchObj){\n this.setState({loading: true});\n let resultados = []\n if(!!searchObj){\n try {\n resultados = await searchPrescriptions(searchObj);\n } catch(err){\n alert(\"Erro ao buscar prescrições.\")\n }\n }\n this.setState({lista: resultados, loading: false});\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport default BuscaPrescricaoContainer;","import React from 'react';\nimport {FormControl, Button, Modal} from 'react-bootstrap';\nimport './styles.css';\nimport { BsPencil, BsCheck, BsX } from 'react-icons/bs';\nimport { updateDoctorDocument } from '../../services/doctorService';\n\nclass MedicoCard extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n confirmModal: false,\n editDocument: false,\n documentFormValue: null,\n loading: false,\n }\n }\n\n async handleConfirm(){\n this.setState({loading: true})\n if(!!this.state.documentFormValue){\n await updateDoctorDocument(this.props.medico.IdMedico,this.state.documentFormValue)\n }\n this.setState({loading:false, editDocument: false});\n this.props.onDoctorUpdate();\n }\n\n handleInput(e, state){\n this.setState({[state]: e.target.value});\n }\n\n \n formatConselho(){\n const conselho = `${this.props.medico.RegistroProfissional.Conselho}-${this.props.medico.RegistroProfissional.Numero}/${this.props.medico.RegistroProfissional.UF}`\n return conselho\n }\n\n render() {\n return (\n
\n
\n
\n Nome: {this.props.medico.Nome}\n
\n
\n CRM: {this.formatConselho()}\n
\n
\n
\n {\n !this.state.editDocument ?\n
\n \n Documento: {this.props.medico.Documento}\n \n \n this.setState({editDocument: true})}\n className='icon-button'\n />\n \n
\n :\n
\n this.handleInput(e,'documentFormValue')}\n /> \n \n this.setState({editDocument: false})}\n className='icon-button'\n />\n \n \n this.setState({confirmModal: true})}\n className='icon-button'\n />\n \n
\n }\n \n
\n Especialidades: {this.props.medico.Especialidades}\n
\n
\n Sexo: {this.props.medico.Sexo}\n
\n
\n {\n this.state.confirmModal ? \n this.setState({confirmModal: false})}>\n \n \n Confirmar edição?\n \n \n \n
\n \n \n
\n
\n
\n :\n null\n }\n
\n );\n }\n}\n\nexport default MedicoCard;","import { myAxios } from './axios';\n\nexport const searchDoctors = async (searchObj) => {\n const response = await myAxios.post('/doctor/search',searchObj);\n return response.data;\n}\n\nexport const updateDoctorDocument = async (doctorId, document) => {\n const response = await myAxios.put(`/doctor/${doctorId}/document?document=${document}`);\n return response.data;\n}\n","import React from 'react';\nimport {Container} from 'react-bootstrap';\nimport MedicoCard from '../MedicoCard';\n\n\nclass MedicosLista extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n\n }\n }\n\n render() {\n return (\n \n {this.props.lista.map(medico => (\n \n ))}\n \n );\n }\n}\n\nexport default MedicosLista;","import React from 'react';\nimport { Container, Row, Col, FormControl, InputGroup, Button } from 'react-bootstrap';\nimport Select from 'react-select';\nimport Loading from '../Loading';\nimport './styles.css';\nimport MedicosLista from '../MedicosLista';\n\nconst conselhos = [\n {label: 'CRM', value: 'CRM'},\n {label: 'CRP', value: 'CRP'},\n {label: 'COREN', value: 'COREN'},\n {label: 'CRO', value: 'CRO'},\n {label: 'CREFITO', value: 'CREFITO'},\n];\n\nconst ufs = [\n {label: 'AC', value: 'AC'},\n {label: 'AL', value: 'AL'},\n {label: 'AP', value: 'AP'},\n {label: 'AM', value: 'AM'},\n {label: 'BA', value: 'BA'},\n {label: 'CE', value: 'CE'},\n {label: 'ES', value: 'ES'},\n {label: 'GO', value: 'GO'},\n {label: 'MA', value: 'MA'},\n {label: 'MT', value: 'MT'},\n {label: 'MS', value: 'MS'},\n {label: 'MG', value: 'MG'},\n {label: 'PA', value: 'PA'},\n {label: 'PB', value: 'PB'},\n {label: 'PR', value: 'PR'},\n {label: 'PE', value: 'PE'},\n {label: 'PI', value: 'PI'},\n {label: 'RJ', value: 'RJ'},\n {label: 'RN', value: 'RN'},\n {label: 'RS', value: 'RS'},\n {label: 'RO', value: 'RO'},\n {label: 'RR', value: 'RR'},\n {label: 'SC', value: 'SC'},\n {label: 'SP', value: 'SP'},\n {label: 'SE', value: 'SE'},\n {label: 'TO', value: 'TO'},\n {label: 'DF', value: 'DF'},\n]\n\n\n\nclass BuscaMedico extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n buttonEnabled: false,\n nome: null,\n conselho: null,\n numeroConselho: null,\n ufConselho: null,\n }\n this.handleInput = this.handleInput.bind(this);\n this.handleSearch = this.handleSearch.bind(this);\n }\n\n handleInput(e, state){\n this.setState({[state]: e.target.value}, () => {\n const buttonEnabled = !!this.state.conselho || !!this.state.ufConselho || !!this.state.numeroConselho\n || !!this.state.nome;\n this.setState({buttonEnabled});\n });\n }\n\n handleSearch(){\n const obj = {\n uf: !!this.state.ufConselho ? this.state.ufConselho.value : null,\n numero: this.state.numeroConselho,\n conselho: !!this.state.conselho ? this.state.conselho.value : null,\n nome: this.state.nome\n }\n this.props.onDoctorUpdate(obj);\n }\n\n render() {\n return (\n \n \n Busca de médicos na plataforma. Ao menos um campo é obrigatório:\n \n \n \n \n
\n \n this.handleInput(e,'nome')}\n /> \n \n
\n \n \n
\n this.setState({ufConselho: e})}\n />\n
\n \n \n \n BUSCAR\n \n \n
\n \n \n \n \n
\n

Resultados:

\n
\n {\n this.props.loading ?\n \n :\n \n }\n \n
\n
\n );\n }\n}\n\nexport default BuscaMedico;","import React from 'react';\nimport BuscaMedico from '../../components/BuscaMedico';\nimport { searchDoctors } from '../../services/doctorService';\n\nclass BuscaMedicoContainer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lista: [],\n loading: false\n }\n this.getDoctors = this.getDoctors.bind(this);\n }\n\n async getDoctors(searchObj){\n this.setState({loading: true});\n let resultados = []\n if(!!searchObj){\n try {\n resultados = await searchDoctors(searchObj);\n } catch(err){\n alert(\"Erro ao buscar médicos.\")\n }\n }\n this.setState({lista: resultados, loading: false});\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport default BuscaMedicoContainer;","import React from 'react';\nimport {Container, Row, Col} from 'react-bootstrap';\nimport TabSelector from '../../components/TabSelector';\nimport Title from '../../components/Title';\nimport './styles.css';\nimport BuscaPrescricaoContainer from '../../containers/Atendimento/BuscaPrescricaoContainer';\nimport BuscaMedicoContainer from '../../containers/Atendimento/BuscaMedicoContainer';\n\nclass Atendimento extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n tabs: ['BUSCA','CADASTRO MÉDICO'],\n selectedTab: 'BUSCA'\n }\n this.handleTabClick = this.handleTabClick.bind(this);\n }\n componentDidMount() {\n\n }\n\n handleTabClick(event){\n const text = event.target.innerText;\n this.setState({selectedTab: text});\n }\n\n\n render() {\n return (\n \n \n \n \n </Col>\n </Row>\n <TabSelector\n tabs={this.state.tabs}\n selectedTab={this.state.selectedTab}\n handleClick={this.handleTabClick}\n />\n <Row>\n <Col>\n {\n this.state.selectedTab === 'BUSCA' ?\n <BuscaPrescricaoContainer \n />\n :\n null\n }\n {\n this.state.selectedTab === 'CADASTRO MÉDICO' ?\n <BuscaMedicoContainer\n />\n :\n null\n }\n </Col>\n </Row>\n </Container>\n );\n }\n}\n\nexport default Atendimento;","export default __webpack_public_path__ + \"static/media/base.ed12e0ec.png\";","export default __webpack_public_path__ + \"static/media/pos.96a414c1.png\";","export default __webpack_public_path__ + \"static/media/warehouse.0afa4140.png\";","export default __webpack_public_path__ + \"static/media/dispensacao.6004e2f8.png\";","export default __webpack_public_path__ + \"static/media/settings.94af2cde.png\";","export default __webpack_public_path__ + \"static/media/atendimento.0e010fad.png\";","export default __webpack_public_path__ + \"static/media/delivery-form.c06c8c4e.jpg\";","import React from 'react';\nimport {Container, Row, Col} from 'react-bootstrap';\nimport Title from '../../components/Title';\nimport base from '../../assets/images/base.png';\nimport credentials from '../../assets/images/credentials.png';\nimport pos from '../../assets/images/pos.png';\nimport warehouse from '../../assets/images/warehouse.png';\nimport dispensacao from '../../assets/images/dispensacao.png';\nimport settings from '../../assets/images/settings.png';\nimport atendimento from '../../assets/images/atendimento.png';\nimport delivery from '../../assets/images/delivery-form.jpg';\nimport './styles.css';\nimport { getAuthenticatedUser } from '../../services/userService';\n\n\nclass Home extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n availableFeatures: []\n }\n }\n\n handlePageClick(page){\n window.location.href=`/${page}`;\n }\n\n async componentDidMount() {\n const user = await getAuthenticatedUser();\n this.setState({availableFeatures: user.features})\n }\n\n render() {\n return (\n <Container fluid>\n <Row>\n <Col>\n <Title title={'Bem-vindo'} />\n </Col>\n </Row>\n <Row>\n <Col>\n <h5>Acesse nossas páginas: </h5>\n </Col>\n </Row>\n <Row>\n {\n this.state?.availableFeatures?.includes(\"ATENDIMENTO\") ?\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('atendimento')}>\n <div>\n <img className='page-icon' src={atendimento} alt=\"aten\" />\n </div> \n <div>\n <span>Atendimento</span>\n </div> \n </div>\n </Col>\n :\n null\n }\n {\n this.state?.availableFeatures?.includes(\"DISPENSAÇÃO\") ?\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('dispensacao')}>\n <div>\n <img className='page-icon' src={dispensacao} alt=\"aten\" />\n </div> \n <div>\n <span>Dispensação</span>\n </div>\n </div>\n </Col>\n :\n null\n }\n {\n this.state?.availableFeatures?.includes(\"BASE\") ?\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('base')}>\n <div>\n <img className='page-icon' src={base} alt=\"aten\" />\n </div>\n <div>\n <span>Base</span>\n </div> \n </div>\n </Col>\n :\n null\n }\n {\n this.state?.availableFeatures?.includes(\"CREDENCIAIS\") ?\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('credenciais')}>\n <div>\n <img className='page-icon' src={credentials} alt=\"aten\" />\n </div>\n <div>\n <span>Credenciais</span> \n </div>\n </div>\n </Col>\n :\n null\n }\n {\n this.state?.availableFeatures?.includes(\"PDV\") ?\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('pdv')}>\n <div>\n <img className='page-icon' src={pos} alt=\"pdv\" />\n </div>\n <div>\n <span>PDV</span>\n </div> \n </div>\n </Col>\n :\n null\n }\n {\n this.state?.availableFeatures?.includes(\"ESTOQUE\") ?\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('estoque')}>\n <div>\n <img className='page-icon' src={warehouse} alt=\"estoque\" />\n </div>\n <div>\n <span>Estoque</span>\n </div> \n </div>\n </Col>\n :\n null\n }\n {\n this.state?.availableFeatures?.includes(\"FORMULARIO-ENTREGA\") ?\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('formulario-entrega')}>\n <div>\n <img className='page-icon' src={delivery} alt=\"formulario-entrega\" />\n </div>\n <div>\n <span>Formulario de Entrega</span>\n </div> \n </div>\n </Col>\n :\n null\n }\n <Col>\n <div className='page-icon-container' onClick={() => this.handlePageClick('conta')}>\n <div>\n <img className='page-icon' src={settings} alt=\"aten\" />\n </div>\n <div>\n <span>Conta</span>\n </div> \n </div>\n </Col>\n </Row>\n </Container>\n );\n }\n}\n\nexport default Home;","export default \"data:image/png;base64,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\"","import React, { useEffect } from \"react\";\nimport { AuthService } from \"../services/AuthServices\";\n\nfunction Logout() {\n useEffect(() => {AuthService.signOut()})\n return <div>deslogando</div>\n}\n\nexport default Logout\n","import React from 'react';\nimport {Container, Row } from 'react-bootstrap';\nimport './styles.css';\nimport { AuthService } from '../../services/AuthServices';\nimport { GoogleLogout } from 'react-google-login';\nconst clientId = process.env.REACT_APP_CLIENT_ID;\n\nclass MeuCadastro extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n username: ''\n }\n\n }\n async componentDidMount() {\n const user = await AuthService.getCurrentAuthenticatedUser();\n this.setState({username: user.name })\n }\n\n render() {\n return (\n <Container fluid className='meu-cadastro-container'>\n <Row>\n <h5>\n Olá, <strong>{this.state.username}!</strong> \n </h5>\n </Row>\n <Row>\n <GoogleLogout\n clientId={clientId}\n buttonText=\"Deslogar\"\n onLogoutSuccess={() => AuthService.signOut()}\n />\n </Row>\n </Container>\n );\n }\n}\n\nexport default MeuCadastro;","import React from 'react';\nimport {Row, Col, FormControl, InputGroup, Button, Form, Modal} from 'react-bootstrap';\nimport './styles.css';\nimport Select from 'react-select';\nimport { createUser, editUser } from '../../services/userService';\n\nconst features = [\n {label: 'DISPENSAÇÃO', value: 'DISPENSAÇÃO'},\n {label: 'ATENDIMENTO', value: 'ATENDIMENTO'},\n {label: 'BASE', value: 'BASE'},\n {label: 'CREDENCIAIS', value: 'CREDENCIAIS'},\n {label: 'PDV', value: 'PDV'}\n];\n\nconst formatFeatures = (features) => {\n return features.map(feature => ({\n label: feature,\n value: feature\n }));\n}\n\nclass CriarEditarUsuario extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n nome: this.props.usuario ? this.props.usuario.nome : '',\n email: this.props.usuario ? this.props.usuario.email : '',\n isAdmin: this.props.usuario ? this.props.usuario.isAdmin : false,\n features: this.props.usuario ? formatFeatures(this.props.usuario.features) : [],\n loading: false\n }\n this.handleInput = this.handleInput.bind(this);\n this.handleAdmin = this.handleAdmin.bind(this);\n this.handleConfirm = this.handleConfirm.bind(this);\n }\n componentDidMount() {\n\n }\n\n handleInput(e, state){\n this.setState({[state]: e.target.value});\n }\n\n handleAdmin(event){\n const on = event.target.checked;\n if(on){\n this.setState({isAdmin: true, features: features});\n } else {\n this.setState({isAdmin: false});\n }\n }\n\n async handleConfirm(){\n this.setState({loading: true});\n const userObj = {\n nome: this.state.nome,\n email: this.state.email,\n features: this.state.features.map(feature => feature.value),\n isAdmin: this.state.isAdmin\n }\n try {\n if (this.props.usuario != null){\n await editUser(this.props.usuario.id,userObj)\n } else {\n await createUser(userObj);\n }\n this.props.handleClose();\n } catch (err) {\n alert(\"Erro ao cocluir operação.\", err.data);\n }\n this.setState({loading: false});\n this.props.onUserUpdate();\n }\n\n render() {\n const actionText = this.props.usuario != null? \"EDITAR\" : \"CRIAR\";\n return (\n <Modal show={this.props.show} onHide={this.props.handleClose}>\n <Modal.Header closeButton>\n <Modal.Title>\n {actionText} usuário\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Row>\n <Col md='auto' sm='auto' xs='12'>\n <div className='form-container'>\n <span>Email: </span>\n <InputGroup>\n <FormControl\n value={this.state.email}\n disabled={this.props.usuario != null}\n placeholder='Email'\n onChange = {(e) => this.handleInput(e,'email')}\n /> \n </InputGroup>\n </div>\n </Col>\n <Col md='auto' sm='auto' xs='12'>\n <div className='form-container'>\n <span>Nome: </span>\n <InputGroup>\n <FormControl\n value={this.state.nome}\n placeholder='Nome'\n onChange = {(e) => this.handleInput(e,'nome')}\n /> \n </InputGroup>\n </div>\n </Col>\n <Col md='auto' sm='12' xs='auto'>\n <div className='form-container'>\n\n </div>\n </Col>\n </Row>\n <Row>\n <Col md='auto' sm='12' xs='auto'>\n <div className='form-container'>\n <span>Administrador: </span>\n <Form>\n <Form.Check \n checked={this.state.isAdmin}\n type=\"switch\"\n id=\"admin-switch\"\n style={{width:'100px'}}\n onChange={this.handleAdmin}\n />\n </Form>\n </div>\n </Col>\n </Row>\n <Row>\n <Col md='12' sm='12' xs='12'>\n <div className='form-container'>\n <span>Permissões: </span>\n <Select \n isDisabled={this.state.isAdmin === true}\n isMulti\n options={features} \n placeholder='Funcionalidades'\n value={this.state.features}\n onChange={(e) => this.setState({features: e})}\n />\n </div>\n </Col>\n </Row>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"light\" \n onClick={this.props.handleClose}>\n CANCELAR\n </Button>\n <Button variant=\"success\" \n disabled={this.state.loading}\n onClick={this.handleConfirm}>\n {this.state.loading ? `${actionText}...` : actionText}\n </Button>\n </Modal.Footer>\n </Modal>\n );\n }\n}\n\nexport default CriarEditarUsuario;","import React from 'react';\nimport {Container, Row} from 'react-bootstrap';\nimport './styles.css';\n\nclass UsuarioCard extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n }\n\n }\n componentDidMount() {\n\n }\n\n render() {\n return (\n <Container fluid className='usuario-card-container'\n onClick={() => this.props.handleClick(this.props.usuario)}>\n <Row className='usuario-card-title'>\n <div>\n <strong>{this.props.usuario.nome}</strong>\n </div>\n {\n this.props.usuario.isAdmin ?\n <div>admin</div>\n :\n ''\n }\n </Row>\n </Container>\n );\n }\n}\n\nexport default UsuarioCard;","import React from 'react';\nimport {Container, Row} from 'react-bootstrap';\nimport CriarEditarUsuario from '../CriarEditarUsuario';\nimport Loading from '../Loading';\nimport UsuarioCard from '../UsuarioCard';\nimport './styles.css';\n\nclass UsuariosLista extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedUser: null\n }\n\n }\n componentDidMount() {\n\n }\n\n render() {\n return (\n <Container fluid className='usuarios-lista-container'>\n {\n this.props.loading ? \n <Loading/>\n :\n this.props.lista.map(usuario => (\n <Row key={usuario.id}>\n <UsuarioCard\n handleClick={(user) => this.setState({selectedUser: user, showModal: true})}\n usuario={usuario}\n />\n </Row>\n ))\n }\n {\n this.state.showModal ? \n <CriarEditarUsuario\n show={this.state.showModal}\n handleClose={() => this.setState({showModal: false})}\n usuario={this.state.selectedUser}\n onUserUpdate={this.props.onUserUpdate}\n />\n :\n null\n }\n </Container>\n );\n }\n}\n\nexport default UsuariosLista;","import React from 'react';\nimport {Container, Row, Button} from 'react-bootstrap';\nimport './styles.css';\nimport UsuariosLista from '../UsuariosLista';\nimport CriarEditarUsuario from '../CriarEditarUsuario';\n\nclass GerenciarCadastros extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showModal: false,\n }\n }\n componentDidMount() {\n\n }\n\n render() {\n return (\n <Container fluid className='gerenciar-cadastros-container'>\n <Row>\n <Button onClick={() => this.setState({showModal: true})}> \n Novo cadastro\n </Button>\n </Row>\n <Row>\n <UsuariosLista\n lista={this.props.usuarios}\n onUserUpdate={this.props.onUserUpdate}\n />\n </Row>\n {\n this.state.showModal ? \n <CriarEditarUsuario\n show={this.state.showModal}\n handleClose={() => this.setState({showModal: false})}\n onUserUpdate={this.props.onUserUpdate}\n />\n :\n null\n }\n </Container>\n );\n }\n}\n\nexport default GerenciarCadastros;","import React from 'react';\nimport { getUsers } from '../../services/userService';\nimport GerenciarCadastros from '../../components/GerenciarCadastros';\n\nclass GerenciarCadastrosContainer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n usuarios: [],\n loading: false,\n }\n this.getUserList = this.getUserList.bind(this);\n }\n\n async getUserList(){\n this.setState({loading: true});\n let resultados = [];\n try {\n resultados = await getUsers();\n }\n catch(err) {\n console.log(\"erro ao buscar usuários cadastrados.\", err)\n }\n this.setState({usuarios: resultados, loading: false});\n }\n\n async componentDidMount(){\n await this.getUserList();\n } \n\n render() {\n return (\n <GerenciarCadastros\n usuarios={this.state.usuarios}\n loading={this.state.loading}\n onUserUpdate={this.getUserList}\n />\n );\n }\n}\n\nexport default GerenciarCadastrosContainer;","import React from 'react';\nimport {Container, Row, Col} from 'react-bootstrap';\nimport TabSelector from '../../components/TabSelector';\nimport Title from '../../components/Title';\nimport './style.css';\nimport MeuCadastro from '../../components/MeuCadastro';\nimport GerenciarCadastrosContainer from '../../containers/Conta/GerenciarCadastrosContainer';\nimport { getAuthenticatedUser } from '../../services/userService';\n\n\nclass Conta extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n tabs: ['PERFIL','CADASTROS'],\n selectedTab: 'PERFIL'\n }\n this.handleTabClick = this.handleTabClick.bind(this);\n }\n async componentDidMount() {\n const user = await getAuthenticatedUser();\n if(user.isAdmin){\n this.setState({tabs: ['PERFIL','CADASTROS']})\n } else {\n this.setState({tabs: ['PERFIL']})\n }\n }\n\n handleTabClick(event){\n const text = event.target.innerText;\n this.setState({selectedTab: text});\n }\n\n render() {\n return (\n <Container fluid>\n <Row>\n <Col>\n <Title title={'CONTA'} />\n </Col>\n </Row>\n <TabSelector\n tabs={this.state.tabs}\n selectedTab={this.state.selectedTab}\n handleClick={this.handleTabClick}\n />\n <Row>\n <Col>\n {\n this.state.selectedTab === 'PERFIL' ?\n <MeuCadastro\n />\n :\n null\n }\n {\n this.state.selectedTab === 'CADASTROS' ?\n <GerenciarCadastrosContainer\n />\n :\n null\n }\n </Col>\n </Row>\n </Container>\n );\n }\n}\n\nexport default Conta;","import React from 'react';\nimport {Container, Row, Col, FormControl, InputGroup, Button } from 'react-bootstrap';\nimport Title from '../../components/Title';\nimport Loading from '../../components/Loading';\nimport { getAuthenticatedUser } from '../../services/userService';\nimport { searchPrescriptionForPDV } from '../../services/prescriptionService';\nimport { uploadDocumentoITI } from '../../services/documentService';\nimport './styles.css'\n\n\nclass PDV extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n orderId: '',\n prescription: null,\n resultsFor: '',\n loading: false,\n selectedFile: null\n }\n this.handleSearch = this.handleSearch.bind(this);\n this.handleInput = this.handleInput.bind(this);\n this.handleFileChange = this.handleFileChange.bind(this);\n this.handleUpload = this.handleUpload.bind(this);\n this.fileInputRef = React.createRef()\n }\n\n async handleFileChange(event) {\n this.setState({\n selectedFile: event.target.files[0]\n });\n }\n \n async handleUpload() {\n if (!this.state.selectedFile) {\n alert('Por favor, selecione um arquivo.');\n return;\n }\n try {\n const response = await uploadDocumentoITI(this.state.prescription.IdPrescricao,this.state.selectedFile);\n this.setState(prevState => ({\n prescription: {\n ...prevState.prescription,\n PDFUrlValidacaoITI: response\n }\n }));\n } catch (error) {\n console.error('Error occurred during file upload:', error);\n }\n }\n\n handlePageClick(page){\n window.location.href=`/${page}`;\n }\n\n handleInput(e, state){\n this.setState({[state]: e.target.value}, () => {\n const buttonEnabled = !!this.state.codigo || !!this.state.email || !!this.state.celular || !!this.state.nome || !!this.state.idPaciente;\n this.setState({buttonEnabled});\n });\n }\n\n async componentDidMount() {\n const user = await getAuthenticatedUser();\n this.setState({availableFeatures: user.features})\n }\n\n async handleSearch(){\n this.setState({loading: TextTrackCueList})\n const payload = {\n \"orderId\": this.state.orderId\n }\n const prescription = await searchPrescriptionForPDV(payload);\n this.setState({prescription, orderId: '', resultsFor: this.state.orderId, loading: false});\n }\n\n render() {\n return (\n <Container fluid>\n <Row>\n <Col>\n <Title title={'Conferência de receita de pedidos:'} />\n </Col>\n </Row>\n <Row>\n <Col md='5' sm='12' xs='5'>\n <div className='form-container'>\n <InputGroup>\n <FormControl\n value={this.state.orderId}\n placeholder='Código do pedido'\n onChange = {(e) => this.handleInput(e,'orderId')}\n /> \n </InputGroup>\n </div>\n </Col>\n <Col md='auto' sm='auto' xs='auto'>\n <Button\n className=\"btn\"\n variant=\"info\"\n block\n onClick={this.handleSearch}\n disabled={!this.state.orderId}\n label={'BUSCAR'}>\n BUSCAR\n </Button>\n </Col>\n </Row> \n {\n this.state.loading ? \n <Row>\n <Loading/>\n </Row>\n :\n null\n } \n {\n this.state.prescription === null ?\n <h4> Nenhuma receita listada </h4> :\n <Row style={{paddingTop: '40px'}}>\n <Col md='auto' sm='auto' xs='auto'>\n <div>\n <h4> Mostrando resultados para: {this.state.resultsFor} </h4>\n <div className='prescricao-container'>\n <span>DATA PRESCRIÇÃO: <strong>{this.state.prescription.DataCriacao}</strong></span>\n <span>CÓDIGO DA RECEITA: <strong>{this.state.prescription.CodigoValidacao}</strong></span>\n {\n this.state.prescription.PrescricaoAssinada ?\n <span className='card-receita-assinada'>RECEITA ASSINADA</span>:\n <span className='card-receita-n-assinada'>RECEITA NÃO ASSINADA</span>\n } \n <div className='prescription-label-container'> \n <div className='prescription-label'>\n <h3> Paciente </h3>\n </div> \n <div>\n <span>Nome: {this.state.prescription.Paciente.Nome}</span> \n </div> \n <div>\n <span>Idade: {this.state.prescription.Paciente.Idade}</span>\n </div>\n <div>\n <span>Telefone: {this.state.prescription.TelefoneCelular}</span>\n </div> \n <div>\n <span>Sexo: {this.state.prescription.Paciente.Sexo}</span>\n </div> \n <div>\n <span>Endereço: {this.state.prescription.Paciente.Endereco}</span>\n </div> \n </div> \n <div className='prescription-label-container'> \n <div className='prescription-label'>\n <h3> Prescritor </h3>\n </div> \n <div>\n <span>Nome: {this.state.prescription.Prescritor.Nome}</span> \n </div> \n <div>\n <span>CPF: {this.state.prescription.Prescritor.Documento}</span>\n </div> \n <div>\n <span>{this.state.prescription.Prescritor.Conselho}: {this.state.prescription.Prescritor.Numero}-{this.state.prescription.Prescritor.UF} </span>\n </div> \n <div>\n <span>Contato Estabelecimeto: {this.state.prescription.Estabelecimento.Contato.TelefoneComercial}</span>\n </div> \n </div> \n <div className='prescription-label-container'> \n <div className='prescription-label'>\n <h3> Itens Estruturados </h3>\n </div> \n {\n this.state.prescription.Itens.map((item) => (\n <div className='prescricao-item-container'>\n <div><strong> {item.Label} - Qtd: {item.Quantidade} </strong> </div>\n <div>{item.Posologia}</div>\n </div>\n ))\n }\n </div> \n </div>\n </div>\n \n </Col> \n <Col md='auto' sm='auto' xs='auto'>\n <div className='documentos-container'>\n <div>\n Documentos Associados a Dispensa\n </div>\n <div className='documentos-item'>\n <div className='documentos-title'> \n Receita Médica\n </div>\n <div>\n <Button onClick={()=> window.open(this.state.prescription.PDFUrl, \"_blank\")}>\n Baixar\n </Button>\n </div>\n </div>\n <div className='documentos-item'>\n <div className='documentos-title'> \n Validacao ITI\n </div>\n <div>\n {\n this.state.prescription.PDFUrlValidacaoITI ?\n <Button onClick={()=> window.open(this.state.prescription.PDFUrlValidacaoITI, \"_blank\")}>\n Baixar\n </Button>\n :\n <div>\n <div style={{margin: \"5px\"}}>\n <input type=\"file\" onChange={this.handleFileChange} />\n </div>\n <div style={{margin: \"5px\"}}>\n <Button variant=\"success\" onClick={this.handleUpload} disabled={!this.state.selectedFile}>\n Realizar Upload\n </Button>\n </div>\n </div>\n } \n </div>\n </div>\n <div className='documentos-item'>\n <div className='documentos-title'> \n Formulario de Dispensação\n </div>\n <div>\n <Button disabled={!this.state.prescription.PDFUrlFormularioDispensacao} onClick={()=> window.open(this.state.prescription.PDFUrlFormularioDispensacao, \"_blank\")}>\n Baixar\n </Button>\n </div>\n </div>\n <div className='documentos-item'>\n <div className='documentos-title'> \n Documento consolidado\n </div>\n <div>\n <Button disabled={!this.state.prescription.PDFUrlDocumentoConsolidado} onClick={()=> window.open(this.state.prescription.PDFUrlDocumentoConsolidado, \"_blank\")}>\n Baixar\n </Button>\n </div>\n </div>\n </div>\n </Col> \n </Row> \n }\n </Container>\n );\n }\n}\n\nexport default PDV;","import {myAxios} from './axios';\n\nexport const uploadDocumentoITI = async (prescriptionId, file) => {\n const formData = new FormData();\n formData.append('file', file);\n const config = {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n };\n const response = await myAxios.put(`/document/${prescriptionId}/validacaoiti`, formData, config);\n return response.data;\n}\n","export default __webpack_public_path__ + \"static/media/coding-freak.18f0fc82.gif\";","import React from 'react';\nimport {Container} from 'react-bootstrap';\nimport logo from '../../assets/images/coding-freak.gif';\n\nclass Credencial extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n\n }\n }\n componentDidMount() {\n\n }\n\n render() {\n return (\n <Container>\n <div style={{display:'flex',flexDirection:'row',justifyContent:'center'}}>\n <img style={{maxWidth:'400px'}} src={logo} alt=\"developing...\" />\n </div>\n <div style={{display:'flex',flexDirection:'row',justifyContent:'center'}}>\n <h3>Em desenvolvimento...</h3>\n </div>\n </Container>\n );\n }\n}\n\nexport default Credencial;","import axios from 'axios';\nimport {myAxios} from './axios';\nimport { getAuthenticatedUser } from './userService';\n\nconst backend_token = process.env.REACT_APP_API_BASIC_TOKEN;\nconst backend_url = process.env.REACT_APP_API_URL;\n\nexport const getNextCall = async () => {\n const user = await getAuthenticatedUser();\n const nextCall = await axios.get(\n `${backend_url}/api/pharmaceuticalcare/nextcall?operatorLogin=${user.email}`,\n {\n headers: {\n Authorization: 'Basic ' + backend_token,\n },\n }\n );\n\n if (nextCall.data === 'null')\n await sendCallFeedback(nextCall.data.CallId, 'operator_opened');\n return nextCall.data;\n};\n\nexport const sendCallFeedback = async (\n callId,\n status,\n isOptedOut = false,\n optOutReason\n) => {\n if (\n ![\n 'no_contact',\n 'not_interest',\n 'operator_opened',\n 'proceed_to_buy',\n 'order_completed',\n 'order_canceled',\n 'order_aborted',\n ].find((s) => s === status)\n )\n return false;\n\n const returnFeedback = await axios.put(\n `${backend_url}/api/pharmaceuticalcare/${callId}`,\n {\n OperationStatus: status,\n OptOut: isOptedOut,\n OptIOutReason: isOptedOut ? optOutReason : '',\n },\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n\n return returnFeedback.data;\n};\n\nexport const getProductsFromCall = async (callId) => {\n const returnProducts = await myAxios.get(`/order/precart?callId=${callId}`);\n return returnProducts.data;\n};\n\nexport const createCallForDirectCart = async (prescriptionCode) => {\n const returnProducts = await myAxios.post(`/order/call?validationCode=${prescriptionCode}`);\n return returnProducts.data;\n};\n\nexport const searchProducts = async (searchTerm) => {\n if (!searchTerm) return [];\n const returnProducts = await axios.get(\n `${backend_url}/api/pharmaceuticalcare/search?q=${searchTerm}`,\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n return returnProducts.data;\n};\n\nexport const shippingEstimate = async (postalCode) => {\n if (!postalCode) return false;\n const estimate = await axios.get(\n `${backend_url}/api/pharmaceuticalcare/shipping?cep=${postalCode}`,\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n return estimate.data;\n};\n\nexport const postalCodeToAddress = async (postalCode) => {\n if (!postalCode) return false;\n try {\n const address = await axios.get(\n `https://brasilapi.com.br/api/cep/v1/${postalCode}`,\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n return address.data;\n } catch (err) {\n return false;\n }\n};\n\nexport const completeOrder = async (order, callId) => {\n if (!order) return false;\n const returnOrder = await axios.post(\n `${backend_url}/api/pharmaceuticalcare/order/createorder/${callId}`,\n order,\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n return returnOrder.status;\n};\n\nexport const orderDetails = async (orderId) => {\n if (!orderId) return false;\n const returnOrder = await axios.get(\n `${backend_url}/api/pharmaceuticalcare/order/${orderId}`,\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n return returnOrder.data;\n};\n\nexport const getOrders = async (filter = 'all') => {\n if (!filter) return false;\n const orders = await axios.get(\n `${backend_url}/api/pharmaceuticalcare/order/orders?orderStatus=${filter}`,\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n return orders.data;\n};\n\nexport const setOrderStatus = async (\n orderId,\n status,\n reasonText = '',\n externalOrderReference = ''\n) => {\n const order = await axios.put(\n `${backend_url}/api/pharmaceuticalcare/order/${orderId}`,\n {\n OperationStatus: status,\n ReasonText: reasonText,\n ExternalOrderReference: externalOrderReference,\n },\n {\n headers: {\n Authorization: `Basic ${backend_token}`,\n },\n }\n );\n return order.data;\n};\n","import React, { useState } from 'react';\nimport { Col, InputGroup, Button, Modal } from 'react-bootstrap';\nimport MaskedFormControl from 'react-bootstrap-maskedinput';\nimport { shippingEstimate } from '../../services/pharmaceuticalCare';\n\nexport default function CepModal({ showCepModal, setShowCepModal, callId }) {\n const handleClose = () => setShowCepModal(false);\n const [shipmentAvailability, setShipmentAvailability] = useState('');\n const [loading, setLoading] = useState(false);\n const [postalCode, setPostalCode] = useState('');\n\n const shippingUrl = {\n SUCCESS: `/venda-farmacia/${callId}?cep=${postalCode}`,\n PARTIAL_SUCCESS: `/venda-orientacao/${callId}?cep=${postalCode}`,\n };\n\n const validateCep = (cep) => {\n return /^[0-9]{5}-[0-9]{3}$/.test(cep);\n };\n\n const shippingCalculate = async (postalCode) => {\n setLoading(true);\n setShipmentAvailability('INITIAL');\n\n const shipping = await shippingEstimate(postalCode);\n\n if (shipping.length === 0) {\n setShipmentAvailability('ERROR');\n setLoading(false);\n return false;\n } else {\n if (shipping.find((s) => s.EnablePurchase === true)) {\n setPostalCode(postalCode);\n setShipmentAvailability('SUCCESS');\n setLoading(false);\n } else {\n setPostalCode(postalCode);\n setShipmentAvailability('PARTIAL_SUCCESS');\n setLoading(false);\n }\n }\n setLoading(false);\n };\n\n return (\n <>\n <Modal show={showCepModal} onHide={handleClose}>\n <Modal.Header closeButton>\n <Modal.Title>Modal heading</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Col>\n <InputGroup className=\"mb-3\">\n <MaskedFormControl\n disabled={loading}\n placeholder=\"Digite o CEP\"\n aria-label=\"Recipient's username\"\n aria-describedby=\"basic-addon2\"\n onChange={(e) => {\n validateCep(e.target.value) &&\n shippingCalculate(e.target.value);\n }}\n mask=\"11111-111\"\n />\n </InputGroup>\n </Col>\n <Col>\n {shipmentAvailability === 'ERROR' && <p>Cep Não atendido</p>}\n {shipmentAvailability === 'SUCCESS' && <p>Cep Atendido</p>}\n {shipmentAvailability === 'PARTIAL_SUCCESS' && (\n <p>Não disponível para televendas</p>\n )}\n </Col>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={handleClose}>\n Fechar\n </Button>\n {shipmentAvailability === 'SUCCESS' && (\n <Button\n variant=\"primary\"\n disabled={shipmentAvailability !== 'SUCCESS'}\n onClick={handleClose}\n href={shippingUrl['SUCCESS']}\n >\n Prosseguir\n </Button>\n )}\n {shipmentAvailability === 'PARTIAL_SUCCESS' && (\n <Button\n variant=\"primary\"\n disabled={shipmentAvailability !== 'PARTIAL_SUCCESS'}\n onClick={handleClose}\n href={shippingUrl['PARTIAL_SUCCESS']}\n >\n Prosseguir\n </Button>\n )}\n </Modal.Footer>\n </Modal>\n </>\n );\n}\n","import React, { useState } from 'react';\nimport {\n Container,\n Row,\n Col,\n FormControl,\n InputGroup,\n Button,\n Modal,\n ButtonGroup,\n Form,\n} from 'react-bootstrap';\nimport { sendCallFeedback } from '../../services/pharmaceuticalCare';\nimport CepModal from '../CepModal';\nexport default function AssistenciaFarmaceuticaButtons({\n callId,\n enableNextCallButton,\n}) {\n const [freezeButtons, setFreezeButtons] = useState(false);\n const [showNoInterestModal, setShowNoInterestModal] = useState(false);\n const [showNoContactModal, setShowNoContactModal] = useState(false);\n const [optIn, setOptIn] = useState(true);\n const [optOutReason, setOptOutReason] = useState('');\n\n const [showCepModal, setShowCepModal] = useState(false);\n\n const noContactFeedback = async () => {\n await sendCallFeedback(callId, 'no_contact');\n enableNextCallButton();\n setFreezeButtons(true);\n setShowNoContactModal(false);\n };\n\n const noInterestFeedback = async () => {\n await sendCallFeedback(\n callId,\n 'not_interest',\n !optIn,\n !optIn ? optOutReason : ''\n );\n enableNextCallButton();\n setFreezeButtons(true);\n setShowNoInterestModal(false);\n };\n\n return (\n <Container>\n <ButtonGroup className=\"buttonFullWidth\">\n <Button\n variant=\"warning\"\n size=\"lg\"\n disabled={freezeButtons}\n onClick={() => setShowNoContactModal(true)}\n >\n Sem contato\n </Button>\n <Button\n variant=\"danger\"\n disabled={freezeButtons}\n onClick={() => setShowNoInterestModal(true)}\n size=\"lg\"\n >\n Sem Interesse\n </Button>\n <Button\n variant=\"success\"\n disabled={freezeButtons}\n onClick={() => setShowCepModal(true)}\n // href={'/venda-farmacia/' + callId}\n size=\"lg\"\n >\n Comprar\n </Button>\n </ButtonGroup>\n <Modal\n show={showNoInterestModal}\n onHide={() => setShowNoInterestModal(false)}\n >\n <Modal.Header closeButton>\n <Modal.Title>Sem Interesse</Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Form>\n <Form.Group className=\"mb-3\" controlId=\"formBasicCheckbox\">\n <Form.Check\n type=\"radio\"\n name=\"group1\"\n label=\"Podemos contactar no futuro\"\n value=\"optin\"\n checked={optIn}\n onChange={(e) => setOptIn(e.target.checked)}\n />\n <Form.Check\n type=\"radio\"\n name=\"group1\"\n label=\"Não contactar no futuro\"\n value=\"optout\"\n checked={!optIn}\n onChange={(e) => setOptIn(!e.target.checked)}\n />\n </Form.Group>\n <Form.Group className=\"mb-3\" controlId=\"formBasicPassword\">\n <Form.Label>Motivo</Form.Label>\n <Form.Control\n type=\"text\"\n disabled={optIn}\n placeholder=\"Escreva aqui o motivo\"\n onChange={(e) => setOptOutReason(e.target.value)}\n />\n </Form.Group>\n </Form>\n </Modal.Body>\n\n <Modal.Footer>\n <Button variant=\"secondary\">Fechar</Button>\n <Button variant=\"primary\" onClick={() => noInterestFeedback()}>\n Enviar Feedback\n </Button>\n </Modal.Footer>\n </Modal>\n <Modal\n show={showNoContactModal}\n onHide={() => setShowNoContactModal(false)}\n >\n <Modal.Header closeButton>\n <Modal.Title>Sem Contato</Modal.Title>\n </Modal.Header>\n <Modal.Footer>\n <Button variant=\"secondary\">Fechar</Button>\n <Button variant=\"primary\" onClick={() => noContactFeedback()}>\n Enviar Feedback Sem Contato\n </Button>\n </Modal.Footer>\n </Modal>\n <CepModal\n showCepModal={showCepModal}\n setShowCepModal={setShowCepModal}\n callId={callId}\n />\n </Container>\n );\n}\n","import React from 'react';\nimport { Button } from 'react-bootstrap';\n\nexport default function GetNextCallButton({ getNextCall }) {\n return (\n <>\n <div class=\"rightAlign\">\n <Button variant=\"primary\" onClick={getNextCall}>\n Próxima Ligação\n </Button>\n </div>\n </>\n );\n}\n","import React, { useState } from 'react';\nimport {\n Container,\n Row,\n Col,\n FormControl,\n InputGroup,\n Button,\n Modal,\n} from 'react-bootstrap';\nimport './styles.css';\nexport default function ScriptAssistance() {\n const [show, setShow] = useState(false);\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n return (\n <>\n <div class=\"rightAlign\">\n <Button variant=\"primary\" onClick={handleShow}>\n Script de Assistência\n </Button>\n </div>\n <Modal show={show} onHide={handleClose} size=\"lg\">\n <Modal.Header closeButton>\n <Modal.Title>Script de Assistência</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <iframe\n style={{ border: 0, width: '100%', height: '500px' }}\n src=\"https://docs.google.com/document/d/e/2PACX-1vRvyb-Ry1-73cfmpBWftpVRQkX32V0pM-qw1Q4iM-IM_wAMmb6Vr9Yhu6NVs2vvTMr7aZ6JrrBINayJ/pub?embedded=true\"\n ></iframe>\n {/* <p>\n Olá, XXXXX Sou A XXXXX, e sou Farmacêutica da Mevo, sua receita\n médica digital. Tudo bem? <br />\n Sabemos que é uma tecnologia nova e que duvidas em como utilizar,\n podem surgir. <br />\n Por isso, estou aqui para saber se precisa de alguma ajuda na compra\n do seu medicamento? <br />\n (ou se tem dúvidas sobre o processo)\n </p>\n <p>\n ( ) Sim.\n <br />\n Informe: \"Muito obrigada. Apenas para você saber que por segurança\n será gravada.\" <br /> Siga com: \"Você reparou que você recebeu um\n link por whats app (ou sms)?\" <br /> Quais são as dúvidas? Como eu\n posso te ajudar?\n </p>\n <p>\n ( ) Não. Agradece a atenção e encerra\n <br />\n Plus: Se identificar que é possível acompanhar com o paciente o\n fluxo para que ele finalize a compra, podemos ajudar.\n </p> */}\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"secondary\" onClick={handleClose}>\n Close\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n );\n}\n","import React, { useState } from 'react';\nimport {\n Container,\n Row,\n Col,\n FormControl,\n InputGroup,\n Button,\n Modal,\n} from 'react-bootstrap';\nimport AssistenciaFarmaceuticaButtons from '../AssistenciaFarmaceuticaButtons';\nimport GetNextCallButton from '../GetNextCallButton';\nimport ScriptAssistance from '../ScriptAssitanceButton';\nimport './styles.css';\nexport default function LigacaoAtencaoFarmaceutica({ call, getNextCall }) {\n const [showNextCallButton, setShowNextCallButton] = useState(false);\n\n const enableNextCallButton = () => {\n setShowNextCallButton(true);\n };\n return (\n <>\n <Container>\n <Row>\n <Col xs={3}></Col>\n <Col xs={9} class=\"rightAlign\">\n {!showNextCallButton && <ScriptAssistance />}\n {showNextCallButton && (\n <GetNextCallButton getNextCall={getNextCall} />\n )}\n </Col>\n </Row>\n <Row mb={2}>\n <Col xs={3}>\n <b>Identificação da Ligação</b>\n </Col>\n <Col>{call.CallId}</Col>\n </Row>\n <Row>\n <Col xs={3}>\n <b>Nome do Paciente</b>\n </Col>\n <Col>{call.PatientName}</Col>\n </Row>\n <Row>\n <Col xs={3}>\n <b>Número do Paciente</b>\n </Col>\n <Col>{call.PatientMobileNumber}</Col>\n </Row>\n <AssistenciaFarmaceuticaButtons\n enableNextCallButton={enableNextCallButton}\n callId={call.CallId}\n />\n </Container>\n </>\n );\n}\n","import React from 'react';\nimport { Button } from 'react-bootstrap';\n\nexport default function BotaoCarrinhoWhatsapp({ callback }) {\n return (\n <>\n <div class=\"leftAlign\">\n <Button variant=\"success\" onClick={callback}>\n Carrinho Whatsapp\n </Button>\n </div>\n </>\n );\n}\n","import React from 'react';\nimport {Row, Col, FormControl, InputGroup, Button, Form, Modal} from 'react-bootstrap';\nimport { createCallForDirectCart } from '../../services/pharmaceuticalCare';\n\n\nclass PrescriptionGetCartModal extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n prescriptionCode: \"\"\n }\n this.handleInput = this.handleInput.bind(this);\n this.handleCreateCart = this.handleCreateCart.bind(this);\n }\n\n handleInput(e, state){\n this.setState({[state]: e.target.value});\n }\n\n async handleCreateCart() {\n const callId = await createCallForDirectCart(this.state.prescriptionCode);\n this.props.callback(callId);\n }\n\n render() {\n return (\n <Modal show={this.props.open} onHide={this.props.handleClose}>\n <Modal.Header closeButton>\n <Modal.Title>\n Gerar carrinho e consultar\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Row>\n <Col md='auto' sm='auto' xs='12'>\n <div className='form-container'>\n <InputGroup>\n <FormControl\n value={this.state.prescriptionCode}\n placeholder='Codigo da Receita'\n onChange = {(e) => this.handleInput(e,'prescriptionCode')}\n /> \n </InputGroup>\n </div>\n </Col>\n {/*\n <Col md='auto' sm='auto' xs='12'>\n <div className='form-container'>\n <InputGroup>\n <FormControl\n value={this.state.cep}\n placeholder='CEP'\n onChange = {(e) => this.handleInput(e,'cep')}\n /> \n </InputGroup>\n </div>\n </Col>*/\n }\n </Row>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"primary\" \n onClick={this.handleCreateCart}>\n BUSCAR CARRINHO\n </Button>\n </Modal.Footer>\n </Modal>\n );\n }\n}\n\nexport default PrescriptionGetCartModal;","import React, { useState, useEffect } from 'react';\nimport { Container, Row, Col } from 'react-bootstrap';\nimport Title from '../../components/Title';\nimport './styles.css';\nimport LigacaoAtencaoFarmaceutica from '../../components/LigacaoAtencaoFarmaceutica';\nimport { getNextCall } from '../../services/pharmaceuticalCare';\nimport GetNextCallButton from '../../components/GetNextCallButton';\nimport BotaoCarrinhoWhatsapp from '../../components/BotaoCarrinhoWhatsapp';\nimport PrescriptionGetCartModal from '../../components/PrescriptionGetCartModal';\nimport { useHistory } from \"react-router-dom\";\n\n\n\nfunction Atendimento() {\n const [nextCall, setNextCall] = useState(false);\n const [openModal, setOpenModal] = useState(false);\n\n const nextCallPOS = async () => {\n setNextCall({});\n const nextCall = await getNextCall();\n if (nextCall === 'null') {\n } else setNextCall(nextCall);\n };\n\n const openPrescriptionCodeModal = () => {\n setOpenModal(!openModal);\n };\n\n const DirectToCart = (callId, cep='04558-005') => {\n openPrescriptionCodeModal();\n const path = '/venda-farmacia/' + callId + '?cep=' + cep;\n window.location.href = path; \n };\n\n return (\n <Container>\n <Row>\n <Col>\n <Title title={'Fila de Comunicação'} />\n </Col>\n </Row>\n <Row>\n {nextCall && nextCall.CallId && (\n <Col>\n <LigacaoAtencaoFarmaceutica\n call={nextCall}\n getNextCall={nextCallPOS}\n />\n </Col>\n )}\n {!nextCall && (\n <Col>\n <BotaoCarrinhoWhatsapp callback={openPrescriptionCodeModal} />\n </Col>\n )}\n {!nextCall && (\n <Col>\n <GetNextCallButton getNextCall={nextCallPOS} />\n </Col>\n )}\n </Row>\n <Row>\n <PrescriptionGetCartModal \n open={openModal}\n handleClose={openPrescriptionCodeModal}\n callback={DirectToCart}\n />\n </Row>\n </Container>\n );\n}\n\nexport default Atendimento;","import React from 'react';\nimport {Container} from 'react-bootstrap';\nimport logo from '../../assets/images/coding-freak.gif';\n\nclass Base extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n\n }\n }\n componentDidMount() {\n\n }\n\n render() {\n return (\n <Container>\n <div style={{display:'flex',flexDirection:'row',justifyContent:'center'}}>\n <img style={{maxWidth:'400px'}} src={logo} alt=\"developing...\" />\n </div>\n <div style={{display:'flex',flexDirection:'row',justifyContent:'center'}}>\n <h3>Em desenvolvimento...</h3>\n </div>\n </Container>\n );\n }\n}\n\nexport default Base;","import React, { useState, useEffect } from 'react'\nimport { useParams } from 'react-router'\nimport { getCheckoutInfo, getSubscriptions, postSubscription } from '../../services/subscription'\nimport { Flex } from '../../App'\n\nexport function DetalhesFarmacia() {\n const { id } = useParams()\n\n const [sub, setSub] = useState({})\n const [subInfo, setSubInfo] = useState({})\n const [loading, setLoading] = useState(true)\n\n useEffect(async () => {\n const subscriptions = await getSubscriptions({ id })\n setSub(subscriptions)\n const checkoutInfo = await getCheckoutInfo(subscriptions?.customerEmail)\n setSubInfo(checkoutInfo)\n setLoading(false)\n }, [])\n\n if (loading) return <div>carregando</div>\n\n const { userProfile } = subInfo\n const { shippingAddress, purchaseSettings } = sub\n const { status, createdAt, nextPurchaseDate, items } = sub\n const subscriptionDate = new Date(createdAt)?.toLocaleDateString('pt-BR')\n const paymentId = purchaseSettings?.paymentMethod?.paymentAccountId\n const addressId = shippingAddress?.addressId\n const price = items?.reduce((acum, item) => acum + (item?.priceAtSubscriptionDate * item?.quantity), 0)\n const address = subInfo?.availableAddresses?.find(e => e.addressId === addressId)\n const payment = subInfo?.availableAccounts?.find(e => e.accountId === paymentId)\n const activeOrPaused = ['PAUSED', 'ACTIVE'].includes(status)\n const showPauseButton = status === 'ACTIVE'\n const showUnpauseButton = status === 'PAUSED'\n const showJumpButton = activeOrPaused && !sub?.isSkipped\n const showUnjumpButton = activeOrPaused && sub?.isSkipped === true\n\n const changeSubscription = async ({ status, isSkipped }) => {\n await postSubscription(id, { status, isSkipped })\n window.location.reload();\n }\n\n const onClickGoBack = () => window.location.replace('/dispensacao/')\n\n return (\n <div>\n <h2>Detalhes da assinatura</h2>\n <Flex style={{ justifyContent: 'space-between' }}>\n {showPauseButton && <button onClick={() => changeSubscription({ status: 'PAUSED' })}>Pausar</button>}\n {showUnpauseButton && <button onClick={() => changeSubscription({ status: 'ACTIVE' })}>Despausar</button>}\n {showJumpButton && <button onClick={() => changeSubscription({ isSkipped: true })}>Pular</button>}\n {showUnjumpButton && <button onClick={() => changeSubscription({ isSkipped: false })}>Despular</button>}\n {activeOrPaused && <button onClick={() => changeSubscription({ status: 'CANCELED' })}>Cancelar</button>}\n </Flex>\n <div>Status da assinatura: {status}</div>\n <div>Contratação: {subscriptionDate}</div>\n <div>Próxima entrega: {nextPurchaseDate}</div>\n <div>Valor da compra: {price}</div>\n <div>Email do cliente: {sub?.customerEmail}</div>\n <div>Nome do cliente: {userProfile?.firstName} {userProfile?.lastName}</div>\n <div>Forma de pagamento: {payment?.paymentSystemName}</div>\n <div>Número do cartão: {payment?.cardNumber}</div>\n <div>Endereço: {address?.street}</div>\n <div>Número: {address?.number}</div>\n <div>Bairro: {address?.neighborhood}</div>\n <div>Complemento: {address?.complement}</div>\n <div>Cidade: {address?.city}</div>\n <div>UF: {address?.state}</div>\n <button onClick={onClickGoBack}>voltar</button>\n </div>\n )\n}\n\nexport default DetalhesFarmacia\n","import React, { useState, useEffect } from 'react';\nimport {\n Container,\n Row,\n Col,\n Button,\n ButtonGroup,\n Alert,\n} from 'react-bootstrap';\nexport default function ProductEcommerce({ product, addProductToCart }) {\n const [eanQuantity, setEanQuantity] = useState({});\n const [eanPrice, setEanPrice] = useState({});\n const [eanList, setEanList] = useState([]);\n var formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n useEffect(() => {\n //addQuantity(product.EAN,product.PRICE, product, product.initialQuantity)\n }, [eanList]);\n\n const addQuantity = (ean, price, product, quantity=1) => {\n console.log(\"chamadoooo\", ean, price,product, quantity);\n const newEanQuantity = eanQuantity;\n const newEanPrice = eanPrice;\n newEanQuantity[ean] = newEanQuantity[ean] ? newEanQuantity[ean] + quantity : quantity;\n newEanPrice[ean] = price;\n setEanPrice(newEanPrice);\n setEanQuantity(newEanQuantity);\n addProductToCart(eanQuantity, eanPrice, product);\n };\n\n const removeQuantity = (ean, price, product) => {\n const newEanQuantity = eanQuantity;\n const newEanPrice = eanPrice;\n if (newEanQuantity[ean] === 0) return;\n newEanQuantity[ean] = newEanQuantity[ean] ? newEanQuantity[ean] - 1 : 0;\n newEanPrice[ean] = price;\n setEanPrice(newEanPrice);\n setEanQuantity(newEanQuantity);\n addProductToCart(eanQuantity, eanPrice, product);\n };\n\n return (\n <Container>\n <Row>\n <Col>\n <b>{product.Label}</b>\n </Col>\n </Row>\n {product.Dosage && (\n <Row>\n <Col>{product.Dosage}</Col>\n </Row>\n )}\n {product.ProductOptions.length === 0 && (\n <Alert variant=\"danger\">Item Indisponível</Alert>\n )}\n {product.ProductOptions.length > 0 && (\n <Row>\n <Col>EAN</Col>\n <Col xs={5}>Nome</Col>\n <Col>Itens Disponíveis</Col>\n <Col>Preço</Col>\n <Col>Quantidade</Col>\n </Row>\n )}\n {product.ProductOptions.map((p) => {\n if (p.initialQuantity && eanQuantity[p.EAN] === undefined)\n addQuantity(p.EAN, p.Price, p, p.initialQuantity);\n return (\n <Row>\n <Col>{p.EAN}</Col>\n <Col xs={5}>{p.Label}</Col>\n <Col>{p.AvailableItens}</Col>\n <Col>{formatter.format(p.Price)}</Col>\n <Col>\n <ButtonGroup aria-label=\"Basic example\">\n <Button\n variant=\"secondary\"\n onClick={() => removeQuantity(p.EAN, p.Price, p)}\n >\n -\n </Button>\n <Button variant=\"secondary\">\n {eanQuantity[p.EAN] ? eanQuantity[p.EAN] : 0}\n </Button>\n <Button\n variant=\"secondary\"\n onClick={() => addQuantity(p.EAN, p.Price, p)}\n >\n +\n </Button>\n </ButtonGroup>\n </Col>\n </Row>\n );\n })}\n <hr />\n </Container>\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport {\n Row,\n Col,\n InputGroup,\n Button,\n Modal,\n Alert,\n Form,\n} from 'react-bootstrap';\nimport {\n shippingEstimate,\n postalCodeToAddress,\n} from '../../services/pharmaceuticalCare';\nimport MaskedFormControl from 'react-bootstrap-maskedinput';\nexport default function FreteButton({\n productAvailable,\n setFinalAddress,\n setFrete,\n}) {\n const addressInitialState = {\n state: '',\n city: '',\n neighborhood: '',\n street: '',\n number: '',\n complement: '',\n postalCode: '',\n };\n const [error, setError] = useState('');\n const [show, setShow] = useState(false);\n const [loading, setLoading] = useState(false);\n const [postalCode, setPostalCode] = useState('');\n const [address, setAddress] = useState(addressInitialState);\n const [shipping, setShipping] = useState([]);\n const [freteChoosed, setFreteChoosed] = useState({});\n\n const useQuery = () => {\n const { search } = useLocation();\n\n return React.useMemo(() => new URLSearchParams(search), [search]);\n };\n\n let query = useQuery();\n\n useEffect(() => {\n checkAddressNumberError();\n }, [address, postalCode, address.number]);\n\n useEffect(() => {\n shippingCalculate(query.get('cep'));\n }, []);\n\n const checkAddressNumberError = () => {\n if (address['number'] === '') setError('Informe o número do endereço');\n else setError('');\n };\n\n const shippingCalculate = async (postalCode) => {\n setLoading(true);\n setAddress(addressInitialState);\n setError('');\n const address = await postalCodeToAddress(postalCode);\n if (address && address.type !== 'service_error') {\n setAddress({ ...address, postalCode: postalCode });\n } else {\n setLoading(false);\n return false;\n }\n\n const shipping = await shippingEstimate(postalCode);\n if (shipping.length === 0) {\n setError('CEP não atendido pela MEVO');\n setLoading(false);\n return false;\n }\n\n const enablePurchaseShipping = shipping.filter((s) => s.EnablePurchase);\n\n setShipping(enablePurchaseShipping);\n setLoading(false);\n checkAddressNumberError();\n };\n\n const updateAddress = (fieldName, fieldValue) => {\n setAddress({ ...address, [fieldName]: fieldValue });\n };\n\n const chooseFrete = (frete) => {\n setFreteChoosed(frete);\n setFrete(frete);\n setFinalAddress(address);\n setShow(false);\n };\n\n const shippingUnavailable = {\n ShippingMethod: '2d',\n DeliveryTimeInMinutes: 2880,\n EstimatedDeliveryTime: '2 dias úteis',\n ShippingPrice: 0,\n ShippingPriceLabel: 'Entrega Grátis',\n };\n\n const validateCep = (cep) => {\n return /^[0-9]{5}-[0-9]{3}$/.test(cep);\n };\n return (\n <>\n <Button onClick={() => setShow(true)}>Calcular Frete</Button>\n <Modal center size=\"lg\" show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>Calcular Frete</Modal.Header>\n <Modal.Body>\n <Col>\n <InputGroup className=\"mb-3\">\n <MaskedFormControl\n disabled={loading}\n placeholder=\"Digite o CEP\"\n aria-label=\"Recipient's username\"\n aria-describedby=\"basic-addon2\"\n value={address.postalCode}\n onChange={(e) => {\n setPostalCode(e.target.value);\n updateAddress('postalCode', e.target.value);\n validateCep(e.target.value) &&\n shippingCalculate(e.target.value);\n }}\n mask=\"11111-111\"\n />\n </InputGroup>\n </Col>\n <Form>\n <Form.Group controlId=\"estado\">\n <Col>\n <Form.Control\n disabled={loading}\n type=\"text\"\n placeholder=\"Estado\"\n value={address.state}\n onChange={(e) => updateAddress('state', e.target.value)}\n />\n </Col>\n </Form.Group>\n <Form.Group controlId=\"estado\">\n <Col>\n <Form.Control\n disabled={loading}\n type=\"text\"\n placeholder=\"Cidade\"\n value={address.city}\n onChange={(e) => updateAddress('city', e.target.value)}\n />\n </Col>\n </Form.Group>\n <Form.Group controlId=\"estado\">\n <Col>\n <Form.Control\n disabled={loading}\n type=\"text\"\n placeholder=\"Bairro\"\n value={address.neighborhood}\n onChange={(e) =>\n updateAddress('neighborhood', e.target.value)\n }\n />\n </Col>\n </Form.Group>\n <Form.Group controlId=\"estado\">\n <Col>\n <Form.Control\n disabled={loading}\n type=\"text\"\n placeholder=\"Rua\"\n value={address.street}\n onChange={(e) => updateAddress('street', e.target.value)}\n />\n </Col>\n </Form.Group>\n <Form.Group controlId=\"estado\">\n <Col>\n <Form.Control\n disabled={loading}\n type=\"text\"\n placeholder=\"Número\"\n value={address.number}\n onChange={(e) => updateAddress('number', e.target.value)}\n />\n </Col>\n </Form.Group>\n <Form.Group controlId=\"estado\">\n <Col>\n <Form.Control\n disabled={loading}\n type=\"text\"\n placeholder=\"Complemento\"\n value={address.complement}\n onChange={(e) => updateAddress('complement', e.target.value)}\n />\n </Col>\n </Form.Group>\n </Form>\n <Col>\n {error !== '' && <Alert variant=\"danger\">{error}</Alert>}\n {error === '' && !productAvailable && shipping.length > 0 && (\n <Row>\n <Col sm={1}>\n <Form.Check\n onChange={(e) =>\n e.target.checked && chooseFrete(shippingUnavailable)\n }\n inline\n name=\"group1\"\n type=\"radio\"\n id={`inline-radio-1`}\n />\n </Col>\n <Col sm={2}>\n <p>{shippingUnavailable.ShippingMethod}</p>\n </Col>\n <Col sm={7}>\n <p>{shippingUnavailable.EstimatedDeliveryTime}</p>\n </Col>\n <Col sm={2}>\n <p>{shippingUnavailable.ShippingPriceLabel}</p>\n </Col>\n </Row>\n )}\n {error === '' &&\n productAvailable &&\n shipping.map((item) => {\n return (\n <Row>\n <Col sm={1}>\n <Form.Check\n inline\n name=\"group1\"\n onChange={(e) => e.target.checked && chooseFrete(item)}\n type=\"radio\"\n id={`inline-radio-1`}\n checked={freteChoosed === item}\n />\n </Col>\n <Col sm={2}>\n <p>{item.ShippingMethod}</p>\n </Col>\n <Col sm={7}>\n <p>{item.EstimatedDeliveryTime}</p>\n </Col>\n <Col sm={2}>\n <p>{item.ShippingPriceLabel}</p>\n </Col>\n </Row>\n );\n })}\n </Col>\n {freteChoosed && (\n <div className=\"rightAlign\" variant=\"warning\">\n <Button onClick={() => setShow(false)}>Fechar</Button>\n </div>\n )}\n </Modal.Body>\n </Modal>\n </>\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n Container,\n Row,\n Col,\n Button,\n ButtonGroup,\n Modal,\n InputGroup,\n FormControl,\n} from 'react-bootstrap';\nimport { searchProducts } from '../../services/pharmaceuticalCare';\nexport default function BuscarMedicamentosModal({ addProduct }) {\n const [show, setShow] = useState(false);\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n\n const [searchTerm, setSearchTerm] = useState('');\n const [products, setProducts] = useState([]);\n\n const searchProductsByTerm = async (searchTerm) => {\n const products = await searchProducts(searchTerm);\n setProducts(products);\n };\n\n var formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n return (\n <>\n <Button variant=\"primary\" onClick={handleShow}>\n Adicionar mais medicamentos\n </Button>\n <Modal\n fullscreen={true}\n show={show}\n size=\"lg\"\n centered\n onHide={handleClose}\n >\n <Modal.Header closeButton>\n <Modal.Title>Pesquisar Medicamentos</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <InputGroup className=\"mb-3\">\n <FormControl\n placeholder=\"Digite Medicamentos\"\n aria-label=\"Recipient's username\"\n aria-describedby=\"basic-addon2\"\n onChange={(e) => {\n setSearchTerm(e.target.value);\n e.target.value.length > 2 &&\n searchProductsByTerm(e.target.value);\n }}\n />\n </InputGroup>\n {products.map((p) => {\n return (\n <Row>\n <Col xs={6}>{p.Label}</Col>\n <Col>{p.AvailableItens}</Col>\n <Col>{formatter.format(p.Price)}</Col>\n <Col>\n <Button\n onClick={() => {\n addProduct(p);\n handleClose();\n }}\n >\n Adicionar\n </Button>\n </Col>\n </Row>\n );\n })}\n </Modal.Body>\n </Modal>\n </>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Container,\n Row,\n Col,\n Button,\n Modal,\n Alert,\n Form,\n} from 'react-bootstrap';\nimport MaskedFormControl from 'react-bootstrap-maskedinput';\nimport { completeOrder as completeOrderService } from '../../services/pharmaceuticalCare';\nimport { sendCallFeedback } from '../../services/pharmaceuticalCare';\n\nexport default function FinalizarCompra({\n generalInfo,\n productsCart,\n address,\n frete,\n totalPrice,\n}) {\n const [show, setShow] = useState(false);\n const [cpf, setCpf] = useState('');\n const [rg, setRg] = useState('');\n const [email, setEmail] = useState('');\n const [mobilePhone, setMobilePhone] = useState('');\n const [birthDate, setBirthDate] = useState('');\n const [PaymentType, setPaymentType] = useState('card');\n const [OrderStatus, setOrderStatus] = useState('pending');\n\n const [errorCpf, setErrorCpf] = useState(true);\n const [errorRg, setErrorRg] = useState(true);\n const [errorBirthDate, setErrorBirthDate] = useState(true);\n\n useEffect(() => {\n if (validateCpf(cpf)) setErrorCpf(false);\n else setErrorCpf(true);\n if (validateRg(rg)) setErrorRg(false);\n else setErrorRg(true);\n if (validateBirthDate(birthDate)) setErrorBirthDate(false);\n else setErrorBirthDate(true);\n }, [cpf, rg, birthDate, errorCpf, errorRg, errorBirthDate]);\n\n const [toggleAddress, setToggleAddress] = useState(false);\n const [toggleFrete, setToggleFrete] = useState(false);\n\n var formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n const validateCpf = (parameterCpf) => {\n return !!parameterCpf.match(/^[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}\\-[0-9]{2}$/);\n };\n\n const validateRg = (parameterRg) => {\n return !!parameterRg.match(/\\d{4}/);\n };\n\n const validateBirthDate = (parameterBirthDate) => {\n return !!parameterBirthDate.match(/[0-9]{2}\\/[0-9]{2}\\/[0-9]{4}/);\n };\n\n const formatItems = () => {\n return Object.keys(productsCart).map((k) => {\n delete productsCart[k]['AvailableItens'];\n productsCart[k]['UnitPrice'] = productsCart[k]['Price'];\n productsCart[k]['TotalPrice'] =\n productsCart[k]['Price'] * productsCart[k]['Quantity'];\n return productsCart[k];\n });\n };\n\n const formatShipping = () => {\n return {\n BuyerEmail: email,\n BuyerMobilePhone: mobilePhone,\n BuyerName: generalInfo.PatientName,\n BuyerCPF: cpf,\n BuyerRG: rg,\n BuyerBirthDate: birthDate,\n AddressType: 'Rua',\n ZipCode: address.cep,\n Address: address.street,\n AddressNumber: address.number,\n AddressComplement: address.complement,\n AddressDistrict: address.neighborhood,\n AddressCity: address.city,\n AddressState: address.state,\n };\n };\n\n const completeOrder = async (callId) => {\n setOrderStatus('sending');\n const order = {\n OrderItems: formatItems(),\n OrderShipping: formatShipping(),\n OperationStatus: 'order_placed',\n TotalValue: totalPrice,\n TotalDiscount: 0,\n DiscountPercentage: 0,\n DiscountCoupom: 0,\n PaymentType: PaymentType,\n ShippingType: frete.ShippingMethod,\n ShippingPrice: frete.ShippingPrice,\n };\n const orderResponse = await completeOrderService(order, callId);\n if (orderResponse === 200) {\n setOrderStatus('completed');\n } else setOrderStatus('error');\n };\n\n const refuseOrder = async (callId) => {\n await sendCallFeedback(callId, 'order_canceled');\n setOrderStatus('canceled');\n };\n\n if (OrderStatus === 'canceled') {\n return (\n <Container>\n <Row>\n <Col>\n <Alert variant=\"warning\">Pedido cancelado com sucesso!</Alert>\n </Col>\n </Row>\n </Container>\n );\n }\n if (OrderStatus === 'completed') {\n return (\n <Container>\n <Row>\n <Col>\n <Alert variant=\"success\">Pedido realizado com sucesso!</Alert>\n </Col>\n </Row>\n </Container>\n );\n }\n if (OrderStatus === 'error') {\n return (\n <Container>\n <Row>\n <Col>\n <Alert variant=\"danger\">\n Pedido não realizado, entre em contato para mais detalhes!\n </Alert>\n </Col>\n </Row>\n </Container>\n );\n }\n\n return (\n <>\n <Button onClick={() => setShow(true)} variant=\"success\">\n FinalizarCompra\n </Button>\n\n <Modal center size=\"lg\" show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <h4>Resumo do Pedido</h4>\n </Modal.Header>\n <Modal.Body>\n <Container>\n <Form>\n <h5>Paciente</h5>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Nome\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ paddingTop: 8 }}>{generalInfo.PatientName}</p>\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n CPF*\n </Form.Label>\n <Col sm=\"8\">\n <MaskedFormControl\n isValid={false}\n plaintext\n placeholder=\"000.000.000-00\"\n mask=\"111.111.111-11\"\n onChange={(e) => setCpf(e.target.value)}\n className=\"finalizar\"\n />\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Email*\n </Form.Label>\n <Col sm=\"8\">\n <Form.Control\n isValid={false}\n plaintext\n type=\"email\"\n placeholder=\"email@dominio.com\"\n onChange={(e) => setEmail(e.target.value)}\n className=\"finalizar\"\n />\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Telefone Celular*\n </Form.Label>\n <Col sm=\"8\">\n <MaskedFormControl\n isValid={false}\n plaintext\n mask=\"(11) 11111-1111\"\n onChange={(e) => setMobilePhone(e.target.value)}\n className=\"finalizar\"\n />\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n RG\n </Form.Label>\n <Col sm=\"8\">\n <Form.Control\n onChange={(e) => setRg(e.target.value)}\n plaintext\n placeholder=\"999999999\"\n />\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Data de Nascimento\n </Form.Label>\n <Col sm=\"8\">\n <MaskedFormControl\n plaintext\n placeholder=\"08/08/1986\"\n mask=\"11/11/1111\"\n onChange={(e) => setBirthDate(e.target.value)}\n className=\"finalizar\"\n />\n </Col>\n </Form.Group>\n {errorCpf && (\n <Row style={{ paddingTop: 10 }}>\n <Col>\n <Alert variant=\"danger\">\n Preenchimento do CPF Obrigatório\n </Alert>\n </Col>\n </Row>\n )}\n {email.length < 5 && (\n <Row style={{ paddingTop: 10 }}>\n <Col>\n <Alert variant=\"danger\">\n Preenchimento do email Obrigatório\n </Alert>\n </Col>\n </Row>\n )}\n {mobilePhone.length < 10 && (\n <Row style={{ paddingTop: 10 }}>\n <Col>\n <Alert variant=\"danger\">\n Preenchimento do celular Obrigatório\n </Alert>\n </Col>\n </Row>\n )}\n <hr />\n <h5>Produtos</h5>\n <Row>\n <Col xs={8}>\n <b>Nome</b>\n </Col>\n <Col xs={2}>\n <b>Quantidade</b>\n </Col>\n <Col xs={2}>\n <b>Preço</b>\n </Col>\n </Row>\n {Object.keys(productsCart).map((key) => {\n return (\n <Row>\n <Col xs={8}>{productsCart[key].Label}</Col>\n <Col xs={2}>{productsCart[key].Quantity}</Col>\n <Col xs={2}>\n {formatter.format(productsCart[key].Price)}\n </Col>\n </Row>\n );\n })}\n <hr />\n <h5\n onClick={() => setToggleAddress(!toggleAddress)}\n style={{ cursor: 'pointer' }}\n >\n Endereço\n </h5>\n {toggleAddress && (\n <div>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Rua\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>{address.street}</p>\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Bairro\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>{address.neighborhood}</p>\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Estado\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>{address.state}</p>\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n CEP\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>{address.cep}</p>\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Número\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>{address.number}</p>\n </Col>\n </Form.Group>\n <Form.Group\n as={Row}\n controlId=\"formPlaintextEmail\"\n className=\"finalizar\"\n >\n <Form.Label column sm=\"4\">\n Complemento\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>{address.complement}</p>\n </Col>\n </Form.Group>\n </div>\n )}\n <hr />\n <h5\n onClick={() => setToggleFrete(!toggleFrete)}\n style={{ cursor: 'pointer' }}\n >\n Frete\n </h5>\n {toggleFrete && (\n <div>\n <Form.Group as={Row} controlId=\"formPlaintextEmail\">\n <Form.Label column sm=\"4\">\n Prazo de Entrega\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>\n {frete.EstimatedDeliveryTime}\n </p>\n </Col>\n </Form.Group>\n <Form.Group as={Row} controlId=\"formPlaintextEmail\">\n <Form.Label column sm=\"4\">\n Preço Frete\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>{frete.ShippingPriceLabel}</p>\n </Col>\n </Form.Group>\n </div>\n )}\n <hr />\n <h5>Pagamento</h5>\n <Form.Group as={Row} controlId=\"formPlaintextEmail\">\n <Form.Label column sm=\"4\">\n Preço Total\n </Form.Label>\n <Col sm=\"8\">\n <p style={{ marginTop: 8 }}>\n <b>{formatter.format(frete.ShippingPrice + totalPrice)}</b>\n </p>\n </Col>\n </Form.Group>\n <Row>\n <Col sm={1}>\n <Form.Check\n inline\n name=\"group1\"\n type=\"radio\"\n id={`inline-radio-1`}\n checked={PaymentType === 'card'}\n onChange={(e) => e.target.checked && setPaymentType('card')}\n />\n </Col>\n <Col sm={5}>\n <p>Cartão</p>\n </Col>\n <Col sm={1}>\n <Form.Check\n inline\n name=\"group1\"\n type=\"radio\"\n id={`inline-radio-1`}\n checked={PaymentType === 'pix'}\n onChange={(e) => e.target.checked && setPaymentType('pix')}\n />\n </Col>\n <Col sm={5}>\n <p>Pix</p>\n </Col>\n </Row>\n </Form>\n </Container>\n </Modal.Body>\n <Modal.Footer>\n <Button\n disabled={OrderStatus === 'sending'}\n variant=\"warning\"\n onClick={async () => await refuseOrder(generalInfo.CallId)}\n >\n Desistir do pedido\n </Button>\n <Button\n disabled={\n errorCpf ||\n email.length < 5 ||\n mobilePhone.length < 10 ||\n OrderStatus === 'sending'\n }\n variant=\"success\"\n onClick={async () => await completeOrder(generalInfo.CallId)}\n >\n Finalizar Pedido\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { getProductsFromCall } from '../../services/pharmaceuticalCare';\nimport { useParams } from 'react-router-dom';\nimport { Container, Row, Col, Button, Modal } from 'react-bootstrap';\nimport ProductEcommerce from '../../components/ProductEcommerce';\nimport FreteButton from '../../components/FreteButton';\nimport Title from '../../components/Title';\nimport BuscarMedicamentosModal from '../../components/BuscarMedicamentosModal';\nimport FinalizarCompra from '../../components/FinalizarCompra';\nimport './styles.css';\nexport default function VendaFarmacia() {\n const [showPatientInfo, setShowPatientInfo] = useState(false);\n const [products, setProducts] = useState({});\n const [extraProducts, setExtraProducts] = useState([]);\n const [productsCart, setProductsCart] = useState([]);\n const [quantity, setQuantity] = useState({});\n const [total, setTotal] = useState(0);\n const [totalFrete, setTotalFrete] = useState(-1);\n const [frete, setFrete] = useState({});\n const [cartAvailability, setCartAvailability] = useState(true);\n const [price, setPrice] = useState({});\n const [address, setAddress] = useState({});\n const { id } = useParams();\n\n useEffect(() => {\n getProducts();\n }, []);\n\n useEffect(() => {\n if (frete && frete.ShippingPrice !== undefined)\n setTotalFrete(frete.ShippingPrice);\n }, [frete]);\n\n useEffect(() => {\n let newTotal = 0;\n Object.keys(quantity).map((ean) => {\n newTotal = quantity[ean] * price[ean] + newTotal;\n });\n setTotal(newTotal);\n }, [setQuantity, setPrice, quantity, products, price]);\n\n useEffect(() => {\n calulateCartAvailability();\n }, [productsCart, quantity]);\n\n var formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n const getProducts = async () => {\n const products = await getProductsFromCall(id);\n setProducts(products);\n };\n\n const addProductToCart = (newQuantity, newPrice, product) => {\n setQuantity({ ...quantity, ...newQuantity });\n setPrice({ ...price, ...newPrice });\n let newProductsCart = productsCart || {};\n newProductsCart[product.EAN] = product;\n newProductsCart[product.EAN]['Quantity'] = newQuantity[product.EAN];\n setProductsCart(newProductsCart);\n };\n\n const calulateCartAvailability = () => {\n let productsUnavailable = 0;\n Object.keys(productsCart).forEach((key) => {\n if (productsCart[key].AvailableItens < quantity[productsCart[key].EAN]) {\n productsUnavailable++;\n }\n });\n if (productsUnavailable > 0) {\n setCartAvailability(false);\n } else setCartAvailability(true);\n setFrete({ ShippingPrice: -1 });\n };\n\n const addExtraProducts = (product) => {\n setExtraProducts([...extraProducts, { ...product, initialQuantity: 1 }]);\n };\n\n const formatExtraProducts = () => {\n const newExtraProducts = {\n EAN: '0000000000000',\n Quantity: 0,\n Price: 0.0,\n Label: 'Medicamentos Adicionados',\n Dosage: false,\n ProductOptions: extraProducts,\n };\n\n return newExtraProducts;\n };\n\n const choosedProducts = (productsCart) => {\n return Object.keys(productsCart)\n .filter((p) => productsCart[p]['Quantity'] > 0)\n .map((pr) => productsCart[pr]);\n };\n\n return (\n <>\n <Container>\n <Row>\n <Col>\n <Title title={'Carrinho: ' + products.PatientName} />\n </Col>\n </Row>\n <Row>\n <Col className=\"rightAlign\">\n <Button onClick={() => setShowPatientInfo(true)}>\n Informações do Paciente\n </Button>{' '}\n <BuscarMedicamentosModal addProduct={addExtraProducts} />\n </Col>\n </Row>\n </Container>\n <div>\n {products.Medicines &&\n products.Medicines.length > 0 &&\n products.Medicines.map((product) => {\n return (\n <ProductEcommerce\n product={product}\n addProductToCart={addProductToCart}\n />\n );\n })}\n {extraProducts.length > 0 && (\n <ProductEcommerce\n product={formatExtraProducts()}\n addProductToCart={addProductToCart}\n />\n )}\n </div>\n <Container>\n <Row>\n <Col>\n <Title title={'Total'} />\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Preço Medicamentos:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{formatter.format(total)}</b>\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Preço Frete:</b>\n </Col>\n <Col className=\"rightAlign\">\n {(totalFrete > -1 && <b>{formatter.format(totalFrete)}</b>) || (\n <b>Não calculado</b>\n )}\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Preço Total:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{formatter.format(total + (totalFrete < 0 ? 0 : totalFrete))}</b>\n </Col>\n </Row>\n <Row>\n <Col className=\"rightAlign\">\n <FreteButton\n productAvailable={cartAvailability}\n setFinalAddress={setAddress}\n setFrete={setFrete}\n />\n\n {totalFrete > -1 && (\n <FinalizarCompra\n style={{ marginLeft: 10 }}\n generalInfo={products}\n productsCart={choosedProducts(productsCart)}\n address={address}\n frete={frete}\n totalPrice={total}\n />\n )}\n </Col>\n </Row>\n </Container>\n <Modal\n show={showPatientInfo}\n onHide={() => setShowPatientInfo(false)}\n size=\"lg\"\n >\n <Modal.Header closeButton>\n <Modal.Title>Informações do Paciente</Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Container>\n <Row>\n <Col xs={6}>\n <b>Código da Receita</b>\n </Col>\n <Col>{products.PrecriptionCode}</Col>\n </Row>\n <Row mb={2}>\n <Col xs={6}>\n <b>Identificação da Ligação</b>\n </Col>\n <Col>{products.CallId}</Col>\n </Row>\n <Row>\n <Col xs={6}>\n <b>Nome do Paciente</b>\n </Col>\n <Col>{products.PatientName}</Col>\n </Row>\n <Row>\n <Col xs={6}>\n <b>Número do Paciente</b>\n </Col>\n <Col>{products.PatientMobileNumber}</Col>\n </Row>\n <Row>\n <Col xs={6}>\n <b>Data da Receita</b>\n </Col>\n <Col>{products.ReceiptDate}</Col>\n </Row>\n <Row>\n <Col xs={6}>\n <b>Nome do Médico</b>\n </Col>\n <Col>{products.DoctorName}</Col>\n </Row>\n </Container>\n </Modal.Body>\n </Modal>\n </>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { getProductsFromCall } from '../../services/pharmaceuticalCare';\nimport { useParams } from 'react-router-dom';\nimport { Container, Row, Col, Button, Modal } from 'react-bootstrap';\nimport ProductEcommerce from '../../components/ProductEcommerce';\nimport FreteButton from '../../components/FreteButton';\nimport Title from '../../components/Title';\nimport BuscarMedicamentosModal from '../../components/BuscarMedicamentosModal';\nimport FinalizarCompra from '../../components/FinalizarCompra';\nimport './styles.css';\nexport default function VendaFarmacia() {\n const [showPatientInfo, setShowPatientInfo] = useState(false);\n const [products, setProducts] = useState({});\n const [extraProducts, setExtraProducts] = useState([]);\n const [productsCart, setProductsCart] = useState([]);\n const [quantity, setQuantity] = useState({});\n const [total, setTotal] = useState(0);\n const [totalFrete, setTotalFrete] = useState(-1);\n const [frete, setFrete] = useState({});\n const [cartAvailability, setCartAvailability] = useState(true);\n const [price, setPrice] = useState({});\n const [address, setAddress] = useState({});\n const { id } = useParams();\n\n useEffect(() => {\n getProducts();\n }, []);\n\n useEffect(() => {\n if (frete && frete.ShippingPrice !== undefined)\n setTotalFrete(frete.ShippingPrice);\n }, [frete]);\n\n useEffect(() => {\n let newTotal = 0;\n Object.keys(quantity).map((ean) => {\n newTotal = quantity[ean] * price[ean] + newTotal;\n });\n setTotal(newTotal);\n }, [setQuantity, setPrice, quantity, products, price]);\n\n useEffect(() => {\n calulateCartAvailability();\n }, [productsCart, quantity]);\n\n var formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n const getProducts = async () => {\n const products = await getProductsFromCall(id);\n setProducts(products);\n };\n\n const addProductToCart = (newQuantity, newPrice, product) => {\n setQuantity({ ...quantity, ...newQuantity });\n setPrice({ ...price, ...newPrice });\n let newProductsCart = productsCart || {};\n newProductsCart[product.EAN] = product;\n newProductsCart[product.EAN]['Quantity'] = newQuantity[product.EAN];\n setProductsCart(newProductsCart);\n };\n\n const calulateCartAvailability = () => {\n let productsUnavailable = 0;\n Object.keys(productsCart).forEach((key) => {\n if (productsCart[key].AvailableItens < quantity[productsCart[key].EAN]) {\n productsUnavailable++;\n }\n });\n if (productsUnavailable > 0) {\n setCartAvailability(false);\n } else setCartAvailability(true);\n setFrete({ ShippingPrice: -1 });\n };\n\n const addExtraProducts = (product) => {\n setExtraProducts([...extraProducts, { ...product, initialQuantity: 1 }]);\n };\n\n const formatExtraProducts = () => {\n const newExtraProducts = {\n EAN: '0000000000000',\n Quantity: 0,\n Price: 0.0,\n Label: 'Medicamentos Adicionados',\n Dosage: false,\n ProductOptions: extraProducts,\n };\n\n return newExtraProducts;\n };\n return (\n <Container>\n <iframe\n style={{ border: 0, width: '100%', height: '700px' }}\n src=\"https://docs.google.com/document/d/e/2PACX-1vSzKRzMa_gfSGs87It0187wMJUThcHgWH_23IKy1QMduvuUWliQPlzwnzkTnMUt78QAZWTBl540PoOo/pub?embedded=true\"\n ></iframe>\n </Container>\n );\n}\n","const orderStauses = {\n all: '',\n order_canceled: {\n title: 'Pedido Cancelado',\n variant: 'danger',\n reasonText: true,\n externalOrderReference: false,\n },\n order_completed: {\n title: 'Pedido Concluído',\n variant: 'success',\n reasonText: false,\n externalOrderReference: false,\n },\n order_ready_to_delivery: {\n title: 'Pedido pronto para entrega',\n variant: 'warning',\n reasonText: false,\n externalOrderReference: true,\n },\n order_placed: { title: 'Pedido Feito', variant: 'primary' },\n};\n\nexport default orderStauses;\n","import React, { useEffect, useState } from 'react';\nimport { Container, Button, Form, Table, Badge } from 'react-bootstrap';\nimport { getOrders } from '../../services/pharmaceuticalCare';\nimport OrderStatuses from '../../helpers/orderStatuses';\n\nexport default function ListaPedidos() {\n const [orders, setOrders] = useState([]);\n const [filter, setFilter] = useState('order_placed');\n const [refresh, setRefresh] = useState(0);\n\n useEffect(() => {\n getOrdersPOS();\n }, [filter, refresh]);\n\n useEffect(() => {\n poollingForOrders();\n }, [refresh]);\n\n const poollingForOrders = async () => {\n const interval = 10000;\n setTimeout(() => setRefresh(Math.random()), interval);\n };\n const getOrdersPOS = async () => {\n const products = await getOrders(filter);\n setOrders(products);\n };\n\n const formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n const changeFilter = (filter) => {\n setFilter(filter);\n };\n\n return (\n <>\n <Container>\n <Form.Control\n as=\"select\"\n onChange={(s) => changeFilter(s.target.value)}\n aria-label=\"Filtro selecionado\"\n >\n {Object.keys(OrderStatuses).map((o) => (\n <option value={o} selected={o === filter}>\n {OrderStatuses[o]['title']}\n </option>\n ))}\n </Form.Control>\n <Table striped bordered hover>\n <thead>\n <tr>\n <th>#</th>\n <th>Nome</th>\n <th>Data da compra</th>\n <th>Status</th>\n <th>Valor Total</th>\n <th>Detalhes</th>\n </tr>\n </thead>\n <tbody>\n {orders.map((o) => (\n <tr>\n <td>{o.OrderId}</td>\n <td>{o.BuyerName}</td>\n <td>{o.OrderDate}</td>\n <td>\n {/* {o.OperationStatus} */}\n <Badge variant={OrderStatuses[o.OperationStatus]['variant']}>\n {OrderStatuses[o.OperationStatus]['title']}\n </Badge>\n </td>\n <td>{formatter.format(o.TotalValue)}</td>\n <td className=\"rightAlign\">\n <Button href={`/detalhe-pedido/${o.OrderId}`}>\n Detalhes\n </Button>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n </Container>\n </>\n );\n}\n","import React from 'react';\nimport {Container, Row, Col, FormControl} from 'react-bootstrap';\nimport Title from '../../components/Title';\nimport './styles.css';\n\n\nclass EstoqueVirtualVTEX extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n filtro: null,\n filterText: null\n }\n this.filterResults = this.filterResults.bind(this);\n this.getResult = this.getResult.bind(this);\n }\n async componentDidMount() {\n\n }\n\n getQuantidadeAtendida(pedido, ean){\n let quantidadeAtendida = 0;\n pedido.retornos.map((retorno) => {\n retorno.itens_pedido.map((item) => {\n if(item.ean === ean){\n quantidadeAtendida += item.quantidade_atendida;\n }\n return null;\n })\n return null;\n });\n return quantidadeAtendida;\n }\n\n filterResults(e){\n this.setState({filterText: e.target.value});\n }\n\n getResult(){\n if(this.state.filterText !== null && this.state.filterText !== ''){\n return this.props.lista.filter(e => \n JSON.stringify(e).toUpperCase().includes(this.state.filterText.toUpperCase()))\n }\n return this.props.lista;\n }\n\n render() {\n return (\n <Container fluid>\n <Row>\n <Col>\n <Title title={'Estoque Virtual VTEX'} />\n </Col>\n </Row> \n <Row>\n <FormControl \n placeholder='digite o que deseja buscar'\n onChange={this.filterResults}\n />\n </Row>\n <Row>\n {\n this.getResult(this.props.lista).map(x => (\n <div className='card'>\n <div className='card-header'>\n <span>\n <strong>id:</strong> {x.id}\n </span>\n <span>\n <strong>id_vtex:</strong> {x.referencia_externa}\n </span>\n <span>\n <strong>status:</strong> {x.status}\n </span>\n </div>\n <div className='card-body'>\n <div className='card-body-line'>\n <div>\n <span>Data do pedido: </span>\n <span>{x.data_pedido_cliente}</span>\n </div>\n <div>\n <span>Distribuidoras Solicitadas: </span>\n <span>{x.arquivo_envios.length}</span>\n </div>\n </div>\n <div className='card-body-line'>\n <div>\n <span>Modalidade de Entrega: </span>\n <span>{x.modalidade_entrega}</span>\n </div>\n <div>\n <span>Entrega Estimada em: </span>\n <span>{x.data_estimada_entrega}</span>\n </div>\n </div>\n <div>\n <span>Itens do pedido (EV): </span>\n {\n x.itens_consolidados.map((item) => (\n <div className='card-item'>\n <div>\n <span>ean: </span>\n <span>{item.ean}</span>\n </div>\n <div>\n <span>pedido: </span>\n <span>{item.pedido}</span>\n </div>\n <div>\n <span>retornado: </span>\n <span>{item.retornado}</span>\n </div>\n <div>\n <span>faturado: </span>\n <span>{item.faturado}</span>\n </div>\n <div>\n <span>recebido: </span>\n <span>{item.recebido}</span>\n </div>\n </div>\n ))\n }\n </div>\n </div>\n <div className='card-footer'>\n {\n x.temProblema === true ? \n <div style={{'color':'red'}}>\n <strong>status compra:</strong> Com Problema\n </div>\n :\n <div style={{'color':'green'}}>\n <strong>status compra:</strong> Tudo certo\n </div>\n }\n <div>\n {x.motivoProblema}\n </div>\n <div>\n <strong>Status VTEX: </strong> {x.vtex_status}\n </div>\n <div>\n <strong>Status separacao: </strong> {x.separacao}\n </div>\n </div>\n </div>\n ))\n }\n </Row>\n </Container>\n );\n }\n}\n\nexport default EstoqueVirtualVTEX;","import React from 'react';\nimport EstoqueVirtualVTEX from '../../components/EstoqueVirtualVTEX';\nimport { getEVOrders } from '../../services/warehouse';\n\nclass EstoqueVirtualVTEXContainer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lista: [],\n loading: false\n }\n this.getOrders = this.getOrders.bind(this);\n }\n\n async getOrders(){\n this.setState({loading: true});\n let resultados = []\n try {\n resultados = await getEVOrders();\n resultados = resultados.sort(function (a, b) {\n console.log(\"A1: \", a);\n console.log(\"B1: \", b);\n a = a.data_pedido_cliente.substring(0, 11).split('/').reverse().join('');\n b = b.data_pedido_cliente.substring(0, 11).split('/').reverse().join('');\n console.log(\"A: \", a);\n console.log(\"B: \", b);\n return a > b ? 1 : a < b ? -1 : 0;\n }).reverse();\n } catch (err) {\n alert(\"Erro ao buscar pedidos.\" + JSON.stringify(err))\n }\n this.setState({lista: resultados, loading: false});\n }\n\n async componentDidMount(){\n await this.getOrders();\n } \n\n render() {\n return (\n <div>\n {\n this.state.loading ?\n <div>\n carregando...\n </div>\n :\n <EstoqueVirtualVTEX\n lista={this.state.lista}\n loading={this.state.loading}\n refresh={this.getOrders}\n />\n }\n </div> \n );\n }\n}\n\nexport default EstoqueVirtualVTEXContainer;","import { myAxios } from './axios';\n\nexport const getEVOrders = async () => {\n const response = await myAxios.get('/warehouse/ev/orders');\n return response.data;\n}\n","import React from 'react';\nimport {Container, Row, Col} from 'react-bootstrap';\nimport TabSelector from '../../components/TabSelector';\nimport Title from '../../components/Title';\nimport './styles.css';\nimport EstoqueVirtualVTEXContainer from '../../containers/Warehouse/EstoqueVirtualVTEXContainer';\n\n\nclass Warehouse extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n tabs: ['ESTOQUE VIRTUAL VTEX', 'ESTOQUE VIRTUAL INTERNO'],\n selectedTab: 'ESTOQUE VIRTUAL VTEX'\n }\n this.handleTabClick = this.handleTabClick.bind(this);\n }\n async componentDidMount() {\n\n }\n\n handleTabClick(event){\n const text = event.target.innerText;\n this.setState({selectedTab: text});\n }\n\n render() {\n return (\n <Container fluid>\n <Row>\n <Col>\n <Title title={'ESTOQUE'} />\n </Col>\n </Row>\n <TabSelector\n tabs={this.state.tabs}\n selectedTab={this.state.selectedTab}\n handleClick={this.handleTabClick}\n />\n <Row>\n <Col>\n {\n this.state.selectedTab === 'ESTOQUE VIRTUAL VTEX' ?\n <EstoqueVirtualVTEXContainer />\n :\n null\n }\n {\n this.state.selectedTab === 'ESTOQUE VIRTUAL INTERNO' ?\n <div>\n Funcionalidade em desenvolvimento...\n </div>\n :\n null\n }\n </Col>\n </Row>\n </Container>\n );\n }\n}\n\nexport default Warehouse;","const OrderStatusTransitions = {\n order_placed: ['order_canceled', 'order_ready_to_delivery'],\n order_ready_to_delivery: ['order_canceled', 'order_completed'],\n order_completed: ['order_canceled'],\n order_canceled: [],\n};\n\nexport default OrderStatusTransitions;\n","import React, { useState, useEffect } from 'react';\nimport { Container, Row, Col, Alert, Badge } from 'react-bootstrap';\nexport default function ProductEcommerce({ product }) {\n const [eanQuantity, setEanQuantity] = useState({});\n const formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n const copyToClipboard = (text) => {\n navigator.clipboard.writeText(text);\n };\n\n return (\n <Container>\n <Row>\n <Col>\n <b>{product.Label}</b>\n </Col>\n </Row>\n <Row>\n <Col>EAN</Col>\n <Col>Procfit ID</Col>\n <Col>Preço Unitário</Col>\n <Col>Preço Total</Col>\n <Col>Quantidade</Col>\n </Row>\n <Row>\n <Col>\n {product.EAN}\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n bg=\"primary\"\n onClick={() => copyToClipboard(product.EAN)}\n >\n copiar\n </Badge>\n </Col>\n <Col>\n {product.ProcFitId}\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n bg=\"primary\"\n onClick={() => copyToClipboard(product.ProcFitId)}\n >\n copiar\n </Badge>\n </Col>\n <Col>\n {formatter.format(product.UnitPrice)}\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n bg=\"primary\"\n onClick={() => copyToClipboard(product.UnitPrice)}\n >\n copiar\n </Badge>\n </Col>\n <Col>\n {formatter.format(product.TotalPrice)}\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n bg=\"primary\"\n onClick={() => copyToClipboard(product.TotalPrice)}\n >\n copiar\n </Badge>\n </Col>\n <Col>\n {product.Quantity}\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n bg=\"primary\"\n onClick={() => copyToClipboard(product.Quantity)}\n >\n copiar\n </Badge>\n </Col>\n </Row>\n\n <hr />\n </Container>\n );\n}\n","const orderShippingObject = {\n Address: 'Endereço',\n AddressCity: 'Cidade',\n AddressDistrict: 'Bairro',\n AddressNumber: 'Número',\n AddressState: 'Estado',\n AddressType: 'Tipo de Endereço',\n AddressComplement: 'Complemento',\n BuyerBirthDate: 'Data de Nascimento',\n BuyerCPF: 'CPF',\n BuyerName: 'Nome',\n BuyerRG: 'RG',\n ZipCode: 'CEP',\n BuyerEmail: 'Email',\n BuyerMobilePhone: 'Telefone Celular',\n};\n\nexport default orderShippingObject;\n","import React, { useEffect, useState } from 'react';\nimport {\n orderDetails as GetOrderDetails,\n getProductsFromCall,\n setOrderStatus,\n} from '../../services/pharmaceuticalCare';\nimport { useParams } from 'react-router-dom';\nimport {\n Container,\n Row,\n Col,\n Button,\n Modal,\n Badge,\n Form,\n} from 'react-bootstrap';\nimport OrderStatuses from '../../helpers/orderStatuses';\nimport OrderStatusTransitions from '../../helpers/orderStatusTransition';\nimport ProductShow from '../../components/ProductShow';\nimport orderShippingObject from '../../helpers/orderShipping';\nimport Title from '../../components/Title';\nimport './styles.css';\nexport default function VendaFarmacia() {\n const [orderDetails, setOrderDetails] = useState({});\n const [orderShipping, setOrderShipping] = useState({});\n const [orderItems, setOrderItems] = useState([]);\n const [products, setProducts] = useState({});\n\n const [productsCart, setProductsCart] = useState([]);\n const [quantity, setQuantity] = useState({});\n const [total, setTotal] = useState(0);\n const [price, setPrice] = useState({});\n const { id } = useParams();\n\n const [showJustification, setShowJustification] = useState('');\n\n const handleCloseJustification = () => {\n setShowJustification(false);\n clearNextStatus();\n };\n const handleShowJustification = () => setShowJustification(true);\n\n const [showExternalOrderReference, setExternalOrderReference] = useState('');\n\n const handleCloseExternalOrderReference = () => {\n setExternalOrderReference(false);\n clearNextStatus();\n };\n const handleShowExternalOrderReference = () =>\n setExternalOrderReference(true);\n\n const [nextStatus, setNextStatus] = useState('');\n const [nextStatusJustification, setNextStatusJustification] = useState('');\n const [nextExternalOrderReference, setNextExternalOrderReference] =\n useState('');\n\n useEffect(() => {\n getOrderDetails();\n }, []);\n\n useEffect(() => {\n let newTotal = 0;\n Object.keys(quantity).map((ean) => {\n newTotal = quantity[ean] * price[ean] + newTotal;\n });\n setTotal(newTotal);\n }, [setQuantity, setPrice, quantity, products, price]);\n\n var formatter = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n });\n\n const getOrderDetails = async () => {\n const od = await GetOrderDetails(id);\n setOrderDetails(od);\n setOrderShipping(od.OrderShipping);\n setOrderItems(od.OrderItems);\n };\n\n const addProductToCart = (newQuantity, newPrice, product) => {\n setQuantity({ ...quantity, ...newQuantity });\n setPrice({ ...price, ...newPrice });\n let newProductsCart = productsCart || {};\n newProductsCart[product.EAN] = product;\n newProductsCart[product.EAN]['Quantity'] = newQuantity[product.EAN];\n setProductsCart(newProductsCart);\n };\n\n const copyToClipboard = (text) => {\n navigator.clipboard.writeText(text);\n };\n\n const checkStatusJustification = async (status) => {\n if (OrderStatuses[status]['reasonText']) {\n setNextStatus(status);\n handleShowJustification();\n } else if (OrderStatuses[status]['externalOrderReference']) {\n setNextStatus(status);\n handleShowExternalOrderReference();\n } else await setStatus(status, '');\n };\n\n const setStatus = async (status, reasonText, externalOrderReference) => {\n await setOrderStatus(id, status, reasonText, externalOrderReference);\n getOrderDetails();\n handleCloseJustification();\n };\n\n const clearNextStatus = () => {\n setNextStatus('');\n setNextStatusJustification('');\n };\n\n return (\n <>\n <Container>\n <Row>\n <Title title={`Pedido: #${id}`} />\n <pre className=\"rightAlign\">\n Data do pedido: {orderDetails['OrderDate']}\n </pre>\n </Row>\n <Row>\n <Col>\n {Object.keys(orderShipping).map((o) => (\n <div>\n <b>{orderShippingObject[o]}: </b>\n {orderShipping[o]}\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n onClick={() => copyToClipboard(orderShipping[o])}\n >\n copiar\n </Badge>\n </div>\n ))}\n {orderDetails['PDFUrl'] && (\n <div>\n <b>Receita PDF: </b>\n <a\n href={orderDetails['PDFUrl']}\n rel=\"noreferrer\"\n target=\"_blank\"\n >\n clique aqui para visualizar\n </a>\n </div>\n )}\n {orderDetails['UrlTracking'] && (\n <div>\n <b>Tracking link: </b>\n <a\n href={orderDetails['UrlTracking']}\n rel=\"noreferrer\"\n target=\"_blank\"\n >\n clique aqui para visualizar\n </a>\n </div>\n )}\n </Col>\n <Col>\n <Row>\n <Title title=\"Status atual\" />\n <h4>\n <Badge\n variant={\n orderDetails['OperationStatus'] &&\n OrderStatuses[orderDetails['OperationStatus']]['variant']\n }\n >\n {orderDetails['OperationStatus'] &&\n OrderStatuses[orderDetails['OperationStatus']]['title']}\n </Badge>\n </h4>\n </Row>\n <Row style={{ marginTop: 30 }}>\n <Title title=\"Transitar para\" />\n <div>\n {orderDetails['OperationStatus'] &&\n OrderStatusTransitions[orderDetails['OperationStatus']].map(\n (o) => (\n <h5>\n <Badge\n style={{ cursor: 'pointer' }}\n onClick={async () => {\n await checkStatusJustification(o);\n }}\n variant={o && OrderStatuses[o]['variant']}\n >\n {o && OrderStatuses[o]['title']}\n </Badge>\n </h5>\n )\n )}\n </div>\n </Row>\n </Col>\n </Row>\n <Row style={{ marginTop: 30 }}>\n <Col>\n <Title title=\"Produtos:\" />\n {orderItems &&\n orderItems.length > 0 &&\n orderItems.map((product) => {\n return (\n <ProductShow\n product={product}\n addProductToCart={addProductToCart}\n editable={false}\n />\n );\n })}\n </Col>\n </Row>\n <Row>\n <Col>\n <Title title={'Detalhes do Pagamento e Frete'} />\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Tipo de Pagamento:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{orderDetails['PaymentType']}</b>\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Tipo de Frete:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{orderDetails['ShippingType']}</b>\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Valor do Frete:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{formatter.format(orderDetails['ShippingPrice'])}</b>\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n onClick={() => copyToClipboard(orderDetails['ShippingPrice'])}\n >\n copiar\n </Badge>\n </Col>\n </Row>\n <Row style={{ marginTop: 30 }}>\n <Col>\n <Title title={'Total'} />\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Cupom de Desconto:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{orderDetails['DiscountCoupom']}</b>\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Desconto Percentual:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{orderDetails['DiscountPercentage']}%</b>\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Desconto Total:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{formatter.format(orderDetails['TotalDiscount'])}</b>\n </Col>\n </Row>\n <Row>\n <Col>\n <b>Preço Total:</b>\n </Col>\n <Col className=\"rightAlign\">\n <b>{formatter.format(orderDetails['TotalValue'])}</b>\n <Badge\n variant=\"secondary\"\n style={{ cursor: 'pointer', marginLeft: 10 }}\n onClick={() => copyToClipboard(orderDetails['TotalValue'])}\n >\n copiar\n </Badge>\n </Col>\n </Row>\n </Container>\n <Modal show={showJustification} onHide={handleCloseJustification}>\n <Modal.Header closeButton>\n <Modal.Title>Justificativa</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Form.Group className=\"mb-3\">\n <Form.Control\n onCha\n onChange={(e) => {\n setNextStatusJustification(e.target.value);\n }}\n placeholder=\"Justifique a mudança de status\"\n />\n </Form.Group>\n </Modal.Body>\n <Modal.Footer>\n <Button\n variant=\"primary\"\n disabled={nextStatusJustification === ''}\n onClick={() => {\n setStatus(nextStatus, nextStatusJustification);\n handleCloseJustification();\n }}\n >\n Save Changes\n </Button>\n </Modal.Footer>\n </Modal>\n <Modal\n show={showExternalOrderReference}\n onHide={handleCloseExternalOrderReference}\n >\n <Modal.Header closeButton>\n <Modal.Title>Código de Comanda</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Form.Group className=\"mb-3\">\n <Form.Control\n type=\"number\"\n onChange={(e) => {\n setNextExternalOrderReference(e.target.value);\n }}\n placeholder=\"Digite o Código de Comanda\"\n />\n </Form.Group>\n </Modal.Body>\n <Modal.Footer>\n <Button\n variant=\"primary\"\n disabled={\n nextExternalOrderReference === '' ||\n String(nextExternalOrderReference).length !== 9\n }\n onClick={() => {\n setStatus(\n nextStatus,\n 'externalOrderReference',\n nextExternalOrderReference\n );\n handleCloseExternalOrderReference();\n }}\n >\n Save Changes\n </Button>\n </Modal.Footer>\n </Modal>\n </>\n );\n}\n","import React from 'react';\nimport Funil from '../../components/FunilList';\n\n\nclass FunilList extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n }\n }\n\n render() {\n return (\n <div className='funil-list-container'>\n {\n this.props.lista.map((funil) => (\n <Funil \n data = {funil}\n />\n ))\n }\n </div>\n );\n }\n}\n\nexport default FunilList;","import React from 'react';\nimport { getFunilList } from '../../services/funilService';\nimport FunilList from '../../components/FunilList';\n\n\nclass FunilContainer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lista: [],\n loading: false,\n }\n this.getFunilList = this.getFunilList.bind(this);\n }\n\n async getFunilList(){\n this.setState({loading: true});\n let resultados = [];\n try {\n resultados = await getFunilList();\n //resultados = list;\n }\n catch(err) {\n console.log(\"erro ao buscar usuários cadastrados.\", err)\n }\n this.setState({lista: resultados, loading: false});\n }\n\n async componentDidMount(){\n await this.getFunilList();\n } \n\n render() {\n return (\n <FunilList\n lista={this.state.lista}\n loading={this.state.loading}\n onFunilUpdate={this.getFunilList}\n />\n );\n }\n}\n\nexport default FunilContainer;","import { myAxios } from './axios';\n\nexport const getFunilList = async () => {\n const response = await myAxios.get('/funil');\n return response.data;\n}\n","import React from 'react';\nimport {Container, Row, Col} from 'react-bootstrap';\nimport Title from '../../components/Title';\nimport './styles.css';\nimport FunilContainer from '../../containers/Funil/FunilContainer';\n\n\nclass Funil extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n }\n }\n async componentDidMount() {\n\n }\n\n render() {\n return (\n <Container fluid>\n <Row>\n <Col>\n <Title title={'SETUP DE FUNIL'} />\n </Col>\n </Row>\n <Row>\n <FunilContainer />\n </Row>\n </Container>\n );\n }\n}\n\nexport default Funil;","import React from 'react';\nimport {Container, Row, Col, FormControl, InputGroup, Button } from 'react-bootstrap';\nimport Title from '../../components/Title';\nimport Loading from '../../components/Loading';\nimport { getAuthenticatedUser } from '../../services/userService';\nimport { searchForPrescriptionOrder } from '../../services/prescriptionOrder';\nimport './styles.css'\n\n\nclass FormularioEntrega extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n orderId: '',\n prescription: null,\n resultsFor: '',\n loading: false\n }\n this.handleSearch = this.handleSearch.bind(this);\n this.handleInput = this.handleInput.bind(this);\n }\n\n handlePageClick(page){\n window.location.href=`/${page}`;\n }\n\n handleInput(e, state){\n this.setState({[state]: e.target.value});\n }\n\n async componentDidMount() {\n const user = await getAuthenticatedUser();\n this.setState({availableFeatures: user.features})\n }\n\n async handleSearch(){\n this.setState({loading: true})\n const payload = {\n \"orderId\": this.state.orderId\n }\n const documentUrl = await searchForPrescriptionOrder(payload.orderId);\n window.open(documentUrl, \"_blank\")\n this.setState({orderId: '', resultsFor: this.state.orderId, loading: false});\n }\n\n\n render() {\n return (\n <Container fluid>\n <Row>\n <Col>\n <Title title={'Conferência de formulario de entrega (Portaria344):'} />\n </Col>\n </Row>\n <Row>\n <Col md='5' sm='12' xs='5'>\n <div className='form-container'>\n <InputGroup>\n <FormControl\n value={this.state.orderId}\n placeholder='Código do pedido'\n onChange = {(e) => this.handleInput(e,'orderId')}\n /> \n </InputGroup>\n </div>\n </Col>\n <Col md='auto' sm='auto' xs='auto'>\n <Button\n className=\"btn\"\n variant=\"info\"\n block\n onClick={this.handleSearch}\n disabled={!this.state.orderId}\n label={'BUSCAR'}>\n BUSCAR\n </Button>\n </Col>\n </Row> \n {\n this.state.loading ? \n <Row>\n <Loading/>\n </Row>\n :\n null\n } \n </Container>\n );\n }\n}\n\nexport default FormularioEntrega;","import {myAxios} from './axios';\n\nexport const searchForPrescriptionOrder = async (orderId) => {\n const response = await myAxios.get('/prescriptionOrder/' + orderId);\n return response.data;\n}","import React from 'react';\nimport { BrowserRouter as Router, Switch, Route } from 'react-router-dom';\nimport Farmacia from './pages/Farmacia';\nimport Atendimento from './pages/Atendimento';\nimport Home from './pages/Home';\nimport Logout from './pages/Logout';\nimport Conta from './pages/Conta';\nimport PDV from './pages/PDV';\nimport Credencial from './pages/Credencial';\nimport AtencaoFarmaceutica from './pages/AtencaoFarmaceutica';\nimport Base from './pages/Base';\nimport DetalhesFarmacia from './pages/DetalhesFarmacia';\nimport VendaFarmacia from './pages/VendaFarmacia';\nimport VendaOrientacao from './pages/VendaOrientacao';\nimport ListaPedidos from './pages/ListaPedidos';\nimport Warehouse from './pages/Warehouse';\nimport DetalhePedido from './pages/DetalhePedido';\nimport Funil from './pages/Funil';\nimport FormularioEntrega from './pages/FormularioEntega';\n\nexport default function RoutesManager() {\n return (\n <Router>\n <Switch>\n <Route exact path=\"/\">\n <Home />\n </Route>\n <Route exact path=\"/logout\">\n <Logout />\n </Route>\n <Route path=\"/conta\">\n <Conta />\n </Route>\n <Route exact path=\"/dispensacao/:id\">\n <DetalhesFarmacia />\n </Route>\n <Route exact path=\"/dispensacao\">\n <Farmacia />\n </Route>\n <Route path=\"/atendimento\">\n <Atendimento />\n </Route>\n <Route path=\"/pdv\">\n <PDV />\n </Route>\n <Route path=\"/credenciais\">\n <Credencial />\n </Route>\n <Route path=\"/atencao-farmaceutica\">\n <AtencaoFarmaceutica />\n </Route>\n <Route path=\"/Venda-farmacia/:id\">\n <VendaFarmacia />\n </Route>\n <Route path=\"/Venda-orientacao/:id\">\n <VendaOrientacao />\n </Route>\n <Route path=\"/detalhe-pedido/:id\">\n <DetalhePedido />\n </Route>\n <Route path=\"/lista-pedidos\">\n <ListaPedidos />\n </Route>\n <Route path=\"/estoque\">\n <Warehouse />\n </Route>\n <Route path=\"/funil\">\n <Funil />\n </Route>\n <Route path=\"/base\">\n <Base />\n </Route>\n <Route path=\"/formulario-entrega\">\n <FormularioEntrega />\n </Route>\n </Switch>\n </Router>\n );\n}\n","import * as React from \"react\";\n\nfunction SvgFrameUser(props) {\n return (\n <svg\n width={40}\n height={40}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M13.967 20.77s-3.165 2.656-2.556 6.46c.61 3.805 16.31 3.58 16.792 0 .482-3.58-2.438-6.228-2.438-6.228\"\n stroke=\"#132E59\"\n strokeWidth={2}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M19.795 19.23a4.615 4.615 0 100-9.23 4.615 4.615 0 000 9.23z\"\n stroke=\"#30D4E3\"\n strokeWidth={2}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <rect\n x={1}\n y={1}\n width={38}\n height={38}\n rx={19}\n stroke=\"#132E59\"\n strokeWidth={2}\n />\n </svg>\n );\n}\n\nexport default SvgFrameUser;\n","import * as React from 'react';\n\nfunction SvgLogoNexo(props) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"193\"\n height=\"40.547\"\n viewBox=\"0 0 193 40.547\"\n >\n <defs>\n <clipPath id=\"clip-path\">\n <rect\n id=\"Retângulo_3\"\n data-name=\"Retângulo 3\"\n width=\"193\"\n height=\"40.547\"\n transform=\"translate(0 0)\"\n fill=\"#3c0e6b\"\n />\n </clipPath>\n </defs>\n <g id=\"Grupo_3\" data-name=\"Grupo 3\" transform=\"translate(9 2)\">\n <g\n id=\"Grupo_1\"\n data-name=\"Grupo 1\"\n transform=\"translate(-9 -2)\"\n clip-path=\"url(#clip-path)\"\n >\n <path\n id=\"Caminho_1\"\n data-name=\"Caminho 1\"\n d=\"M353.568,4.2c.9,3.85.542,7.636-2.418,14.216l-4.6,9.921L337.139,4.2H325.648l14.969,37.761h11.209l9.9-21.324c3.006-6.786,3.52-12.143,2.607-16.437Z\"\n transform=\"translate(-217.744 -2.811)\"\n fill=\"#3c0e6b\"\n />\n <path\n id=\"Caminho_2\"\n data-name=\"Caminho 2\"\n d=\"M494.912,5.729a20.278,20.278,0,0,0-34.818,14.585,20.277,20.277,0,1,0,40.547,0,19.756,19.756,0,0,0-5.729-14.585m-7.881,21.817a8.606,8.606,0,0,1-6.623,3.007,8.48,8.48,0,0,1-6.582-3.007,10.309,10.309,0,0,1-2.763-7.232,10.749,10.749,0,0,1,2.682-7.354,8.808,8.808,0,0,1,13.326,0,10.75,10.75,0,0,1,2.681,7.354,10.4,10.4,0,0,1-2.722,7.232\"\n transform=\"translate(-307.641 -0.001)\"\n fill=\"#3c0e6b\"\n />\n <path\n id=\"Caminho_3\"\n data-name=\"Caminho 3\"\n d=\"M57.323,22.055V17.07Q57.323,1.716,43,1.715A22.946,22.946,0,0,0,30.638,5.721q-3.579-4-10.888-4.006A21.969,21.969,0,0,0,8.992,4.761,12.565,12.565,0,0,1,2.865,6.329H0V40.3H10.82V13.611a15.45,15.45,0,0,1,7.021-2.19,5.827,5.827,0,0,1,3.978,1.392,4.862,4.862,0,0,1,1.591,3.859V40.3H34.071V17.07a27.664,27.664,0,0,0-.2-3.354,15.707,15.707,0,0,1,7.217-2.295,5.826,5.826,0,0,1,3.978,1.392,4.86,4.86,0,0,1,1.591,3.859V40.3H57.343l0-18.246Z\"\n transform=\"translate(0 -1.147)\"\n fill=\"#3c0e6b\"\n />\n <path\n id=\"Caminho_4\"\n data-name=\"Caminho 4\"\n d=\"M226.382,27.389l-.3.251a16.366,16.366,0,0,1-15.869,2.53,10.36,10.36,0,0,1-5-4.4,22.909,22.909,0,0,0,14.327-.537,14.789,14.789,0,0,0,5.4-3.663,12.473,12.473,0,0,0,2.276-13.813A11.917,11.917,0,0,0,224.9,4.4,15.368,15.368,0,0,0,215.56.1c-6.125-.66-12.693,2.1-17.238,7.225a19.982,19.982,0,0,1-1.761-5.263l-.044-.237h-9.394l.043.327a28.939,28.939,0,0,0,7.069,15.381l-.019.081c-.772,9.288,4.419,18.027,12.625,21.25l.079.03a26.056,26.056,0,0,0,6.1,1.468,25.432,25.432,0,0,0,2.9.165,25.651,25.651,0,0,0,13.938-4.118l.2-.131ZM204.689,15.483a10.225,10.225,0,0,1,9.482-6.4c1.3.066,3.062.613,3.727,1.94a3.662,3.662,0,0,1-.39,3.788,4.922,4.922,0,0,1-1.715,1.416l-.091.047a11.715,11.715,0,0,1-7.54.621,12.219,12.219,0,0,1-3.474-1.409\"\n transform=\"translate(-125.12 0)\"\n fill=\"#3c0e6b\"\n />\n </g>\n </g>\n </svg>\n );\n}\n\nexport default SvgLogoNexo;\n","import React from 'react';\nimport SvgFrameUser from '../../assets/svg/FrameUser';\nimport SvgLogoNexo from '../../assets/svg/LogoNexo';\nimport './styles.css';\n\nfunction Navbar({ isSignedIn, userName }) {\n return (\n <div className='menu-container' style={{ justifyContent: isSignedIn ? 'space-between' : 'center' }}>\n {isSignedIn && <h1>Auton</h1>}\n <SvgLogoNexo />\n {isSignedIn && <a href=\"/conta\">Operador(a), {userName}<SvgFrameUser /></a>}\n </div>\n );\n}\n\nexport default Navbar;\n","import React, { useEffect } from 'react'\nimport { GoogleLogin, useGoogleLogin } from 'react-google-login'\nimport { AuthService } from '../../services/AuthServices'\nconst clientId = process.env.REACT_APP_CLIENT_ID\n\nexport function AuthenticationDialog(props) {\n const onSuccessGoogleAuthentication = (response) => {\n AuthService.signIn(response)\n if (typeof props?.onAuthenticate !== 'function') return\n props?.onAuthenticate(response)\n }\n\n const onFailGoogleAuthentication = () => {\n AuthService.signOut()\n if (typeof props?.onAuthenticateFail !== 'function') return\n props?.onAuthenticateFail()\n }\n\n const { loaded } = useGoogleLogin({ clientId })\n\n useEffect(() => {\n if (loaded) props?.onLoad?.()\n }, [loaded, props])\n\n return (\n <GoogleLogin\n loginHint={'teste'}\n clientId={clientId}\n buttonText={'Autenticar'}\n onSuccess={onSuccessGoogleAuthentication}\n onFailure={onFailGoogleAuthentication}\n cookiePolicy={'single_host_origin'}\n />\n )\n}\n","import React, { useEffect, useState } from 'react';\nimport './index.css';\nimport RoutesManager from './router';\nimport Navbar from './components/Navbar';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport { AuthenticationDialog } from './components/AuthenticationDialog';\nimport { AuthService } from './services/AuthServices';\nimport { getAuthenticatedUser } from './services/userService';\n\nexport const Flex = (props) => (\n <div {...props} style={{ ...props.style, display: 'flex' }} />\n);\n\nexport const Block = (props) => (\n <div {...props} style={{ ...props.style, display: 'block' }} />\n);\n\nfunction NavigationButton({ permission, ...props }) {\n const navStyle = {\n textDecoration: 'none',\n marginBottom: 10,\n };\n\n return (\n <a {...props} className=\"nav-button\" style={navStyle}>\n <span className=\"nav-button-text\">{props.children}</span>\n </a>\n );\n}\n\nconst topNavList = [\n {\n children: 'HOME',\n href: '/',\n },\n {\n children: 'CONTA',\n href: '/conta',\n },\n {\n children: 'DISPENSAÇÃO',\n href: '/dispensacao',\n permission: 'DISPENSAÇÃO',\n },\n {\n children: 'ATENDIMENTO',\n href: '/atendimento',\n permission: 'ATENDIMENTO',\n },\n {\n children: 'PDV',\n href: '/pdv',\n permission: 'PDV',\n },\n {\n children: 'FILA DE COMUNICAÇÃO',\n href: '/atencao-farmaceutica',\n permission: 'ATENCAO-FARMACEUTICA',\n },\n {\n children: 'LISTA DE PEDIDOS',\n href: '/lista-pedidos',\n permission: 'LISTA-PEDIDOS',\n },\n {\n children: 'ESTOQUE',\n href: '/estoque',\n permission: 'ESTOQUE',\n },\n {\n children: 'FORMULARIO-ENTREGA',\n href: '/formulario-entrega',\n permission: 'FORMULARIO-ENTREGA',\n },\n];\n\nconst bottomTabList = [\n {\n children: 'Logout',\n href: '/logout',\n },\n];\n\nfunction LeftNavigation({ userFeatures }) {\n return (\n <div className=\"nav-container\">\n <div>\n {topNavList.map(\n (item) =>\n (!item.permission ||\n userFeatures?.some((perms) => perms === item?.permission)) && (\n <NavigationButton {...item} />\n )\n )}\n </div>\n <div>\n {bottomTabList.map(\n (item) =>\n (!item.permission ||\n userFeatures?.some((perms) => perms === item?.permission)) && (\n <NavigationButton {...item} />\n )\n )}\n </div>\n </div>\n );\n}\n\nconst App = () => {\n const isSignedIn = AuthService.isSignIn();\n const [googleLoaded, setGoogleLoaded] = useState(false);\n const [userFeatures, setUserFeatures] = useState([]);\n const [userName, setUserName] = useState([]);\n\n useEffect(() => {\n async function fetchData() {\n if (userFeatures?.length || !isSignedIn) return;\n const user = await getAuthenticatedUser();\n setUserName(user.nome);\n setUserFeatures(user.features);\n }\n fetchData();\n }, []);\n\n return (\n <div>\n <Navbar {...{ isSignedIn, userFeatures, userName }} />\n <Flex>\n {isSignedIn && <LeftNavigation {...{ userFeatures }} />}\n <Block style={{ padding: 50, width: '100%' }}>\n {isSignedIn ? (\n <RoutesManager />\n ) : (\n <div\n style={{\n height: '100vh',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n }}\n >\n <strong>Fazer Login</strong>\n <AuthenticationDialog\n isOpen={!isSignedIn && googleLoaded}\n onLoad={() => setGoogleLoaded(true)}\n />\n </div>\n )}\n </Block>\n </Flex>\n </div>\n );\n};\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n\nReactDOM.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>,\n document.getElementById('root')\n); \n"],"sourceRoot":""}