{"version":3,"sources":["styles/Global/index.js","services/history.js","services/enviroment.js","utils/constants.js","services/authProvider.js","utils/index.js","services/api.js","services/companyFilialServices.js","pages/ConfigFilial/styles.js","pages/ConfigFilial/index.js","services/companyFornecedorServices.js","services/companyServices.js","pages/ConfigFornecedor/styles.js","pages/ConfigFornecedor/index.js","services/contactUsServices.js","pages/ContactUs/styles.js","pages/ContactUs/index.js","pages/CustomComponents/styles.js","components/MFComboBox/styles.js","components/MFComboBox/index.js","components/MFComboCheckBox/styles.js","components/MFComboCheckBox/index.js","components/MFBootbox/styles.js","components/MFBootbox/index.js","pages/CustomComponents/index.js","services/faqServices.js","components/Accordion/styles.js","components/Accordion/index.js","pages/FaqProvider/FaqItem/styles.js","pages/FaqProvider/FaqItem/index.js","pages/FaqConfig/styles.js","pages/FaqConfig/index.js","pages/FaqProvider/styles.js","pages/FaqProvider/index.js","store/modules/user/actions.js","auth/index.js","pages/Login/styles.js","pages/Login/index.js","pages/MFRedirectToHome/styles.js","pages/MFRedirectToHome/index.js","utils/userGroups.js","pages/LoginAD/index.js","services/userServices.js","components/PasswordStrength/styles.js","components/PasswordStrength/index.js","pages/PasswordValidity/styles.js","components/MFPageLoader/styles.js","components/MFPageLoader/index.js","pages/PasswordValidity/index.js","pages/PreLogin/styles.js","pages/PreLogin/index.js","pages/RecoverPassword/styles.js","pages/RecoverPassword/index.js","components/ExcelExportButton/styles.js","components/ExcelExportButton/index.js","components/SelecionarAllButton/styles.js","components/SelecionarAllButton/index.js","services/titleServices.js","components/SearchBox/styles.js","components/SearchBox/index.js","components/MFModal/styles.js","components/MFModal/index.js","components/TitleTable/styles.js","components/TitleTable/index.js","components/MFFakeLoaderList/styles.js","pages/Title/styles.js","components/MFFakeLoaderList/index.js","pages/Title/index.js","pages/UserConfig/styles.js","pages/UserConfig/index.js","pages/UserRegistration/styles.js","pages/UserRegistration/index.js","pages/MFRedirect/styles.js","pages/MFRedirect/index.js","components/Header/SubMenu/styles.js","components/Header/SubMenu/index.js","components/Header/HorizontalMenu/style.js","components/Header/HorizontalMenu/index.js","components/Header/styles.js","components/Header/MenuVertical/styles.js","components/Header/MenuVertical/index.js","components/Header/index.js","routes/index.js","routes.js","App.js","store/modules/user/reducer.js","store/modules/rootReducer.js","store/modules/user/sagas.js","store/modules/rootSaga.js","store/persistReducer.js","store/SetTransform.js","store/index.js","index.js","assets/img/logo.png","assets/img/login-bg.png","../node_modules/pdfjs-dist/build sync"],"names":["createGlobalStyle","history","createBrowserHistory","config","baseUrl","TokenLifetime","Versao","timeoutApi","constants","CLIENT_ID","AUTHORITY","auth","authority","clientId","redirectUri","window","location","origin","postLogoutRedirectUri","validateAuthority","cache","cacheLocation","storeAuthStateInCookie","options","loginType","LoginType","Redirect","tokenRefreshUri","authProvider","MsalAuthProvider","scopes","maskCnpj","value","newValue","replace","maskCpf","validateCPF","strCPF","restOfDivision","retSum","newCpf","toString","i","Number","substring","validateCNPJ","cnpj","length","tamanho","numeros","digitos","soma","pos","charAt","resultado","limparCPFCNPJ","isEmail","email","test","formatMoney","toLocaleString","style","currency","formatDate","data","newDate","Date","day","getDate","dayF","mes","getMonth","mesF","anoF","getFullYear","verifyExpiresIn","expiresInDataLocalStorage","localStorage","getItem","expiresInData","currentDate","clear","setTimeout","push","now","logout","checkMatch","valueInfo","arrMatch","match","arrParts","parse","textLength","ValueInfoLengh","text","textFull","arrayCompare","first","last","filter","item","indexOf","axiosInstance","axios","create","timeout","withCredentials","headers","Accept","interceptors","request","use","configAxios","configCustom","token","Authorization","console","tron","log","withRouter","getConfigFiliais","get","response","inserirConfigFilial","params","post","atualizarConfigFilial","excluirConfig","id","delete","getPorSequencial","sequencial","Container","styled","div","ErroWrap","MsgErro","span","MFJumbotron","Jumbotron","MFTitleBox","h1","MFForm","Form","MFFormGroup","FormGroup","MFLabel","Label","MFInput","Input","MFWrapButtons","MFButton","Button","FormRow","MFTableWrap","MFTable","Table","MFThead","thead","MFTr","tr","MFTbody","tbody","IconEdit","FaEdit","IconDelete","FaTrashAlt","Alert","props","elevation","variant","FilialConfig","useHistory","useState","idConfiguracaoFilial","nome","setConfig","filiais","setFiliais","erro","open","message","severity","snackbar","setSnackbar","isEditing","setIsEditing","useEffect","fetchFiliais","status","sortedFiliais","dados","sort","a","b","parseInt","map","filial","padStart","validateEmails","emails","emailArray","split","emailRegex","every","trim","handleSubmit","e","preventDefault","some","action","sucesso","limparForm","handleDelete","confirm","handleCloseSnackbar","event","reason","handleSequencialBlur","target","slice","prevConfig","onSubmit","type","onChange","onBlur","maxLength","required","disabled","color","onClick","goBack","key","handleEdit","colSpan","textAlign","Snackbar","autoHideDuration","onClose","atualizarFornecedor","getConfigFornecedores","inserirConfigFornecedor","excluirConfigFornecedor","getCnpjs","useStyles","makeStyles","theme","autocomplete","padding","display","border","height","borderRadius","boxShadow","FornecedorConfig","classes","idConfiguracaoFornecedor","taxa","tempoAntecipacao","razaoSocial","fornecedores","setFornecedores","setErro","cnpjOptions","setCnpjOptions","selectedCnpj","setSelectedCnpj","fetchFornecedores","cnpjRaiz","substr","fornecedorExistente","find","f","fornecedorData","handleCnpjSearch","documento","dataRet","error","Autocomplete","getOptionLabel","option","onInputChange","renderInput","TextField","className","noOptionsText","renderOption","Fragment","inputValue","fornecedor","undefined","parseFloat","minimumFractionDigits","maximumFractionDigits","postContatcUs","contatcUs","telefone","assunto","mensagem","usuario","emailUsuario","MFRow","Row","MFColForm","Col","SuccessWrap","MsgSuccess","ContactUs","setNome","setTelefone","setAssunto","setMensagem","nomeError","setNomeError","telefoneError","setTelefoneError","assuntoError","setAssuntoError","mensagemError","setMensagemError","success","setSuccess","buttonDisabled","setButtonDisabled","userMarfrig","useSelector","userInformations","handleInputChange","name","textValue","limparLetras","valueMask","maskCel","maskTel","clearFields","login","msg","sm","md","onFocus","invalid","MFContainer","MFButonn","button","TextFieldComponent","sizeinput","css","AutocompleteComponent","Span","MFComboBox","label","valueInput","setValueInput","setValueSelected","optionsSearch","setMoreOptions","isSynchronous","loading","setLoading","retTotalFalse","lenghOptions","resp","opt","valor","retMatch","valueInputInf","arrValueInput","ret","r","highlight","mt","m","validGetMoreItens","loadingText","autoHighlight","clearText","clearOnEscape","openText","closeText","filterSelectedOptions","debug","onOpen","returns","part","index","String","fontWeight","InputProps","placeholder","defaultProps","valueSelected","Checkbox","CheckboxComponent","icon","fontSize","checkedIcon","MFComboCheckBox","allSelected","labelSelected","autoSelect","blurOnSelect","clearOnBlur","multiple","limitTags","disableCloseOnSelect","getOptionDisabled","getLimitTagsText","num","title","selected","disableRipple","marginRight","checked","readOnly","MFBootbox","showConfirm","successLabel","cancelLabel","cancelClassNames","successClassNames","onSuccess","onCancel","show","CustomComponents","setShowConfirm","moreOptions","setOptionsSearch","optionsSearchCheck","setOptionsSearchCheck","valueSelectedCheck","setValueSelectedCheck","getFaq","postFaq","faq","pergunta","resposta","ativo","updateFaq","idFaq","put","deleteFaq","MFUncontrolledCollapse","UncontrolledCollapse","Accordion","togglerId","children","toggler","ContainerFaqItens","Painel","PainelHeading","PanelBody","IconPlus","FaPlusSquare","IconMinus","FaMinusSquare","AccordionComponent","WrapButtons","WrapHeader","FaqItem","editButtons","setEditFaq","setDeleteFaq","openQuest","setOpenQuest","MFBootboxComponent","MFJumbotronItens","FaqConfig","faqData","setFaqData","notData","setNotData","editFaq","deleteFaqInfo","setDeleteFaqInfo","messageConfirm","setMessageConfirm","setPergunta","setResposta","setIdFaq","erroPergunta","setErroPergunta","erroResposta","setErroResposta","submitForm","setSubmitForm","handleChangeInput","FaqId","perguntaRet","respostaRet","getFaqApi","postFaqApi","form","deleteFaqApi","FaqWrap","FaqTitle","FaqItemComponent","FaqProvider","Types","loginUser","user","password","payload","userInfoSuccess","userInfoFailure","erros","userInfoRemoveAll","isAuthenticated","loginInformation","acessTokenMarfrig","MFContainerLogin","LoginBG","MFContainerLink","Link","MFFormFeedback","valid","attrs","MFLogo","img","src","Logo","alt","MFBox","MFInputGroup","InputGroup","MFInputGroupAddon","InputGroupAddon","MFInputGroupText","InputGroupText","MFNotRegistered","MFLabelButton","MFLabelLink","MFWrapDescription","MFDescriptionSystem","MFDescriptionLogin","MFLogoWrap","Login","typePassword","setTypePassword","setUser","setPassword","disabledButton","setDisabledButton","userError","setUserError","emailError","setEmailError","userValid","setUserValid","msgError","setMsgError","dispatch","useDispatch","UserActions","senhaExpirada","isPassExpired","errorMessage","for","verifyEmail","addonType","to","MFRedirectToHome","pathname","userGroups","PORTAL_FORNECEDOR","PORTAL_FORNECEDOR_ADM","LoginAD","authenticated","setAuthenticated","getIdToken","then","res","idToken","claims","groups","alert","provider","forceLogin","postUser","nota","dataEmissaoNota","idPerfil","tipo","senha","alterarSenha","notificacaoEmail","notificacaoCelular","pessoa","getUsers","conteudo","getNewPassword","postNewPassword","model","deleteUser","PasswordStrengthWrap","PasswordStrengthText","p","startValidation","PasswordStrengthTitle","PasswordStrengtBox","PasswordStrength","setErrorValidPass","strengthPass","setStrengthPass","setStartValidation","senhaValidada","maiusculasOK","minusculasOK","numerosOK","especiaisOK","tamanhoOK","calcularForcaDeSenha","validation","MFTitle","back","MFPasswordStrength","MFBackgroundLoader","PageLoader","PasswordValidity","labelCNPJ","setLabelCNPJ","setIdPerfil","setTipo","setCnpj","setEmail","setSenha","confirmar","setConfirmar","setDisabledCNPJ","errorCNPJ","setErrorCNPJ","setValidCNPJ","errorSenha","setErrorSenha","typePasswordAgain","setTypePasswordAgain","formSubmit","setFormSubmit","formValidate","setFormValidate","invalidFields","setInvalidFields","successUserRegistration","setSuccessUserRegistration","errorValidPass","setMsgSuccess","showLoader","setShowLoader","dataForm","setDataForm","qtdInvalid","Object","values","v","postUserApi","idUsuario","MFSubBox1","MFSubBox2","PreLogin","href","setSuccessNewPassword","msgSuccess","generateNewPasswordApi","WrapButton","ButtonDownload","IconExcel","FaFileExcel","ExcelExportButton","setExcelSearch","SelecionarAllButton","onConfirm","getTitles","numero","dataDe","dataAte","cnpjListValueSelected","tipoPessoa","getRaiz","exportarXLS","documentos","cnpjInf","cn","vencimentoInicial","vencimentoFinal","raizCNPJ","Array","isArray","enrichedData","uniqueId","Math","random","warn","getDocument","idCnab","idPortal","idTitulo","getAdiantamento","loja","numeroTitulo","parcela","serie","getAcrescimo","solicitarAdiantamento","solicitarDesbloqueio","solicitarCadastroEmailFilialAsync","MFCheckBox","MFComboBoxComponent","MFWrapContent","SelectCheckBoxComponent","buttons","MFWrapCheckBox","MFNoData","SearchBox","setDataReturnTitles","setloader","excelSearch","excelFile","setExcelFile","setNumero","setDataDe","setdataAte","validCNPJ","isCnpjList","setIsCnpjList","isOneCnpj","setIsOneCnpj","errorServer","setErrorServer","setGetRaiz","errorServerMsg","setErrorServerMsg","razaoValueInput","setRazaoValueInput","setCnpjListValueSelected","razaoValueSelected","setRazaoValueSelected","nameList","setNameList","optionsSearchCNPJ","setOptionsSearchCNPJ","nomeUsuarioLogado","clearDefaultParams","handleCleanFields","btnClear","document","querySelectorAll","btn","click","clearSelects","dtIniI","dtFimI","setDate","moment","format","msgErros","checkErrosBoxSearch","join","getCnpjsApi","paramsSearch","listName","documentoRet","idFornecedor","dataFormDraft","getExcelFile","linkSource","downloadLink","createElement","download","getTitlesApi","nameListReturnCNPJ","nameListReturn","sizeInput","check","lg","max","MFModalComponent","Modal","$modalSize","$customTop","MFModalHeader","ModalHeader","MFModalBody","ModalBody","MFModalFooter","ModalFooter","MFModal","backDropType","keyBoardType","showModal","setShowModal","modalTitle","showFooter","backdrop","setBackdrop","keyboard","setKeyboard","shouldRender","setShouldRender","JSON","toggle","isOpen","MFPageLoader","MFPageLoaderComponent","MFPageNavigation","MFPageNavigationText","MFPageNavigationNumber","MFPageNavigationArrowLeft","FiArrowLeft","MFPageNavigationArrowRight","FiArrowRight","MFButtonDownloadPDF","table","IconSearch","FaSearch","TitleTable","dataReturnTitles","setSelectedTitles","checkedTitles","setCheckedTitles","selectAll","setSelectAll","showModalAdiantRec","setShowModalAdiantRec","descontoAcrescimoModal","setDescontoAcrescimoModal","errorTitle","setErrorTitle","modalError","setModalError","numPagesPDF","setNumPagesPDF","numPage","setNumPage","openSolicitarAdiantamentoDialog","setOpenSolicitarAdiantamentoDialog","openSolicitarDesbloqueioDialog","setOpenSolicitarDesbloqueioDialog","openForaPrazoDialog","setOpenForaPrazoDialog","openTituloJaPagoDialog","setOpenTituloJaPagoDialog","selectedTitle","setSelectedTitle","adiantamentoRecebimentoModal","setAdiantamentoRecebimentoModal","compModal","setCompModal","compShowModal","setCompShowModal","openNoMatchDialog","setOpenNoMatchDialog","noMatchReasons","setNoMatchReasons","apiErrorDialogOpen","setApiErrorDialogOpen","apiErrorMessage","setApiErrorMessage","showAnticipationColumn","setShowAnticipationColumn","canShowAnticipationColumn","podeAntecipar","selectedTitlesArray","canSolicitarAdiantamento","setDescAcresc","descAcres","setAdiantRec","byteFile","ModalAcresDescRender","getAcrescDesc","ModalAdiantRecRender","getAdiantRec","ModalAcresDesc","backDropTye","descricao","historico","ModalAdiantRec","adiant","banco","agencia","conta","motivo","valorPago","ignoraBloqueio","indicaExisteFilialCadastrada","saldo","bordero","envioBanco","gradeblq","campoVencimento","dataVencimento","tempoDias","tempoAntecipaVenc","dataLimite","emailContasPagar","indicaExisteModeloDesbloqueio","handleSolicitarAdiantamento","reasons","nowWithoutTime","dataLimiteWithoutTime","handleConfirmSolicitarAdiantamento","handleApiError","handleConfirmSolicitarDesbloqueio","err","alignItems","newCheckedTitles","anyTitleSelectable","forEach","canSelect","marginLeft","minWidth","prev","handleCheckBoxChange","dataEmissao","l","notaInicial","temAcrescimoDesconto","temAdiantamentoDevolucao","depositoBoleto","faturaReferente","dataBaixa","getByteDoc","numeroProcesso","poloAtivo","totalGeral","Dialog","DialogTitle","DialogContent","DialogActions","onLoadSuccess","numPages","file","workerSrc","pageNumber","pdf","downloadPDF","FakeLoader","foregroundColor","width","x","y","rx","ry","MFCointainerWrap","MFSearchBox","SearchBoxComponent","MFTitleTable","TitleTableComponent","Title","selectedTitles","loader","setLoader","handleConfirmSelection","allProcessed","processingPromises","processTitle","Promise","all","reload","justifyContent","marginTop","UserConfig","erroTipo","setErroTipo","erroValor","setErroValor","setMessage","tipoValue","setTipoValue","setType","userMaintenance","getUsersApi","defaultValue","handleDeleteUser","MFWrapFeed","UserRegistration","setNota","setDataEmissaoNota","disabledCNPJ","returnValidateCNPJ","block","MFRedirect","colapsedMenu","menuActive","MenuWrap","HeaderNav","MenuItemWrap","IconClose","IconIoChat","IoMdChatboxes","IconUer","FaUserCog","IconFiliais","BsFillGearFill","GiExitDoor","FaBuilding","IconFornecedor","FaBox","LinkComponent","MFSubMenu","setMenuActive","setMainMenuActive","MFWrapLoginLogout","MFWrapUserName","MFOptionLogout","IconContactUs","FaRegEnvelopeOpen","IconGear","IconExit","MFSubMenuWrap","HorizontalMenu","logoutSetado","setLogoutSetado","showConfig","subMenuActive","setSubMenuActive","sessionStorage","HorizontalMenuComponent","HeaderWrap","Navbar","HeaderLogo","IconColapsed","FaAlignJustify","FakeLink","MenuVertical","Header","setShowConfig","permission","PrivateRoute","Component","component","path","rest","render","Routes","exact","RecoverPassword","App","basename","process","Global","INITIAL_STATE","expiresIn","combineReducers","state","produce","draft","access_token","expires_in","setItem","sid","preferred_username","rawIdToken","expiration","useralterarSenha","call","api","takeLatest","rootSaga","reducers","SetTransform","createTransform","inboundState","encoded","stringify","btoa","outboundState","decoded","atob","whitelist","sagaMiddleware","createSagaMiddleware","enhancer","applyMiddleware","store","createStore","rootReducer","persistReducer","storage","transforms","persistor","persistStore","run","ReactDOM","getElementById","module","exports","webpackEmptyContext","req","Error","code","keys","resolve"],"mappings":"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","file":"static/js/main.a6e075b4.chunk.js","sourcesContent":["import { createGlobalStyle } from 'styled-components';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n\r\nexport default createGlobalStyle`\r\n * {\r\n box-sizing: border-box;\r\n margin: 0;\r\n padding: 0;\r\n outline: 0;\r\n }\r\n\r\n html, body, #root {\r\n min-height: 100%;\r\n }\r\n\r\n body {\r\n background: #f5f6fa;\r\n -webkit-font-smoothing: antialiased !important;\r\n }\r\n\r\n #root {\r\n margin: 0 auto;\r\n }\r\n\r\n button {\r\n cursor: pointer;\r\n }\r\n\r\n .jumbotron {\r\n border: 0;\r\n background-color: #fdfdff;\r\n box-shadow: -1px 0 5px 0 rgba(0, 0, 0, 0.02);\r\n }\r\n\r\n label {\r\n color: #000000;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n }\r\n\r\n .btn {\r\n height: 40px;\r\n border-radius: 5px;\r\n\r\n &-primary {\r\n background-color: #2c67b1;\r\n }\r\n\r\n &-success {\r\n background-color: #169f49;\r\n }\r\n }\r\n\r\n .form-control {\r\n border: solid 1px #a4a5b7;\r\n border-radius: 5px;\r\n background-color: #fdfdff;\r\n opacity: 0.5;\r\n\r\n\r\n }\r\n\r\n .input-group {\r\n svg {\r\n opacity: 0.5;\r\n fill: #a4a5b7;\r\n }\r\n }\r\n\r\n .form-control.is-invalid {\r\n opacity: 0.5;\r\n }\r\n\r\n .modal.show .modal-dialog {\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n transform: translate(0, 250px) !important;\r\n }\r\n`;\r\n","import { createBrowserHistory } from 'history';\r\n\r\nconst history = createBrowserHistory();\r\n\r\nexport default history;\r\n","const production = {\r\n baseUrl: 'https://fornecedores.marfrig.com.br:3002/api',\r\n};\r\n\r\nlet config = production;\r\n\r\nexport default {\r\n TokenLifetime: '300',\r\n Versao: '',\r\n timeoutApi: 60000,\r\n ...config,\r\n};\r\n\r\n","const urlBase = 'https://login.microsoftonline.com/';\r\n\r\nlet CLIENT_ID = '5749b4ce-7b28-4893-9ed3-f24442092882';\r\nlet AUTHORITY = `${urlBase}081473c6-504a-437f-838c-ab9a6f671efc`;\r\n\r\nconst constants = {\r\n CLIENT_ID,\r\n AUTHORITY,\r\n};\r\n\r\nexport default constants;","// authProvider.js\r\nimport { MsalAuthProvider, LoginType } from 'react-aad-msal';\r\nimport cons from '../utils/constants';\r\n\r\n// Msal Configurations\r\nconst config = {\r\n auth: {\r\n authority: cons.AUTHORITY,\r\n clientId: cons.CLIENT_ID,\r\n redirectUri: `${window.location.origin}`,\r\n postLogoutRedirectUri: `${window.location.origin}`,\r\n validateAuthority: true,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: true,\r\n },\r\n};\r\n\r\n// Authentication Parameters\r\nconst authenticationParameters = {\r\n scopes: ['User.Read', 'openid'],\r\n};\r\n\r\n// Options\r\nconst options = {\r\n loginType: LoginType.Redirect,\r\n tokenRefreshUri: `${window.location.origin}/auth.html`,\r\n};\r\n\r\nconst authProvider = new MsalAuthProvider(\r\n config,\r\n authenticationParameters,\r\n options\r\n);\r\n\r\nexport default authProvider;\r\n","import parse from 'autosuggest-highlight/parse';\r\nimport match from 'autosuggest-highlight/match';\r\nimport history from '../services/history';\r\nimport authProvider from '../services/authProvider';\r\n\r\nexport const maskCnpj = value => {\r\n let newValue = value.replace(/\\D/g, '');\r\n newValue = newValue.replace(/^(\\d{2})(\\d)/, '$1.$2');\r\n newValue = newValue.replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3');\r\n newValue = newValue.replace(/\\.(\\d{3})(\\d)/, '.$1/$2');\r\n newValue = newValue.replace(/(\\d{4})(\\d)/, '$1-$2');\r\n\r\n return newValue;\r\n};\r\n\r\nexport const maskCnpjCustom = value => {\r\n let newValue = value.replace(/\\D/g, '');\r\n newValue = newValue.replace(/(\\d{4})(\\d)/, '$1-$2');\r\n\r\n return newValue;\r\n};\r\n\r\nexport const maskTel = value => {\r\n let newValue = value.replace(/\\D/g, '');\r\n newValue = newValue.replace(/^(\\d{2})(\\d)/, '$1-$2');\r\n newValue = newValue.replace(/^(\\d{2})-(\\d{4})(\\d)/, '$1-$2-$3');\r\n return newValue;\r\n};\r\n\r\nexport const maskCel = value => {\r\n let newValue = value.replace(/\\D/g, '');\r\n newValue = newValue.replace(/^(\\d{2})(\\d)/, '$1-$2');\r\n newValue = newValue.replace(/^(\\d{2})-(\\d{5})(\\d)/, '$1-$2-$3');\r\n return newValue;\r\n};\r\n\r\nexport const limparLetras = value => {\r\n const newValue = value.replace(/\\D/g, '');\r\n return newValue;\r\n};\r\n\r\nexport const maskSubCnpjCustom = value => {\r\n let newValue = value.replace(/\\D/g, '');\r\n newValue = newValue.replace(/^(\\d{2})(\\d)/, '$1.$2');\r\n newValue = newValue.replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3');\r\n newValue = newValue.replace(/^(\\d{2})\\.(\\d{3}).(\\d{3})/, '$1.$2.$3/');\r\n\r\n return newValue;\r\n};\r\n\r\nexport const maskCpf = value => {\r\n let newValue = value.replace(/\\D/g, '');\r\n newValue = newValue.replace(/(\\d{3})(\\d)/, '$1.$2');\r\n newValue = newValue.replace(/(\\d{3})(\\d)/, '$1.$2');\r\n newValue = newValue.replace(/(\\d{3})(\\d{1,2})$/, '$1-$2');\r\n return newValue;\r\n};\r\n\r\nexport const validateCPF = strCPF => {\r\n let retSum = 0;\r\n let restOfDivision;\r\n const exp = /\\.|-|\\//g;\r\n let newCpf = strCPF;\r\n newCpf = newCpf.toString().replace(exp, '');\r\n\r\n if (newCpf === '') return false;\r\n if (newCpf === '00000000000') return false;\r\n\r\n // Elimina CNPJs invalidos conhecidos\r\n if (\r\n newCpf === '00000000000' ||\r\n newCpf === '11111111111' ||\r\n newCpf === '22222222222' ||\r\n newCpf === '33333333333' ||\r\n newCpf === '44444444444' ||\r\n newCpf === '55555555555' ||\r\n newCpf === '66666666666' ||\r\n newCpf === '77777777777' ||\r\n newCpf === '88888888888' ||\r\n newCpf === '99999999999'\r\n )\r\n return false;\r\n\r\n for (let i = 1; i <= 9; i += 1) {\r\n retSum += Number(newCpf.substring(i - 1, i)) * (11 - i);\r\n }\r\n restOfDivision = (retSum * 10) % 11;\r\n\r\n if (restOfDivision === 10 || restOfDivision === 11) restOfDivision = 0;\r\n if (restOfDivision !== Number(newCpf.substring(9, 10))) return false;\r\n\r\n retSum = 0;\r\n for (let i = 1; i <= 10; i += 1) {\r\n retSum += Number(newCpf.substring(i - 1, i)) * (12 - i);\r\n }\r\n restOfDivision = (retSum * 10) % 11;\r\n\r\n if (restOfDivision === 10 || restOfDivision === 11) restOfDivision = 0;\r\n if (restOfDivision !== Number(newCpf.substring(10, 11))) return false;\r\n return true;\r\n};\r\n\r\nexport const validateCNPJ = cnpj => {\r\n cnpj = cnpj.replace(/[^\\d]+/g, '');\r\n\r\n if (cnpj === '') return false;\r\n\r\n if (cnpj.length !== 14) return false;\r\n\r\n // Elimina CNPJs invalidos conhecidos\r\n if (\r\n cnpj === '00000000000000' ||\r\n cnpj === '11111111111111' ||\r\n cnpj === '22222222222222' ||\r\n cnpj === '33333333333333' ||\r\n cnpj === '44444444444444' ||\r\n cnpj === '55555555555555' ||\r\n cnpj === '66666666666666' ||\r\n cnpj === '77777777777777' ||\r\n cnpj === '88888888888888' ||\r\n cnpj === '99999999999999'\r\n )\r\n return false;\r\n\r\n // Valida DVs\r\n let tamanho = cnpj.length - 2;\r\n let numeros = cnpj.substring(0, tamanho);\r\n const digitos = cnpj.substring(tamanho);\r\n let soma = 0;\r\n let pos = tamanho - 7;\r\n for (let i = tamanho; i >= 1; i -= 1) {\r\n soma += numeros.charAt(tamanho - i) * pos;\r\n pos -= 1;\r\n if (pos < 2) pos = 9;\r\n }\r\n let resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\r\n if (resultado.toString() !== digitos.charAt(0)) return false;\r\n\r\n tamanho += 1;\r\n numeros = cnpj.substring(0, tamanho);\r\n soma = 0;\r\n pos = tamanho - 7;\r\n for (let i = tamanho; i >= 1; i -= 1) {\r\n soma += numeros.charAt(tamanho - i) * pos;\r\n pos -= 1;\r\n if (pos < 2) pos = 9;\r\n }\r\n resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\r\n if (resultado.toString() !== digitos.charAt(1)) return false;\r\n\r\n return true;\r\n};\r\n\r\nexport const limparCPFCNPJ = strCPF => {\r\n const exp = /\\.|-|\\//g;\r\n let newCpf = strCPF;\r\n if (newCpf) newCpf = newCpf.toString().replace(exp, '');\r\n return newCpf;\r\n};\r\n\r\nexport const calcularForcaDeSenha = senha => {\r\n const maicusculas = /[A-Z]/;\r\n const minusculas = /[a-z]/;\r\n const numeros = /[0-9]/;\r\n const especiais = /[\\W]/;\r\n\r\n const senhaValidada = {\r\n maiusculasOK: false,\r\n minusculasOK: false,\r\n numerosOK: false,\r\n especiaisOK: false,\r\n tamanhoOK: senha.length >= 8,\r\n };\r\n\r\n if (senha.match(maicusculas)) senhaValidada.maiusculasOK = true;\r\n if (senha.match(minusculas)) senhaValidada.minusculasOK = true;\r\n if (senha.match(numeros)) senhaValidada.numerosOK = true;\r\n if (senha.match(especiais)) senhaValidada.especiaisOK = true;\r\n\r\n return senhaValidada;\r\n};\r\n\r\nexport const isEmail = email => {\r\n const reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\r\n if (reg.test(email)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const formatMoney = value => {\r\n const newValue = value.toLocaleString('pt-br', {\r\n style: 'currency',\r\n currency: 'BRL',\r\n });\r\n\r\n return newValue;\r\n};\r\n\r\nexport const formatDate = data => {\r\n if (data === ' - - ') return '';\r\n const newDate = new Date(data);\r\n const day = newDate.getDate().toString();\r\n const dayF = day.length === 1 ? `0${day}` : day;\r\n const mes = (newDate.getMonth() + 1).toString();\r\n const mesF = mes.length === 1 ? `0${mes}` : mes;\r\n const anoF = newDate.getFullYear();\r\n return `${dayF}/${mesF}/${anoF}`;\r\n};\r\n\r\nexport const verifyExpiresIn = () => {\r\n const expiresInDataLocalStorage = localStorage.getItem('expiresIn');\r\n const expiresInData = new Date(expiresInDataLocalStorage.toString());\r\n const currentDate = new Date();\r\n\r\n if (localStorage.getItem('typeUser') === '1') {\r\n if (Date.now() >= Number(expiresInDataLocalStorage) * 1000) {\r\n localStorage.clear();\r\n authProvider.logout();\r\n }\r\n return;\r\n }\r\n\r\n if (currentDate <= expiresInData) return true;\r\n localStorage.clear();\r\n setTimeout(() => {\r\n return history.push('/login/?expiredToken=true');\r\n }, 1000);\r\n};\r\n\r\nexport const checkMatch = (value, valueInfo) => {\r\n const arrMatch = match(value, valueInfo);\r\n const arrParts = parse(value, arrMatch);\r\n let textLength = 0;\r\n let ValueInfoLengh = 0;\r\n if (arrParts?.length) {\r\n textLength = arrParts[0].text.length;\r\n ValueInfoLengh = valueInfo.length;\r\n arrParts[0].textFull = textLength > ValueInfoLengh;\r\n arrParts[0].textLength = textLength;\r\n arrParts[0].ValueInfoLengh = ValueInfoLengh;\r\n arrParts[0].valueInfo = valueInfo;\r\n }\r\n return arrParts;\r\n};\r\n\r\nexport const checkErrosBoxSearch = data => {\r\n const msgErros = [];\r\n\r\n const { dataAte, dataDe, cnpj } = data;\r\n\r\n if (!cnpj) {\r\n msgErros.push('CNPJ obrigatório');\r\n }\r\n if (!dataDe) {\r\n msgErros.push('Dt. de obrigatório');\r\n }\r\n if (!dataAte) {\r\n msgErros.push('Dt. até obrigatório');\r\n }\r\n\r\n return msgErros;\r\n};\r\n\r\nexport const arrayCompare = (first, last) => {\r\n const result = first.filter(item => {\r\n return last.indexOf(item) > -1;\r\n });\r\n return result.length;\r\n};\r\n","import axios from 'axios';\r\nimport { withRouter } from 'react-router-dom';\r\nimport config from './enviroment';\r\nimport { verifyExpiresIn } from '../utils';\r\n\r\nconst axiosInstance = axios.create({\r\n timeout: config.timeoutApi,\r\n withCredentials: false,\r\n headers: {\r\n 'Access-Control-Allow-Headers': '*',\r\n 'Access-Control-Allow-Methods': '*',\r\n 'Access-Control-Allow-Origin': '*',\r\n Accept: '*/*',\r\n },\r\n});\r\n\r\naxiosInstance.interceptors.request.use(async configAxios => {\r\n try {\r\n let token = '';\r\n const configCustom = configAxios;\r\n token = localStorage.getItem('acessTokenMarfrig');\r\n if (token) verifyExpiresIn();\r\n if (token) configCustom.headers.Authorization = `Bearer ${token}`;\r\n return configCustom;\r\n } catch (error) {\r\n console.tron.log(error);\r\n return error;\r\n }\r\n});\r\n\r\nexport default withRouter(axiosInstance);\r\n","import axios from './api';\r\nimport config from './enviroment';\r\n\r\n \r\nexport async function getConfigFiliais() {\r\n try {\r\n const response = await axios.get(\r\n `${config.baseUrl}/ConfiguracaoFilial/buscartodasfiliais/`\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function inserirConfigFilial(params) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/ConfiguracaoFilial/incluir/`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function atualizarConfigFilial(params) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/ConfiguracaoFilial/atualizar/`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\n\r\nexport async function excluirConfig(id) {\r\n try {\r\n const response = await axios.delete(`${config.baseUrl}/ConfiguracaoFilial/${id}`);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\n\r\nexport async function getPorSequencial(sequencial) {\r\n try {\r\n const response = await axios.get(`${config.baseUrl}/ConfiguracaoFilial/BuscarPorSequencial/${sequencial}`);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}","import { FaEdit, FaTrashAlt } from 'react-icons/fa';\r\nimport { Button, Form, FormGroup, Input, Jumbotron, Label, Table } from 'reactstrap';\r\nimport styled from 'styled-components';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 120px;\r\n margin-bottom: 0;\r\n`;\r\n\r\nexport const ErroWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const MsgErro = styled.span`\r\n color: #dc3545;\r\n opacity: 0.8;\r\n`;\r\n\r\nexport const MFJumbotron = styled(Jumbotron)`\r\n width: 95%;\r\n padding: 2rem 1rem;\r\n`;\r\n\r\nexport const MFTitleBox = styled.h1`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n span {\r\n margin-right: 2px !important;\r\n padding: 0 !important;\r\n }\r\n`;\r\n\r\nexport const MFInput = styled(Input)``;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n gap: 10px;\r\n margin-top:50px;\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 30%;\r\n margin: auto 10px;\r\n\r\n @media screen and (max-width: 767px) {\r\n width: 45%;\r\n }\r\n`;\r\n\r\nexport const FormRow = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n & > div {\r\n flex: 1;\r\n &:not(:last-child) {\r\n margin-right: 10px;\r\n }\r\n }\r\n`;\r\n\r\nexport const MFTableWrap = styled.div`\r\n width: 80%;\r\n margin: 2rem auto 0;\r\n overflow-x: auto;\r\n`;\r\n\r\nexport const MFTable = styled(Table)`\r\n width: 100%;\r\n margin-bottom: 1rem;\r\n background-color: transparent;\r\n th,\r\n td {\r\n padding: 0.75rem;\r\n vertical-align: middle;\r\n }\r\n`;\r\n\r\nexport const MFThead = styled.thead`\r\n background-color: #e9ecef;\r\n`;\r\n\r\nexport const MFTr = styled.tr``;\r\n\r\nexport const MFTbody = styled.tbody``;\r\n\r\nexport const IconEdit = styled(FaEdit)`\r\n color: #e9ecef;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const IconDelete = styled(FaTrashAlt)`\r\n color: #e9ecef;\r\n cursor: pointer;\r\n \r\n`;","import Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport {\r\n atualizarConfigFilial,\r\n excluirConfig,\r\n getConfigFiliais,\r\n getPorSequencial,\r\n inserirConfigFilial\r\n} from '../../services/companyFilialServices';\r\nimport {\r\n Container,\r\n ErroWrap,\r\n FormRow,\r\n IconDelete,\r\n IconEdit,\r\n MFButton,\r\n MFForm,\r\n MFFormGroup,\r\n MFInput,\r\n MFJumbotron,\r\n MFLabel,\r\n MFTable,\r\n MFTableWrap,\r\n MFTbody,\r\n MFThead,\r\n MFTitleBox,\r\n MFTr,\r\n MFWrapButtons,\r\n MsgErro,\r\n} from './styles';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nfunction FilialConfig() {\r\n const history = useHistory();\r\n const [config, setConfig] = useState({\r\n idConfiguracaoFilial: '',\r\n sequencial: '',\r\n nome: '',\r\n email: '',\r\n });\r\n const [filiais, setFiliais] = useState([]);\r\n const [erro, setErro] = useState('');\r\n const [snackbar, setSnackbar] = useState({\r\n open: false,\r\n message: '',\r\n severity: 'success'\r\n });\r\n const [isEditing, setIsEditing] = useState(false);\r\n useEffect(() => {\r\n fetchFiliais();\r\n }, []);\r\n\r\n const fetchFiliais = async () => {\r\n const response = await getConfigFiliais();\r\n if (response.status === 200 && response.data) {\r\n const sortedFiliais = response.data.dados\r\n .sort((a, b) => parseInt(a.sequencial) - parseInt(b.sequencial))\r\n .map(filial => ({\r\n ...filial,\r\n sequencial: filial.sequencial.toString().padStart(6, '0'),\r\n }));\r\n setFiliais(sortedFiliais);\r\n } else {\r\n setSnackbar({\r\n open: true,\r\n message: 'Erro ao buscar filiais.',\r\n severity: 'error'\r\n });\r\n }\r\n };\r\n\r\n const validateEmails = emails => {\r\n const emailArray = emails.split(';');\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return emailArray.every(email => emailRegex.test(email.trim()));\r\n };\r\n\r\n const handleSubmit = async e => {\r\n e.preventDefault();\r\n if (!config.nome || !config.email) {\r\n setSnackbar({\r\n open: true,\r\n message: 'Todos os campos são obrigatórios.',\r\n severity: 'error'\r\n });\r\n return;\r\n }\r\n\r\n if (!validateEmails(config.email)) {\r\n setSnackbar({\r\n open: true,\r\n message: 'Formato de email inválido.',\r\n severity: 'error'\r\n });\r\n return;\r\n }\r\n\r\n if (config.sequencial.length !== 6) {\r\n setSnackbar({\r\n open: true,\r\n message: 'O campo Filial deve ter exatamente 6 dígitos.',\r\n severity: 'error'\r\n });\r\n return;\r\n }\r\n\r\n if (\r\n filiais.some(\r\n filial =>\r\n filial.sequencial === config.sequencial &&\r\n filial.idConfiguracaoFilial !== config.idConfiguracaoFilial\r\n )\r\n ) {\r\n setSnackbar({\r\n open: true,\r\n message: 'Sequencial já existe.',\r\n severity: 'error'\r\n });\r\n return;\r\n }\r\n\r\n const action = config.idConfiguracaoFilial\r\n ? atualizarConfigFilial\r\n : inserirConfigFilial;\r\n const response = await action(config);\r\n if (response.status === 200 && response.data.sucesso) {\r\n limparForm();\r\n fetchFiliais();\r\n setSnackbar({\r\n open: true,\r\n message: 'Filial salva com sucesso.',\r\n severity: 'success'\r\n });\r\n setIsEditing(false);\r\n } else {\r\n setSnackbar({\r\n open: true,\r\n message: 'Erro ao salvar a filial.',\r\n severity: 'error'\r\n });\r\n }\r\n };\r\n\r\n const handleDelete = async id => {\r\n if (window.confirm('Deseja excluir a configuração da filial?')) {\r\n const response = await excluirConfig(id);\r\n if (response.status === 200 && response.data.sucesso) {\r\n fetchFiliais();\r\n setSnackbar({\r\n open: true,\r\n message: 'Filial excluída com sucesso.',\r\n severity: 'success'\r\n });\r\n } else {\r\n setSnackbar({\r\n open: true,\r\n message: 'Erro ao excluir filial.',\r\n severity: 'error'\r\n });\r\n }\r\n }\r\n };\r\n\r\n const limparForm = () => {\r\n setConfig({\r\n idConfiguracaoFilial: '',\r\n sequencial: '',\r\n nome: '',\r\n email: '',\r\n });\r\n setIsEditing(false);\r\n };\r\n\r\n const handleCloseSnackbar = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setSnackbar({ open: false, message: '', severity: 'success' });\r\n };\r\n\r\n const handleSequencialBlur = async e => {\r\n let sequencial = e.target.value;\r\n\r\n // Preencher com zeros à esquerda se necessário\r\n sequencial = sequencial.padStart(6, '0');\r\n\r\n if (sequencial.length > 6) {\r\n setSnackbar({\r\n open: true,\r\n message: 'O campo Filial não pode ter mais de 6 dígitos.',\r\n severity: 'error'\r\n });\r\n sequencial = sequencial.slice(0, 6);\r\n }\r\n\r\n setConfig(prevConfig => ({ ...prevConfig, sequencial }));\r\n\r\n if (sequencial) {\r\n const response = await getPorSequencial(sequencial);\r\n if (response.status === 200 && response.data) {\r\n setConfig(prevConfig => ({\r\n ...prevConfig,\r\n nome: response.data.dados.nome\r\n }));\r\n }\r\n }\r\n };\r\n\r\n function handleVoltar() {\r\n history.goBack();\r\n }\r\n\r\n const handleEdit = filial => {\r\n setConfig({ ...filial });\r\n setIsEditing(true);\r\n };\r\n return (\r\n \r\n \r\n Configurar Filiais\r\n \r\n \r\n \r\n Sequencial\r\n \r\n setConfig({\r\n ...config,\r\n sequencial: e.target.value.replace(/\\D/g, ''),\r\n })\r\n }\r\n onBlur={handleSequencialBlur}\r\n maxLength={6}\r\n required\r\n disabled={isEditing}\r\n />\r\n \r\n \r\n Nome\r\n setConfig({ ...config, nome: e.target.value })}\r\n required\r\n />\r\n \r\n \r\n Email (separar múltiplos por ponto e vírgula)\r\n setConfig({ ...config, email: e.target.value })}\r\n required\r\n />\r\n \r\n \r\n \r\n \r\n {config.idConfiguracaoFilial ? 'Atualizar' : 'Adicionar'}\r\n \r\n \r\n Voltar\r\n \r\n \r\n {erro && (\r\n \r\n {erro}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Sequencial\r\n Nome\r\n Email\r\n Ações\r\n \r\n \r\n \r\n {filiais.length > 0 ? (\r\n filiais.map(filial => (\r\n \r\n {filial.sequencial}\r\n {filial.nome}\r\n {filial.email}\r\n \r\n handleEdit(filial)}>\r\n \r\n \r\n handleDelete(filial.idConfiguracaoFilial)}\r\n >\r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n Nenhum fornecedor encontrado!\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {snackbar.message}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default FilialConfig;\r\n","import axios from './api';\r\nimport config from './enviroment';\r\n\r\n \r\n\r\nexport async function atualizarFornecedor(params) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/ConfiguracaoFornecedor/Atualizar/`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\n\r\nexport async function getConfigFornecedores() {\r\n try {\r\n const response = await axios.get(\r\n `${config.baseUrl}/ConfiguracaoFornecedor/buscartodosfornecedores/`\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function inserirConfigFornecedor(params) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/ConfiguracaoFornecedor/incluir/`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n \r\n\r\n\r\nexport async function excluirConfigFornecedor(id) {\r\n try {\r\n const response = await axios.delete(`${config.baseUrl}/ConfiguracaoFornecedor/${id}`);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}","import axios from './api';\r\nimport config from './enviroment';\r\n\r\nexport async function getCnpjs(params) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Fornecedor/Busca/`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n","import { FaEdit, FaTrashAlt } from 'react-icons/fa';\r\nimport { Button, Form, FormGroup, Input, Jumbotron, Label, Table } from 'reactstrap';\r\nimport styled from 'styled-components';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 120px;\r\n margin-bottom: 0;\r\n`;\r\n\r\nexport const ErroWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const MsgErro = styled.span`\r\n color: #dc3545;\r\n opacity: 0.8;\r\n`;\r\n\r\nexport const MFJumbotron = styled(Jumbotron)`\r\n width: 95%;\r\n padding: 2rem 1rem;\r\n`;\r\n\r\nexport const MFTitleBox = styled.h1`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n span {\r\n margin-right: 2px !important;\r\n padding: 0 !important;\r\n }\r\n`;\r\n\r\nexport const MFInput = styled(Input)``;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n gap: 10px;\r\n margin-top:50px;\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 30%;\r\n margin: auto 10px;\r\n\r\n @media screen and (max-width: 767px) {\r\n width: 45%;\r\n }\r\n`;\r\n\r\nexport const FormRow = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n & > div {\r\n flex: 1;\r\n &:not(:last-child) {\r\n margin-right: 10px;\r\n }\r\n }\r\n`;\r\n\r\nexport const MFTableWrap = styled.div`\r\n width: 80%;\r\n margin: 2rem auto 0;\r\n overflow-x: auto;\r\n`;\r\n\r\nexport const MFTable = styled(Table)`\r\n width: 100%;\r\n margin-bottom: 1rem;\r\n background-color: transparent;\r\n th,\r\n td {\r\n padding: 0.75rem;\r\n vertical-align: middle;\r\n }\r\n`;\r\n\r\nexport const MFThead = styled.thead`\r\n background-color: #e9ecef;\r\n`;\r\n\r\nexport const MFTr = styled.tr``;\r\n\r\nexport const MFTbody = styled.tbody``;\r\n\r\nexport const IconEdit = styled(FaEdit)`\r\n color: #e9ecef;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const IconDelete = styled(FaTrashAlt)`\r\n color: #e9ecef;\r\n cursor: pointer;\r\n \r\n`;","import Snackbar from '@material-ui/core/Snackbar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport {\r\n atualizarFornecedor,\r\n excluirConfigFornecedor,\r\n getConfigFornecedores,\r\n inserirConfigFornecedor,\r\n} from '../../services/companyFornecedorServices';\r\nimport { getCnpjs } from '../../services/companyServices';\r\nimport {\r\n Container,\r\n ErroWrap,\r\n FormRow,\r\n IconDelete,\r\n IconEdit,\r\n MFButton,\r\n MFForm,\r\n MFFormGroup,\r\n MFInput,\r\n MFJumbotron,\r\n MFLabel,\r\n MFTable,\r\n MFTableWrap,\r\n MFTbody,\r\n MFThead,\r\n MFTitleBox,\r\n MFTr,\r\n MFWrapButtons,\r\n MsgErro,\r\n} from './styles';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n autocomplete: {\r\n '& .MuiAutocomplete-inputRoot[class*=\"MuiOutlinedInput-root\"]': {\r\n padding: '0px',\r\n },\r\n '& .MuiAutocomplete-endAdornment': {\r\n display: 'none',\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n border: 'none',\r\n },\r\n '& .MuiInputBase-root': {\r\n height: '38px',\r\n border: '1px solid #ced4da',\r\n borderRadius: '0.25rem',\r\n '&:hover': {\r\n border: '1px solid #ced4da',\r\n },\r\n '&.Mui-focused': {\r\n border: '1px solid #80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: '0.375rem 0.75rem',\r\n },\r\n },\r\n}));\r\n\r\nfunction FornecedorConfig() {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const [isEditing, setIsEditing] = useState(false);\r\n const [config, setConfig] = useState({\r\n idConfiguracaoFornecedor: '',\r\n taxa: '',\r\n tempoAntecipacao: '',\r\n cnpj: '',\r\n razaoSocial: '',\r\n });\r\n const [fornecedores, setFornecedores] = useState([]);\r\n const [erro, setErro] = useState('');\r\n const [snackbar, setSnackbar] = useState({\r\n open: false,\r\n message: '',\r\n severity: 'success',\r\n });\r\n const [cnpjOptions, setCnpjOptions] = useState([]);\r\n const [selectedCnpj, setSelectedCnpj] = useState(null);\r\n\r\n useEffect(() => {\r\n fetchFornecedores();\r\n }, []);\r\n\r\n const fetchFornecedores = async () => {\r\n const response = await getConfigFornecedores();\r\n if (response.status === 200 && response.data) {\r\n setFornecedores(response.data.dados);\r\n } else {\r\n setSnackbar({\r\n open: true,\r\n message: 'Erro ao buscar fornecedores.',\r\n severity: 'error',\r\n });\r\n }\r\n };\r\n\r\n const handleSubmit = async e => {\r\n e.preventDefault();\r\n if (\r\n !config.taxa ||\r\n !config.tempoAntecipacao ||\r\n !config.cnpj ||\r\n !config.razaoSocial\r\n ) {\r\n setErro('Todos os campos são obrigatórios.');\r\n return;\r\n }\r\n\r\n const cnpjRaiz = config.cnpj.substr(0, 8);\r\n\r\n if (cnpjRaiz.length !== 8) {\r\n setErro('O CNPJ raiz deve ter exatamente 8 dígitos.');\r\n return;\r\n }\r\n\r\n const fornecedorExistente = fornecedores.find(f => f.cnpj === cnpjRaiz);\r\n\r\n const fornecedorData = {\r\n ...config,\r\n cnpj: cnpjRaiz,\r\n idConfiguracaoFornecedor: fornecedorExistente\r\n ? fornecedorExistente.idConfiguracaoFornecedor\r\n : config.idConfiguracaoFornecedor,\r\n };\r\n\r\n const action =\r\n fornecedorExistente || config.idConfiguracaoFornecedor\r\n ? atualizarFornecedor\r\n : inserirConfigFornecedor;\r\n\r\n const response = await action(fornecedorData);\r\n if (response.status === 200 && response.data.sucesso) {\r\n limparForm();\r\n fetchFornecedores();\r\n setSnackbar({\r\n open: true,\r\n message: fornecedorExistente\r\n ? 'Fornecedor atualizado com sucesso.'\r\n : 'Fornecedor salvo com sucesso.',\r\n severity: 'success',\r\n });\r\n setIsEditing(false);\r\n } else {\r\n setSnackbar({\r\n open: true,\r\n message: 'Erro ao salvar o fornecedor.',\r\n severity: 'error',\r\n });\r\n }\r\n };\r\n\r\n const handleCnpjSearch = async (event, newValue) => {\r\n if (newValue && newValue.length >= 3) {\r\n try {\r\n const response = await getCnpjs({ documento: newValue });\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n setCnpjOptions(\r\n dataRet.map(item => ({\r\n cnpj: item.documento,\r\n razaoSocial: item.nome,\r\n }))\r\n );\r\n }\r\n } catch (error) {\r\n console.error('Erro ao buscar CNPJ:', error);\r\n setSnackbar({\r\n open: true,\r\n message: 'Erro ao buscar informações do CNPJ.',\r\n severity: 'error',\r\n });\r\n }\r\n }\r\n };\r\n\r\n const handleCnpjSelect = (event, value) => {\r\n if (value) {\r\n const cnpjRaiz = value.cnpj.substr(0, 8);\r\n setSelectedCnpj({ cnpj: cnpjRaiz, razaoSocial: value.razaoSocial });\r\n setConfig(prevConfig => ({\r\n ...prevConfig,\r\n cnpj: cnpjRaiz,\r\n razaoSocial: value.razaoSocial,\r\n }));\r\n\r\n const fornecedorExistente = fornecedores.find(f => f.cnpj === cnpjRaiz);\r\n if (fornecedorExistente) {\r\n setConfig(prevConfig => ({\r\n ...prevConfig,\r\n idConfiguracaoFornecedor:\r\n fornecedorExistente.idConfiguracaoFornecedor,\r\n taxa: fornecedorExistente.taxa,\r\n tempoAntecipacao: fornecedorExistente.tempoAntecipacao,\r\n }));\r\n }\r\n }\r\n };\r\n\r\n const handleDelete = async id => {\r\n if (window.confirm('Deseja excluir a configuração do fornecedor?')) {\r\n const response = await excluirConfigFornecedor(id);\r\n if (response.status === 200 && response.data.sucesso) {\r\n fetchFornecedores();\r\n setSnackbar({\r\n open: true,\r\n message: 'Fornecedor excluído com sucesso.',\r\n severity: 'success',\r\n });\r\n } else {\r\n setSnackbar({\r\n open: true,\r\n message: 'Erro ao excluir fornecedor.',\r\n severity: 'error',\r\n });\r\n }\r\n }\r\n };\r\n\r\n const limparForm = () => {\r\n setConfig({\r\n idConfiguracaoFornecedor: '',\r\n taxa: '',\r\n tempoAntecipacao: '',\r\n cnpj: '',\r\n razaoSocial: '',\r\n });\r\n setSelectedCnpj(null);\r\n setIsEditing(false);\r\n };\r\n\r\n const handleCloseSnackbar = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setSnackbar({ open: false, message: '', severity: 'success' });\r\n };\r\n\r\n function handleVoltar() {\r\n history.goBack();\r\n }\r\n\r\n const formatTaxaForDisplay = taxa => {\r\n if (taxa === null || taxa === undefined) return '';\r\n const taxaNumber = parseFloat(taxa);\r\n return (\r\n taxaNumber.toLocaleString('pt-BR', {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n }) + '%'\r\n );\r\n };\r\n\r\n const handleEdit = fornecedor => {\r\n setConfig({ ...fornecedor });\r\n setSelectedCnpj({\r\n cnpj: fornecedor.cnpj,\r\n razaoSocial: fornecedor.razaoSocial,\r\n });\r\n setIsEditing(true);\r\n };\r\n\r\n return (\r\n \r\n \r\n Configurar Fornecedores\r\n \r\n \r\n \r\n Cnpj Raiz\r\n \r\n `${option.cnpj} - ${option.razaoSocial}`\r\n }\r\n onInputChange={handleCnpjSearch}\r\n onChange={handleCnpjSelect}\r\n value={selectedCnpj}\r\n disabled={isEditing}\r\n renderInput={params => (\r\n \r\n setConfig({ ...config, cnpj: e.target.value })\r\n }\r\n />\r\n )}\r\n className={classes.autocomplete}\r\n noOptionsText=\"\"\r\n renderOption={option => (\r\n \r\n {option.cnpj} - {option.razaoSocial}\r\n \r\n )}\r\n inputValue={config.cnpj}\r\n />\r\n \r\n \r\n Razão Social\r\n \r\n setConfig({ ...config, razaoSocial: e.target.value })\r\n }\r\n required\r\n />\r\n \r\n \r\n Taxa\r\n setConfig({ ...config, taxa: e.target.value })}\r\n required\r\n />\r\n \r\n \r\n Tempo de Antecipação\r\n \r\n setConfig({ ...config, tempoAntecipacao: e.target.value })\r\n }\r\n required\r\n />\r\n \r\n \r\n \r\n \r\n {config.idConfiguracaoFornecedor ? 'Atualizar' : 'Adicionar'}\r\n \r\n \r\n Voltar\r\n \r\n \r\n {erro && (\r\n \r\n {erro}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cnpj\r\n Razão Social\r\n Taxa\r\n Tempo de Antecipação\r\n Ações\r\n \r\n \r\n \r\n {fornecedores.length > 0 ? (\r\n fornecedores.map(fornecedor => (\r\n \r\n {fornecedor.cnpj}\r\n {fornecedor.razaoSocial}\r\n {formatTaxaForDisplay(fornecedor.taxa)}\r\n {fornecedor.tempoAntecipacao}\r\n \r\n handleEdit(fornecedor)}\r\n >\r\n \r\n \r\n \r\n handleDelete(fornecedor.idConfiguracaoFornecedor)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n Nenhum fornecedor encontrado!\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {snackbar.message}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default FornecedorConfig;\r\n","import axios from './api';\r\nimport config from './enviroment';\r\n\r\nexport async function postContatcUs(contatcUs) {\r\n try {\r\n const { nome, telefone, assunto, mensagem, documento, usuario, emailUsuario } = contatcUs;\r\n\r\n const params = {\r\n nome,\r\n telefone,\r\n assunto,\r\n mensagem,\r\n documento,\r\n usuario,\r\n emailUsuario\r\n };\r\n const response = await axios.post(\r\n `${config.baseUrl}/Faq/FaleConosco`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function updateFaq(faq) {\r\n try {\r\n const { pergunta, resposta, idFaq } = faq;\r\n const params = {\r\n idFaq,\r\n pergunta,\r\n resposta,\r\n ativo: true,\r\n };\r\n const response = await axios.put(`${config.baseUrl}/Faq/${idFaq}`, params);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\nexport async function deleteFaq(id) {\r\n try {\r\n const response = await axios.delete(`${config.baseUrl}/Faq/${id}`);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport {\r\n Jumbotron,\r\n Form,\r\n FormGroup,\r\n Input,\r\n Label,\r\n Button,\r\n Row,\r\n Col,\r\n} from 'reactstrap';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 120px;\r\n margin-bottom: 0;\r\n`;\r\n\r\nexport const MFJumbotron = styled(Jumbotron)`\r\n width: 95%;\r\n padding: 2rem 1rem;\r\n`;\r\n\r\nexport const MFTitleBox = styled.h1`\r\n margin-left: 15px;\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n span {\r\n margin-right: 2px !important;\r\n padding: 0 !important;\r\n }\r\n`;\r\n\r\nexport const MFInput = styled(Input)``;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 100%;\r\n`;\r\n\r\nexport const MFRow = styled(Row)`\r\n margin: 30px;\r\n margin: auto;\r\n`;\r\n\r\nexport const MFColForm = styled(Col)``;\r\n\r\nexport const ErroWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const MsgErro = styled.span`\r\n color: #dc3545;\r\n opacity: 0.8;\r\n`;\r\n\r\nexport const SuccessWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const MsgSuccess = styled.span`\r\n color: #169f49;\r\n opacity: 0.8;\r\n`;\r\n","import React, { useState } from 'react';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { postContatcUs } from '../../services/contactUsServices';\r\nimport {\r\n maskTel,\r\n maskCel,\r\n limparCPFCNPJ,\r\n maskCnpj,\r\n limparLetras,\r\n} from '../../utils';\r\n\r\nimport {\r\n Container,\r\n MFJumbotron,\r\n MFTitleBox,\r\n MFForm,\r\n MFFormGroup,\r\n MFInput,\r\n MFLabel,\r\n MFRow,\r\n MFColForm,\r\n MFButton,\r\n ErroWrap,\r\n MsgErro,\r\n SuccessWrap,\r\n MsgSuccess,\r\n} from './styles';\r\n\r\nexport default function ContactUs() {\r\n const [nome, setNome] = useState('');\r\n const [telefone, setTelefone] = useState('');\r\n const [assunto, setAssunto] = useState('');\r\n const [mensagem, setMensagem] = useState('');\r\n const [nomeError, setNomeError] = useState(false);\r\n const [telefoneError, setTelefoneError] = useState(false);\r\n const [assuntoError, setAssuntoError] = useState(false);\r\n const [mensagemError, setMensagemError] = useState(false);\r\n const [success, setSuccess] = useState(false);\r\n const [buttonDisabled, setButtonDisabled] = useState(false);\r\n const [erro, setErro] = useState('');\r\n\r\n const {\r\n userMarfrig,\r\n } = useSelector(({ userInformations }) => userInformations);\r\n\r\n function handleInputChange(e) {\r\n e.preventDefault();\r\n const { name, value } = e.target;\r\n\r\n switch (name) {\r\n case 'nome':\r\n setNome(value);\r\n break;\r\n case 'telefone':\r\n {\r\n const textValue = limparLetras(limparCPFCNPJ(value));\r\n let valueMask = '';\r\n if (textValue.length === 11) {\r\n valueMask = maskCel(textValue);\r\n }\r\n if (textValue.length === 10) {\r\n valueMask = maskTel(textValue);\r\n }\r\n setTelefone(valueMask || textValue);\r\n }\r\n break;\r\n case 'assunto':\r\n setAssunto(value);\r\n break;\r\n case 'mensagem':\r\n setMensagem(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n function clearFields() {\r\n setNome('');\r\n setTelefone('');\r\n setAssunto('');\r\n setMensagem('');\r\n }\r\n\r\n async function handleSubmit(e) {\r\n e.preventDefault();\r\n if (nome === '' || telefone === '' || assunto === '' || mensagem === '') {\r\n return setErro('Preencha os campos acima!');\r\n }\r\n setErro('');\r\n setButtonDisabled(true);\r\n const contatcUs = {\r\n nome,\r\n telefone,\r\n assunto,\r\n mensagem,\r\n documento: userMarfrig.documento ? maskCnpj(userMarfrig.documento) : '',\r\n usuario: userMarfrig.nome,\r\n emailUsuario: userMarfrig.login\r\n };\r\n\r\n const response = await postContatcUs(contatcUs);\r\n\r\n if (response.status === 200) {\r\n setButtonDisabled(false);\r\n clearFields();\r\n return setSuccess(response.data.dados.msg);\r\n }\r\n\r\n if (response.status !== 200) {\r\n setButtonDisabled(false);\r\n return setErro('Erro ao enviar o e-mail, tente novamente mais tarde!');\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n Fale Conosco\r\n \r\n \r\n \r\n \r\n Nome\r\n {\r\n handleInputChange(e);\r\n }}\r\n onBlur={e => {\r\n if (e.target.value === '') {\r\n setErro('Nome obrigatório!');\r\n setNomeError(true);\r\n }\r\n }}\r\n onFocus={() => {\r\n setNomeError(false);\r\n }}\r\n invalid={nomeError}\r\n type=\"text\"\r\n name=\"nome\"\r\n id=\"nome\"\r\n />\r\n \r\n \r\n \r\n \r\n Telefone\r\n {\r\n handleInputChange(e);\r\n }}\r\n onBlur={e => {\r\n if (e.target.value === '') {\r\n setErro('Telefone obrigatório!');\r\n setTelefoneError(true);\r\n }\r\n }}\r\n onFocus={() => {\r\n setTelefoneError(false);\r\n }}\r\n invalid={telefoneError}\r\n type=\"text\"\r\n name=\"telefone\"\r\n id=\"telefone\"\r\n />\r\n \r\n \r\n \r\n \r\n Assunto\r\n {\r\n handleInputChange(e);\r\n }}\r\n onBlur={e => {\r\n if (e.target.value === '') {\r\n setErro('Assunto obrigatório!');\r\n setAssuntoError(true);\r\n }\r\n }}\r\n onFocus={() => {\r\n setAssuntoError(false);\r\n }}\r\n invalid={assuntoError}\r\n type=\"text\"\r\n name=\"assunto\"\r\n id=\"assunto\"\r\n />\r\n \r\n \r\n \r\n \r\n Mensagem\r\n {\r\n handleInputChange(e);\r\n }}\r\n onBlur={e => {\r\n if (e.target.value === '') {\r\n setErro('Mensagem obrigatório!');\r\n setMensagemError(true);\r\n }\r\n }}\r\n onFocus={() => {\r\n setMensagemError(false);\r\n }}\r\n invalid={mensagemError}\r\n type=\"textarea\"\r\n name=\"mensagem\"\r\n id=\"mensagem\"\r\n />\r\n \r\n \r\n \r\n \r\n Enviar\r\n \r\n \r\n \r\n \r\n {erro && {erro}}\r\n \r\n {success && {success}}\r\n \r\n \r\n \r\n );\r\n}\r\n","import styled from 'styled-components';\r\nimport { Container } from 'reactstrap';\r\n\r\nexport const MFContainer = styled(Container)`\r\n flex: 1;\r\n margin-top: 120px;\r\n`;\r\n\r\nexport const MFButonn = styled.button``;\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport TextFieldComponent from '@material-ui/core/TextField';\r\nimport AutocompleteComponent from '@material-ui/lab/Autocomplete';\r\n\r\nexport const TextField = styled(TextFieldComponent)`\r\n .MuiInputBase-input {\r\n box-sizing: border-box;\r\n }\r\n\r\n .MuiInputLabel-formControl {\r\n position: unset;\r\n top: unset;\r\n left: unset;\r\n display: inline-block;\r\n margin-bottom: 0.5rem;\r\n color: unset;\r\n transform: unset;\r\n }\r\n\r\n .MuiInputLabel-animated {\r\n transition: color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,\r\n transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;\r\n }\r\n\r\n .MuiInputLabel-shrink {\r\n transform: unset;\r\n transform-origin: unset;\r\n }\r\n\r\n .MuiInput-underline {\r\n padding-right: unset;\r\n }\r\n\r\n .MuiInput-underline:before {\r\n display: none;\r\n }\r\n\r\n .MuiInput-underline:after {\r\n display: none;\r\n }\r\n\r\n label {\r\n + {\r\n .MuiInput-formControl {\r\n margin-top: 0;\r\n }\r\n }\r\n }\r\n\r\n .MuiFormLabel-root {\r\n &.Mui-focused {\r\n color: unset;\r\n }\r\n }\r\n\r\n .MuiAutocomplete-inputRoot {\r\n padding-right: unset !important;\r\n\r\n .MuiAutocomplete-input {\r\n width: unset;\r\n min-width: unset;\r\n\r\n ${({ sizeinput }) =>\r\n sizeinput &&\r\n css`\r\n width: ${sizeinput}%;\r\n `}\r\n }\r\n }\r\n`;\r\n\r\nexport const Autocomplete = styled(AutocompleteComponent)`\r\n .MuiFormControl-root {\r\n display: unset;\r\n vertical-align: top;\r\n flex-direction: column;\r\n min-width: unset;\r\n margin: 0;\r\n margin-bottom: 1rem;\r\n padding: 0;\r\n border: 0;\r\n\r\n label {\r\n display: inline-block;\r\n margin-bottom: 0.5rem;\r\n color: #000000;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n }\r\n\r\n input {\r\n display: block;\r\n width: 100%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.375rem 0.75rem !important;\r\n border: solid 1px #a4a5b7;\r\n border-radius: 5px;\r\n background-color: #fdfdff;\r\n background-clip: padding-box;\r\n color: #495057;\r\n font-weight: 400;\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n opacity: 0.5;\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n\r\n &:focus {\r\n border-color: #80bdff;\r\n background-color: #fff;\r\n color: #495057;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n outline: 0;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const Span = styled.span`\r\n margin-left: 2px;\r\n`;\r\n","/* eslint-disable no-use-before-define */\r\nimport React, { useState, useEffect } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { checkMatch } from '../../utils';\r\nimport { Autocomplete, TextField, Span } from './styles';\r\n\r\nexport default function MFComboBox({\r\n label,\r\n valueInput,\r\n setValueInput,\r\n setValueSelected,\r\n optionsSearch,\r\n setMoreOptions,\r\n isSynchronous,\r\n sizeinput,\r\n}) {\r\n const [loading, setLoading] = useState(false);\r\n\r\n function validGetMoreItens(retMatch, valueInputInf) {\r\n let totalFalse = [];\r\n const arrValueInput = valueInputInf.split(' ');\r\n const matchFull = retMatch.map(ret => {\r\n let isMatch = [];\r\n isMatch = ret.filter(r => r.highlight);\r\n return isMatch;\r\n });\r\n totalFalse = matchFull\r\n .map(mt => {\r\n return { sucesso: mt.length === arrValueInput.length };\r\n })\r\n .filter(m => m.sucesso === false);\r\n\r\n return totalFalse?.length || 0;\r\n }\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n setTimeout(() => {\r\n setLoading(false);\r\n }, 1000);\r\n }, [optionsSearch]);\r\n\r\n useEffect(() => {\r\n if (!isSynchronous) return;\r\n if (valueInput.length < 3) return;\r\n setMoreOptions(false);\r\n let retTotalFalse = 0;\r\n const lenghOptions = optionsSearch?.length / 2 || 0;\r\n const resp = optionsSearch.map(opt => {\r\n return checkMatch(opt.valor, valueInput);\r\n });\r\n if (optionsSearch?.length === resp?.length)\r\n retTotalFalse = validGetMoreItens(resp, valueInput);\r\n if (retTotalFalse >= lenghOptions) {\r\n setMoreOptions(true);\r\n }\r\n }, [isSynchronous, optionsSearch, valueInput, setMoreOptions]);\r\n\r\n function handleChange(e, value) {\r\n e.preventDefault();\r\n setValueSelected(value);\r\n }\r\n\r\n function handleInputChange(e, value) {\r\n if (e) e.preventDefault();\r\n setValueInput(value);\r\n }\r\n\r\n return (\r\n {\r\n return setLoading(false);\r\n }}\r\n onOpen={() => setLoading(false)}\r\n onBlur={() => {\r\n setLoading(false);\r\n }}\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n getOptionLabel={option => {\r\n return option.valor;\r\n }}\r\n renderOption={(option, returns) => {\r\n const { inputValue } = returns;\r\n const { valor } = option;\r\n let arrParts = [];\r\n if (inputValue) {\r\n arrParts = checkMatch(valor, inputValue);\r\n if (option?.valor) {\r\n return arrParts.map((part, index) => (\r\n \r\n {`${part.text} `}\r\n \r\n ));\r\n }\r\n }\r\n return option.valor;\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n );\r\n}\r\n\r\nMFComboBox.propTypes = {\r\n label: PropTypes.string,\r\n valueInput: PropTypes.string.isRequired,\r\n setValueInput: PropTypes.func.isRequired,\r\n valueSelected: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\r\n setValueSelected: PropTypes.func.isRequired,\r\n optionsSearch: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\r\n setMoreOptions: PropTypes.func,\r\n isSynchronous: PropTypes.bool,\r\n sizeinput: PropTypes.string,\r\n};\r\n\r\nMFComboBox.defaultProps = {\r\n label: 'Label-busca',\r\n optionsSearch: [],\r\n valueSelected: [],\r\n setMoreOptions: () => {},\r\n isSynchronous: false,\r\n sizeinput: '',\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport CheckboxComponent from '@material-ui/core/Checkbox';\r\nimport TextFieldComponent from '@material-ui/core/TextField';\r\nimport AutocompleteComponent from '@material-ui/lab/Autocomplete';\r\n\r\nexport const Checkbox = styled(CheckboxComponent)``;\r\n\r\nexport const TextField = styled(TextFieldComponent)`\r\n .MuiInputBase-input {\r\n box-sizing: border-box;\r\n }\r\n\r\n .MuiInputLabel-formControl {\r\n position: unset;\r\n top: unset;\r\n left: unset;\r\n display: inline-block;\r\n margin-bottom: 0.5rem;\r\n color: unset;\r\n transform: unset;\r\n }\r\n\r\n .MuiInputLabel-animated {\r\n transition: color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,\r\n transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;\r\n }\r\n\r\n .MuiInputLabel-shrink {\r\n transform: unset;\r\n transform-origin: unset;\r\n }\r\n\r\n .MuiInput-underline {\r\n padding-right: unset;\r\n }\r\n\r\n .MuiInput-underline:before {\r\n display: none;\r\n }\r\n\r\n .MuiInput-underline:after {\r\n display: none;\r\n }\r\n\r\n label {\r\n + {\r\n .MuiInput-formControl {\r\n margin-top: 0;\r\n }\r\n }\r\n }\r\n\r\n .MuiFormLabel-root {\r\n &.Mui-focused {\r\n color: unset;\r\n }\r\n }\r\n\r\n .MuiAutocomplete-inputRoot {\r\n position: relative;\r\n padding-right: unset !important;\r\n\r\n .MuiAutocomplete-tag {\r\n position: absolute;\r\n top: auto;\r\n bottom: auto;\r\n left: 15px;\r\n z-index: 1;\r\n font-weight: bold;\r\n font-size: 11px;\r\n opacity: 0.8;\r\n }\r\n }\r\n`;\r\n\r\nexport const Autocomplete = styled(AutocompleteComponent)`\r\n [role='button'] {\r\n display: none;\r\n }\r\n\r\n .MuiFormControl-root {\r\n display: unset;\r\n vertical-align: top;\r\n flex-direction: column;\r\n min-width: unset;\r\n margin: 0;\r\n margin-bottom: 1rem;\r\n padding: 0;\r\n border: 0;\r\n\r\n label {\r\n display: inline-block;\r\n margin-bottom: 0.5rem;\r\n color: #000000;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n }\r\n\r\n input {\r\n display: block;\r\n width: 100%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.375rem 0.75rem !important;\r\n border: solid 1px #a4a5b7;\r\n border-radius: 5px;\r\n background-color: #fdfdff;\r\n background-clip: padding-box;\r\n color: #495057;\r\n font-weight: 400;\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n opacity: 0.5;\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n\r\n &:focus {\r\n border-color: #80bdff;\r\n background-color: #fff;\r\n color: #495057;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n outline: 0;\r\n cursor: none;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const Span = styled.span`\r\n margin-left: 2px;\r\n`;\r\n","/* eslint-disable no-use-before-define */\r\nimport React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport CheckBoxOutlineBlank from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { Autocomplete, TextField, Checkbox } from './styles';\r\n\r\nconst icon = ;\r\nconst checkedIcon = ;\r\n\r\nexport default function MFComboCheckBox({\r\n label,\r\n setValueSelected,\r\n optionsSearch,\r\n allSelected,\r\n}) {\r\n let labelSelected = '';\r\n\r\n function handleChange(e, value) {\r\n e.preventDefault();\r\n setValueSelected(value);\r\n }\r\n\r\n return (\r\n {\r\n if (allSelected) {\r\n return option.documento !== 'T';\r\n }\r\n }}\r\n getLimitTagsText={num => {\r\n labelSelected = '';\r\n labelSelected =\r\n num > 1\r\n ? `${num} ${label}s Selecionados`\r\n : `${num} ${label} Selecionado`;\r\n labelSelected = !allSelected\r\n ? labelSelected\r\n : `Todos ${label} Selecionados`;\r\n return labelSelected;\r\n }}\r\n getOptionLabel={option => option.title}\r\n renderOption={(option, { selected }) => {\r\n const { documento } = option;\r\n return (\r\n <>\r\n {documento === 'T' && <>{option.title}}\r\n {documento !== 'T' && (\r\n <>\r\n \r\n {option.title}\r\n \r\n )}\r\n \r\n );\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n );\r\n}\r\n\r\nMFComboCheckBox.propTypes = {\r\n label: PropTypes.string,\r\n setValueSelected: PropTypes.func.isRequired,\r\n optionsSearch: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\r\n allSelected: PropTypes.bool,\r\n};\r\n\r\nMFComboCheckBox.defaultProps = {\r\n label: 'Label-busca',\r\n optionsSearch: [],\r\n allSelected: false,\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const Container = styled.div``;\r\n","import React from 'react';\r\nimport Bootbox from 'bootbox-react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { Container } from './styles';\r\n\r\nexport default function MFBootbox({\r\n showConfirm,\r\n type,\r\n message,\r\n successLabel,\r\n cancelLabel,\r\n cancelClassNames,\r\n successClassNames,\r\n onSuccess,\r\n onCancel,\r\n onClose,\r\n}) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMFBootbox.propTypes = {\r\n showConfirm: PropTypes.bool.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n type: PropTypes.string,\r\n message: PropTypes.string,\r\n successLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n cancelClassNames: PropTypes.string,\r\n successClassNames: PropTypes.string,\r\n};\r\n\r\nMFBootbox.defaultProps = {\r\n type: 'confirm',\r\n message: 'Confirma ação?',\r\n successLabel: 'Sim',\r\n cancelLabel: 'Não',\r\n cancelClassNames: 'btn-primary',\r\n successClassNames: 'btn-danger',\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { MFContainer, MFButonn } from './styles';\r\n\r\nimport MFComboBox from '../../components/MFComboBox';\r\nimport MFComboCheckBox from '../../components/MFComboCheckBox';\r\nimport MFBootbox from '../../components/MFBootbox';\r\n\r\nexport default function CustomComponents() {\r\n const [showConfirm, setShowConfirm] = useState(false);\r\n const [moreOptions, setMoreOptions] = useState(false);\r\n const [valueInput, setValueInput] = useState('');\r\n const [valueSelected, setValueSelected] = useState([]);\r\n const [optionsSearch, setOptionsSearch] = useState([\r\n {\r\n valor: 'Nome A',\r\n id: 1,\r\n },\r\n {\r\n valor: 'Nome B',\r\n id: 2,\r\n },\r\n {\r\n valor: 'Nome C',\r\n id: 3,\r\n },\r\n {\r\n valor: 'Nome D',\r\n id: 4,\r\n },\r\n ]);\r\n const [optionsSearchCheck, setOptionsSearchCheck] = useState([]);\r\n const [valueSelectedCheck, setValueSelectedCheck] = useState([]);\r\n\r\n useEffect(() => {\r\n setMoreOptions(false);\r\n }, [optionsSearch]);\r\n\r\n useEffect(() => {\r\n return () => {};\r\n }, [valueSelectedCheck]);\r\n\r\n useEffect(() => {\r\n if (optionsSearchCheck.length) return;\r\n const optionsCheck = [\r\n { title: '28516075000149', id: 1 },\r\n { title: '28516075000148', id: 2 },\r\n { title: '28516076000147', id: 3 },\r\n ];\r\n setOptionsSearchCheck(optionsCheck);\r\n }, [optionsSearchCheck]);\r\n\r\n useEffect(() => {\r\n if (!moreOptions) return;\r\n setOptionsSearch([\r\n {\r\n valor: 'Nome A',\r\n id: 1,\r\n },\r\n {\r\n valor: 'Nome B',\r\n id: 2,\r\n },\r\n {\r\n valor: 'Nome C',\r\n id: 3,\r\n },\r\n {\r\n valor: 'Nome D',\r\n id: 4,\r\n },\r\n ]);\r\n }, [moreOptions, valueInput]);\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {\r\n setShowConfirm(!showConfirm);\r\n }}\r\n >\r\n Box de Confirmação\r\n \r\n {\r\n setShowConfirm(!showConfirm);\r\n }}\r\n onCancel={() => {\r\n setShowConfirm(!showConfirm);\r\n }}\r\n onClose={() => {\r\n setShowConfirm(!showConfirm);\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import axios from './api';\r\nimport config from './enviroment';\r\n\r\nexport async function getFaq() {\r\n try {\r\n const response = await axios.get(`${config.baseUrl}/Faq`);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\n\r\nexport async function postFaq(faq) {\r\n try {\r\n const { pergunta, resposta } = faq;\r\n\r\n const params = {\r\n pergunta,\r\n resposta,\r\n ativo: true,\r\n };\r\n const response = await axios.post(`${config.baseUrl}/Faq/`, params);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\nexport async function updateFaq(faq) {\r\n try {\r\n const { pergunta, resposta, idFaq } = faq;\r\n const params = {\r\n idFaq,\r\n pergunta,\r\n resposta,\r\n ativo: true,\r\n };\r\n const response = await axios.put(`${config.baseUrl}/Faq/${idFaq}`, params);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\nexport async function deleteFaq(id) {\r\n try {\r\n const response = await axios.delete(`${config.baseUrl}/Faq/${id}`);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport { UncontrolledCollapse } from 'reactstrap';\r\n\r\nexport const Container = styled.div``;\r\n\r\nexport const MFUncontrolledCollapse = styled(UncontrolledCollapse)``;\r\n","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { Container, MFUncontrolledCollapse } from './styles';\r\n\r\nexport default function Accordion({ togglerId, children }) {\r\n return (\r\n \r\n {togglerId === 'toggler' && (\r\n \r\n )}\r\n \r\n {children && children}\r\n {!children && (\r\n
\r\n

Texto padrão Accordion

\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nAccordion.propTypes = {\r\n togglerId: PropTypes.string,\r\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.array]),\r\n};\r\n\r\nAccordion.defaultProps = {\r\n togglerId: 'toggler',\r\n children: null,\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport {\r\n FaPlusSquare,\r\n FaMinusSquare,\r\n FaTrashAlt,\r\n FaEdit,\r\n} from 'react-icons/fa';\r\nimport AccordionComponent from '../../../components/Accordion';\r\n\r\nexport const ContainerFaqItens = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n min-width: 100%;\r\n`;\r\n\r\nexport const Painel = styled.div`\r\n width: 100%;\r\n margin-bottom: 20px;\r\n border: 1px solid transparent;\r\n border-color: #ddd;\r\n border-radius: 4px;\r\n background-color: #fff;\r\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\r\n`;\r\n\r\nexport const PainelHeading = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 10px 15px;\r\n border-color: #ddd;\r\n border-bottom: 1px solid transparent;\r\n border-top-left-radius: 3px;\r\n border-top-right-radius: 3px;\r\n background-color: #f5f5f5;\r\n color: #333;\r\n`;\r\n\r\nexport const PanelBody = styled.div`\r\n padding: 15px;\r\n`;\r\n\r\nexport const IconPlus = styled(FaPlusSquare)`\r\n margin-right: 20px;\r\n color: #183267;\r\n text-shadow: 0px 1px 2px rgba(150, 150, 150, 1);\r\n cursor: pointer;\r\n`;\r\n\r\nexport const IconMinus = styled(FaMinusSquare)`\r\n margin-right: 20px;\r\n color: #183267;\r\n text-shadow: 0px 1px 2px rgba(150, 150, 150, 1);\r\n cursor: pointer;\r\n`;\r\n\r\nexport const IconDelete = styled(FaTrashAlt)`\r\n margin-right: 20px;\r\n color: #183267;\r\n text-shadow: 0px 1px 2px rgba(150, 150, 150, 1);\r\n`;\r\n\r\nexport const IconEdit = styled(FaEdit)`\r\n margin-right: 20px;\r\n color: #183267;\r\n text-shadow: 0px 1px 2px rgba(150, 150, 150, 1);\r\n`;\r\n\r\nexport const Accordion = styled(AccordionComponent)``;\r\n\r\nexport const WrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nexport const WrapHeader = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n","import React, { useState } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n Accordion,\r\n ContainerFaqItens,\r\n Painel,\r\n PainelHeading,\r\n PanelBody,\r\n IconMinus,\r\n IconPlus,\r\n IconDelete,\r\n IconEdit,\r\n WrapButtons,\r\n WrapHeader,\r\n} from './styles';\r\n\r\nexport default function FaqItem({\r\n faq,\r\n editButtons,\r\n setEditFaq,\r\n setDeleteFaq,\r\n}) {\r\n const [openQuest, setOpenQuest] = useState(false);\r\n return (\r\n \r\n \r\n \r\n {\r\n setOpenQuest(!openQuest);\r\n }}\r\n id={`toggle_${faq.idFaq}`}\r\n >\r\n {!openQuest && }\r\n {openQuest && }\r\n {faq.pergunta}\r\n \r\n {editButtons && (\r\n \r\n {\r\n setEditFaq(faq);\r\n }}\r\n />\r\n {\r\n setDeleteFaq(faq);\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n {faq.resposta}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nFaqItem.propTypes = {\r\n faq: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\r\n editButtons: PropTypes.bool,\r\n setEditFaq: PropTypes.func,\r\n setDeleteFaq: PropTypes.func,\r\n};\r\n\r\nFaqItem.defaultProps = {\r\n faq: [],\r\n editButtons: false,\r\n setEditFaq: () => {},\r\n setDeleteFaq: () => {},\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport {\r\n Jumbotron,\r\n Form,\r\n Row,\r\n Col,\r\n FormGroup,\r\n Label,\r\n Input,\r\n Button,\r\n} from 'reactstrap';\r\nimport MFBootboxComponent from '../../components/MFBootbox';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 120px;\r\n margin-bottom: 0;\r\n`;\r\n\r\nexport const MFJumbotron = styled(Jumbotron)`\r\n width: 95%;\r\n padding: 2rem 1rem;\r\n`;\r\n\r\nexport const MFBootbox = styled(MFBootboxComponent)``;\r\n\r\nexport const MFJumbotronItens = styled(MFJumbotron)`\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const MFTitleBox = styled.h1`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFRow = styled(Row)``;\r\n\r\nexport const MFColForm = styled(Col)``;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)``;\r\n\r\nexport const MFInput = styled(Input)``;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-around;\r\n width: 100%;\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 20%;\r\n margin: auto 10px;\r\n\r\n @media screen and (max-width: 767px) {\r\n width: 20%;\r\n }\r\n`;\r\n\r\nexport const ErroWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const MsgErro = styled.span`\r\n color: #dc3545;\r\n opacity: 0.8;\r\n`;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport {\r\n getFaq,\r\n deleteFaq,\r\n postFaq,\r\n updateFaq,\r\n} from '../../services/faqServices';\r\n\r\nimport FaqItem from '../FaqProvider/FaqItem';\r\n\r\nimport {\r\n Container,\r\n MFJumbotron,\r\n MFJumbotronItens,\r\n MFTitleBox,\r\n MFBootbox,\r\n MFForm,\r\n MFRow,\r\n MFColForm,\r\n MFFormGroup,\r\n MFLabel,\r\n MFInput,\r\n MFWrapButtons,\r\n MFButton,\r\n ErroWrap,\r\n MsgErro,\r\n} from './styles';\r\n\r\nexport default function FaqConfig() {\r\n const [faqData, setFaqData] = useState(false);\r\n const [notData, setNotData] = useState(false);\r\n const [editFaq, setEditFaq] = useState([]);\r\n const [deleteFaqInfo, setDeleteFaqInfo] = useState([]);\r\n const [showConfirm, setShowConfirm] = useState(false);\r\n const [messageConfirm, setMessageConfirm] = useState('');\r\n const [pergunta, setPergunta] = useState('');\r\n const [resposta, setResposta] = useState('');\r\n const [idFaq, setIdFaq] = useState(0);\r\n const [erroPergunta, setErroPergunta] = useState(false);\r\n const [erroResposta, setErroResposta] = useState(false);\r\n const [submitForm, setSubmitForm] = useState(false);\r\n\r\n useEffect(() => {\r\n if (editFaq?.length === 0) return;\r\n const {\r\n idFaq: FaqId,\r\n pergunta: perguntaRet,\r\n resposta: respostaRet,\r\n } = editFaq;\r\n setPergunta(perguntaRet);\r\n setResposta(respostaRet);\r\n setIdFaq(FaqId);\r\n }, [editFaq]);\r\n\r\n useEffect(() => {\r\n if (deleteFaqInfo?.length === 0) return;\r\n setShowConfirm(true);\r\n setMessageConfirm(`Deseja mesmo excluir: \"${deleteFaqInfo.pergunta}\"?`);\r\n }, [deleteFaqInfo]);\r\n\r\n useEffect(() => {\r\n if (faqData) return;\r\n async function getFaqApi() {\r\n const response = await getFaq();\r\n if (!response.data && response.status !== 200) {\r\n setNotData(true);\r\n return setFaqData(false);\r\n }\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n if (!dataRet.length) {\r\n setFaqData(false);\r\n return setNotData(true);\r\n }\r\n\r\n setFaqData(dataRet);\r\n }\r\n return response;\r\n }\r\n getFaqApi();\r\n }, [faqData, setFaqData, setNotData]);\r\n\r\n useEffect(() => {\r\n async function postFaqApi() {\r\n let response = null;\r\n if (idFaq) {\r\n response = await updateFaq({ pergunta, resposta, idFaq });\r\n } else {\r\n response = await postFaq({ pergunta, resposta });\r\n }\r\n if (!response.data && response.status !== 200) {\r\n return;\r\n }\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n if (!dataRet.length) {\r\n setPergunta('');\r\n setResposta('');\r\n setSubmitForm(false);\r\n return setFaqData(false);\r\n }\r\n }\r\n }\r\n if (!submitForm) return;\r\n\r\n if (!erroPergunta && !erroResposta && pergunta && resposta) {\r\n postFaqApi();\r\n }\r\n }, [idFaq, submitForm, erroPergunta, erroResposta, pergunta, resposta]);\r\n\r\n async function deleteFaqApi() {\r\n setShowConfirm(!showConfirm);\r\n\r\n const response = await deleteFaq(deleteFaqInfo.idFaq);\r\n if (!response.data && response.status !== 200) {\r\n return;\r\n }\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n if (!dataRet.length) {\r\n return setFaqData(false);\r\n }\r\n }\r\n }\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n setSubmitForm(true);\r\n if (!pergunta) {\r\n setErroPergunta(true);\r\n }\r\n if (!resposta) {\r\n setErroResposta(true);\r\n }\r\n }\r\n\r\n function handleChangeInput(e) {\r\n e.preventDefault();\r\n setSubmitForm(false);\r\n setErroPergunta(false);\r\n setErroResposta(false);\r\n const { name, value } = e.target;\r\n switch (name) {\r\n case 'pergunta':\r\n setPergunta(value);\r\n break;\r\n case 'resposta':\r\n setResposta(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n function clearFields() {\r\n setPergunta('');\r\n setResposta('');\r\n setSubmitForm(false);\r\n setErroPergunta(false);\r\n setErroResposta(false);\r\n setEditFaq([]);\r\n }\r\n\r\n return (\r\n \r\n \r\n FAQ - Cadastro\r\n \r\n \r\n \r\n \r\n Pergunta\r\n \r\n \r\n \r\n \r\n \r\n Resposta\r\n \r\n \r\n \r\n \r\n {\r\n clearFields();\r\n }}\r\n color=\"secondary\"\r\n >\r\n Limpar\r\n \r\n \r\n Incluir\r\n \r\n \r\n \r\n \r\n \r\n {erroPergunta && Preencha a Pergunta}\r\n {erroResposta && Preencha a Resposta}\r\n \r\n \r\n \r\n {notData &&

Nenhuma FAQ Cadastrada

}\r\n {faqData.length > 0 &&\r\n faqData.map(faq => (\r\n \r\n ))}\r\n
\r\n {\r\n deleteFaqApi();\r\n }}\r\n onCancel={() => {\r\n setShowConfirm(!showConfirm);\r\n setDeleteFaqInfo([]);\r\n }}\r\n onClose={() => {\r\n setShowConfirm(!showConfirm);\r\n setDeleteFaqInfo([]);\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport { Jumbotron } from 'reactstrap';\r\nimport FaqItemComponent from './FaqItem';\r\nimport AccordionComponent from '../../components/Accordion';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 120px;\r\n margin-bottom: 0;\r\n`;\r\n\r\nexport const MFJumbotron = styled(Jumbotron)`\r\n width: 95%;\r\n padding: 2rem 1rem;\r\n`;\r\n\r\nexport const MFTitleBox = styled.h1`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const FaqWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n width: 95%;\r\n`;\r\n\r\nexport const FaqTitle = styled.span`\r\n width: 100%;\r\n margin-bottom: 20px;\r\n color: #183267;\r\n font-size: 28px;\r\n text-align: center;\r\n text-shadow: 0px 1px 2px rgba(150, 150, 150, 1);\r\n`;\r\n\r\nexport const FaqItem = styled(FaqItemComponent)``;\r\n\r\nexport const Accordion = styled(AccordionComponent)``;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { getFaq } from '../../services/faqServices';\r\n\r\nimport {\r\n Container,\r\n FaqWrap,\r\n FaqTitle,\r\n FaqItem,\r\n MFJumbotron,\r\n MFTitleBox,\r\n} from './styles';\r\n\r\nexport default function FaqProvider() {\r\n const [faqData, setFaqData] = useState(false);\r\n const [notData, setNotData] = useState(false);\r\n\r\n useEffect(() => {\r\n if (faqData) return;\r\n async function getFaqApi() {\r\n const response = await getFaq();\r\n if (!response.data && response.status !== 200) {\r\n setNotData(true);\r\n return setFaqData(false);\r\n }\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n if (!dataRet.length) {\r\n setFaqData(false);\r\n return setNotData(true);\r\n }\r\n setFaqData(dataRet);\r\n }\r\n return response;\r\n }\r\n getFaqApi();\r\n }, [faqData, setFaqData, setNotData]);\r\n\r\n return (\r\n \r\n \r\n FAQ - Perguntas Frequentes\r\n \r\n \r\n {notData &&

Nenhuma FAQ Cadastrada

}\r\n {faqData.length > 0 &&\r\n faqData.map(faq => )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","export const Types = {\r\n REQUEST: '@user-USER_INFO_DATA_REQUEST',\r\n SUCCESS: '@user-USER_INFO_DATA_SUCCESS',\r\n SUCCESS_AD: '@user-USER_INFO_DATA_SUCCESS_AD',\r\n FAILURE: '@user-USER_INFO_DATA_FAILURE',\r\n REMOVE_ALL: '@user-USER_INFO_DATA_REMOVE',\r\n};\r\n\r\nexport function loginUser(user, password) {\r\n return {\r\n type: Types.REQUEST,\r\n payload: {\r\n user,\r\n password,\r\n },\r\n };\r\n}\r\n\r\nexport function userInfoSuccess({ data: { dados } }) {\r\n return {\r\n type: Types.SUCCESS,\r\n payload: dados,\r\n };\r\n}\r\n\r\nexport function userInfoSuccessAD(dados) {\r\n return {\r\n type: Types.SUCCESS_AD,\r\n payload: dados,\r\n };\r\n}\r\n\r\nexport function userInfoFailure({ data: { erros } }) {\r\n return {\r\n type: Types.FAILURE,\r\n payload: erros,\r\n };\r\n}\r\n\r\nexport function userInfoRemoveAll() {\r\n return {\r\n type: Types.REMOVE_ALL,\r\n };\r\n}\r\n\r\nexport function recoverPassword(user) {\r\n return {\r\n payload: {\r\n user\r\n },\r\n };\r\n}\r\n","export const isAuthenticated = loginInformation => {\r\n if (loginInformation?.acessTokenMarfrig) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const isPassExpired = loginInformation => {\r\n if (loginInformation?.userMarfrig?.senhaExpirada) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n","import { Link } from 'react-router-dom';\r\n\r\nimport styled, { css } from 'styled-components';\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Jumbotron,\r\n Form,\r\n FormGroup,\r\n Label,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n} from 'reactstrap';\r\nimport Logo from '../../assets/img/logo.png';\r\nimport LoginBG from '../../assets/img/login-bg.png';\r\n\r\nexport const MFContainerLogin = styled.div`\r\n background-image: url(${LoginBG});\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n height: 100vh;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: row;\r\n`;\r\n\r\nexport const MFContainerLink = styled(Link)`\r\n width: unset;\r\n height: unset;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\nexport const MFFormFeedback = styled.span`\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n color: #dc3545;\r\n font-size: 80%;\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n font-size: 100% !important;\r\n color: #295239 !important;\r\n font-weight: bold\r\n `}\r\n`;\r\n\r\nexport const MFRow = styled(Row)`\r\n margin: 120px;\r\n`;\r\n\r\nexport const MFCol = styled(Col)`\r\n display: flex;\r\n max-width: 300px;\r\n\r\n @media screen and (max-width: 991px) {\r\n justify-content: center;\r\n max-width: unset;\r\n margin: 10px auto;\r\n }\r\n`;\r\n\r\nexport const MFTitle = styled.h1`\r\n margin-bottom: 15px;\r\n font-weight: 400;\r\n font-style: normal;\r\n font-size: 32px;\r\n font-family: 'Poppins', sans-serif;\r\n`;\r\n\r\nexport const MFButton = styled(Button).attrs({\r\n color: 'success',\r\n})`\r\n min-width: 94px;\r\n`;\r\n\r\nexport const MFLogo = styled.img.attrs({\r\n src: Logo,\r\n alt: 'Logo Marfrig',\r\n})`\r\n width: 142px;\r\n height: 38px;\r\n`;\r\n\r\nexport const MFBox = styled(Jumbotron)`\r\n width: 300px;\r\n height: 420px;\r\n padding: 2rem 2rem 0;\r\n border: 1px solid #d0d0d0;\r\n background: rgba(255, 255, 255, 0.7) !important;\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n color: #dc3545 !important;\r\n `}\r\n`;\r\n\r\nexport const MFInput = styled(Input)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n\r\n &:focus {\r\n border-color: #dc3545 !important;\r\n background-color: #fff;\r\n color: #495057;\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\r\n outline: 0;\r\n }\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745 !important;\r\n `}\r\n`;\r\n\r\nexport const MFInputGroup = styled(InputGroup)``;\r\n\r\nexport const MFInputGroupAddon = styled(InputGroupAddon)`\r\n span {\r\n border-top-right-radius: 4px !important;\r\n border-bottom-right-radius: 4px !important;\r\n background-color: #ffffff;\r\n\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n svg {\r\n fill: #dc3545 !important;\r\n }\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFInputGroupText = styled(InputGroupText)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n opacity: 0.5;\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745 !important;\r\n `}\r\n`;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const MFNotRegistered = styled(MFButton).attrs({\r\n color: 'primary',\r\n})`\r\n width: 126px;\r\n`;\r\n\r\nexport const MFLabelButton = styled.span`\r\n color: #ffffff;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFLabelLink = styled.span`\r\n color: 01324f;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-size: 13px;\r\n text-decoration: underline;\r\n`;\r\n\r\nexport const MFWrapDescription = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n margin-top: 24px;\r\n`;\r\n\r\nexport const MFDescriptionSystem = styled.span`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFDescriptionLogin = styled.span`\r\n margin-top: 4px;\r\n margin-bottom: 24px;\r\n color: #a4a5b7;\r\n font-weight: 300;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 14px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFLogoWrap = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { FaEye, FaEyeSlash } from 'react-icons/fa';\r\nimport * as UserActions from '../../store/modules/user/actions';\r\n\r\nimport history from '../../services/history';\r\nimport { isAuthenticated, isPassExpired } from '../../auth';\r\n\r\nimport { isEmail } from '../../utils';\r\n\r\nimport {\r\n MFContainerLogin,\r\n MFLogo,\r\n MFBox,\r\n MFForm,\r\n MFFormGroup,\r\n MFLabel,\r\n MFInput,\r\n MFInputGroup,\r\n MFInputGroupAddon,\r\n MFInputGroupText,\r\n MFButton,\r\n MFNotRegistered,\r\n MFFormFeedback,\r\n MFContainerLink,\r\n MFLogoWrap,\r\n MFDescriptionSystem,\r\n MFWrapButtons,\r\n MFLabelButton,\r\n MFDescriptionLogin,\r\n MFWrapDescription,\r\n MFLabelLink\r\n} from './styles';\r\n\r\nexport default function Login() {\r\n const [typePassword, setTypePassword] = useState(true);\r\n const [user, setUser] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [disabledButton, setDisabledButton] = useState(false);\r\n const [userError, setUserError] = useState(false);\r\n const [emailError, setEmailError] = useState(false);\r\n const [userValid, setUserValid] = useState(false);\r\n const [msgError, setMsgError] = useState(false);\r\n\r\n const loginInformation = useSelector(\r\n ({ userInformations }) => userInformations\r\n );\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (isAuthenticated(loginInformation)) {\r\n setTimeout(() => {\r\n history.push('/');\r\n }, 2000);\r\n } else if (isPassExpired(loginInformation)) {\r\n history.push('/usuario/senhaexpirada');\r\n }\r\n }, [loginInformation]);\r\n\r\n useEffect(() => {\r\n if (userValid) return () => {};\r\n }, [userValid, userError, disabledButton]);\r\n\r\n useEffect(() => {\r\n if (loginInformation.error) {\r\n setMsgError(loginInformation.errorMessage);\r\n setDisabledButton(false);\r\n setUserError(true);\r\n }\r\n if (loginInformation.acessTokenMarfrig) {\r\n setUserValid(true);\r\n }\r\n }, [loginInformation]);\r\n\r\n async function handleSubmit(e) {\r\n e.preventDefault();\r\n setUserError(false);\r\n setUserValid(false);\r\n setDisabledButton(true);\r\n dispatch(UserActions.loginUser(user, password));\r\n }\r\n\r\n function verifyEmail(e) {\r\n e.preventDefault();\r\n setEmailError(!isEmail(e.target.value));\r\n }\r\n\r\n function handleClearErros(e) {\r\n e.preventDefault();\r\n setUserError(false);\r\n setEmailError(false);\r\n setMsgError(false);\r\n }\r\n\r\n function handleInputChange(e) {\r\n e.preventDefault();\r\n const { name, value } = e.target;\r\n switch (name) {\r\n case 'user':\r\n setUser(value);\r\n break;\r\n case 'password':\r\n setPassword(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Portal de Fornecedores\r\n Digite seus dados abaixo\r\n \r\n \r\n \r\n \r\n E-mail\r\n \r\n verifyEmail(e)}\r\n onFocus={handleClearErros}\r\n />\r\n {emailError && (\r\n Digite um e-mail válido\r\n )}\r\n \r\n \r\n \r\n Senha\r\n \r\n \r\n \r\n \r\n \r\n {typePassword && (\r\n setTypePassword(!typePassword)} />\r\n )}\r\n {!typePassword && (\r\n setTypePassword(!typePassword)}\r\n />\r\n )}\r\n \r\n \r\n {userError && {msgError}}\r\n {userValid && (\r\n \r\n Login efetuado com sucesso, você será redirecionado!\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Login\r\n \r\n \r\n \r\n Novo Usuário\r\n \r\n \r\n \r\n \r\n Esqueceu a senha?\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import styled from 'styled-components';\r\nimport { Container } from 'reactstrap';\r\n\r\nexport const MFContainer = styled(Container)``;\r\n","import React from 'react';\r\n\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nimport { MFContainer } from './styles';\r\n\r\nexport default function MFRedirectToHome() {\r\n return (\r\n \r\n

Você precisa estar logado para executar essa ação!

\r\n

\r\n Você será redirecionado em poucos instantes, caso não seja clique no\r\n link abaixo!\r\n

\r\n \r\n
\r\n );\r\n}\r\n","let PORTAL_FORNECEDOR = ['g-portalFornecedor-PRD'];\r\nlet PORTAL_FORNECEDOR_ADM = ['g-portal-fornecedores-adm'];\r\n\r\nconst userGroups = {\r\n PORTAL_FORNECEDOR,\r\n PORTAL_FORNECEDOR_ADM,\r\n};\r\n\r\nexport default userGroups;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport AzureAD from 'react-aad-msal';\r\nimport { isAuthenticated } from '../../auth';\r\nimport * as UserActions from '../../store/modules/user/actions';\r\nimport authProvider from '../../services/authProvider';\r\nimport history from '../../services/history';\r\nimport MFRedirectToHome from '../MFRedirectToHome';\r\nimport userGroups from '../../utils/userGroups';\r\nimport { arrayCompare } from '../../utils';\r\n\r\nexport default function LoginAD() {\r\n const dispatch = useDispatch();\r\n const [authenticated, setAuthenticated] = useState(false);\r\n\r\n const loginInformation = useSelector(\r\n ({ userInformations }) => userInformations\r\n );\r\n\r\n useEffect(() => {\r\n const token = authProvider.getIdToken();\r\n token.then(\r\n res => {\r\n const data = res.idToken;\r\n const { claims } = data;\r\n const permission = arrayCompare(\r\n claims.groups || ['DEFAULT_GROUP'],\r\n userGroups.PORTAL_FORNECEDOR\r\n );\r\n if (permission > 0) {\r\n dispatch(UserActions.userInfoSuccessAD(data));\r\n } else {\r\n alert(\r\n 'Funcionário sem permissão para acessar o portal de fornecedores, solicite acesso via GAM ( http://gam/ ) no item: “Portal Fornecedores - Contas a Pagar – Consulta”'\r\n );\r\n authProvider.logout();\r\n history.push('/prelogin');\r\n }\r\n },\r\n () => {}\r\n );\r\n });\r\n\r\n useEffect(() => {\r\n if (isAuthenticated(loginInformation)) {\r\n setAuthenticated(true);\r\n }\r\n }, [loginInformation]);\r\n\r\n return (\r\n <>\r\n \r\n {authenticated && }\r\n \r\n );\r\n}\r\n","import axios from './api';\r\nimport config from './enviroment';\r\nimport { limparCPFCNPJ } from '../utils';\r\n\r\nexport async function postUser(data) {\r\n const {\r\n nota,\r\n dataEmissaoNota,\r\n idPerfil,\r\n tipo,\r\n cnpj,\r\n nome,\r\n email,\r\n senha,\r\n } = data;\r\n\r\n const params = {\r\n nota,\r\n dataEmissaoNota: `${dataEmissaoNota}T17:18:53.266Z`,\r\n usuario: {\r\n idPerfil: Number(idPerfil),\r\n login: email,\r\n senha,\r\n alterarSenha: true,\r\n notificacaoEmail: true,\r\n notificacaoCelular: true,\r\n pessoa: {\r\n nome,\r\n documento: limparCPFCNPJ(cnpj),\r\n tipo,\r\n email,\r\n },\r\n status: 1,\r\n },\r\n };\r\n\r\n try {\r\n const response = await axios.post(`${config.baseUrl}/Usuario`, params);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\nexport async function getUsers(conteudo) {\r\n try {\r\n const response = await axios.get(\r\n `${config.baseUrl}/Usuario/BuscarUsuarioDocumentoEmail/${conteudo}`\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\nexport async function getNewPassword(login) {\r\n try {\r\n const response = await axios.get(\r\n `${config.baseUrl}/Usuario/GerarNovaSenha/${login}`\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\nexport async function postNewPassword(model) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Usuario/AlterarSenhaPorExpiracao`, model\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n\r\nexport async function deleteUser(id) {\r\n try {\r\n const response = await axios.delete(`${config.baseUrl}/Usuario/${id}`);\r\n return response;\r\n } catch (err) {\r\n return err.response.data;\r\n }\r\n}\r\n","import styled, { css } from 'styled-components';\r\n\r\nexport const PasswordStrengthWrap = styled.div``;\r\n\r\nexport const PasswordStrengthText = styled.p`\r\n display: inline;\r\n color: #a4a5b7;\r\n font-weight: 300;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: 1.5;\r\n letter-spacing: normal;\r\n\r\n ${({ startValidation }) =>\r\n startValidation &&\r\n css`\r\n color: #dc3545;\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n color: #0069d9;\r\n `}\r\n`;\r\n\r\nexport const PasswordStrengthTitle = styled.span`\r\n display: block;\r\n color: #000000;\r\n font-weight: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n`;\r\n\r\nexport const PasswordStrengtBox = styled.div`\r\n padding: 10px;\r\n border-radius: 5px;\r\n background-color: #f5f6fa;\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { calcularForcaDeSenha } from '../../utils';\r\nimport {\r\n PasswordStrengthWrap,\r\n PasswordStrengtBox,\r\n PasswordStrengthText,\r\n PasswordStrengthTitle,\r\n} from './styles';\r\n\r\nexport default function PasswordStrength({ senha, setErrorValidPass }) {\r\n const [strengthPass, setStrengthPass] = useState({});\r\n const [startValidation, setStartValidation] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!senha) return;\r\n setStrengthPass(calcularForcaDeSenha(senha));\r\n }, [senha]);\r\n\r\n useEffect(() => {\r\n const validation = senha !== '';\r\n setStartValidation(validation);\r\n if (!validation) {\r\n setStrengthPass({});\r\n }\r\n }, [senha, setErrorValidPass]);\r\n\r\n const {\r\n maiusculasOK,\r\n minusculasOK,\r\n numerosOK,\r\n especiaisOK,\r\n tamanhoOK,\r\n } = strengthPass;\r\n\r\n useEffect(() => {\r\n if (startValidation) setErrorValidPass(true);\r\n if (!startValidation) setErrorValidPass(false);\r\n if (maiusculasOK && minusculasOK && numerosOK && especiaisOK && tamanhoOK)\r\n setErrorValidPass(false);\r\n }, [\r\n maiusculasOK,\r\n minusculasOK,\r\n numerosOK,\r\n especiaisOK,\r\n tamanhoOK,\r\n setErrorValidPass,\r\n startValidation,\r\n ]);\r\n\r\n return (\r\n \r\n \r\n A senha deve conter:\r\n \r\n {'Pelo menos 8 caracteres, '}\r\n \r\n \r\n {'incluir números, '}\r\n \r\n \r\n {'letras maiúsculas, '}\r\n \r\n \r\n {'letras minúsculas, '}\r\n \r\n \r\n ao menos um caractere especial.\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nPasswordStrength.propTypes = {\r\n senha: PropTypes.string,\r\n setErrorValidPass: PropTypes.func,\r\n};\r\n\r\nPasswordStrength.defaultProps = {\r\n senha: '',\r\n setErrorValidPass: () => {},\r\n};\r\n","import { Link } from 'react-router-dom';\r\n\r\nimport styled, { css } from 'styled-components';\r\nimport {\r\n Row,\r\n Col,\r\n Jumbotron,\r\n Form,\r\n FormGroup,\r\n Label,\r\n Input,\r\n Button,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n} from 'reactstrap';\r\nimport PasswordStrength from '../../components/PasswordStrength';\r\nimport Logo from '../../assets/img/logo.png';\r\n\r\nexport const MFContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 40px auto;\r\n`;\r\n\r\nexport const MFContainerLink = styled(Link)`\r\n text-decoration: none;\r\n\r\n &:focus,\r\n &:hover,\r\n &:visited,\r\n &:link,\r\n &:active {\r\n text-decoration: none;\r\n }\r\n\r\n @media screen and (max-width: 535px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const MFRow = styled(Row)`\r\n margin: 30px;\r\n ${({ form }) =>\r\n form &&\r\n css`\r\n margin: auto;\r\n `}\r\n`;\r\n\r\nexport const MFCol = styled(Col)`\r\n display: flex;\r\n max-width: 400px;\r\n\r\n @media screen and (max-width: 991px) {\r\n justify-content: center;\r\n max-width: unset;\r\n margin: 10px auto;\r\n }\r\n`;\r\n\r\nexport const MFColForm = styled(Col)``;\r\n\r\nexport const MFLogo = styled.img.attrs({\r\n src: Logo,\r\n alt: 'Logo Marfrig',\r\n})`\r\n width: 142px;\r\n height: 38px;\r\n`;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n @media screen and (max-width: 535px) {\r\n display: flex;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n`;\r\n\r\nexport const MFBox = styled(Jumbotron)`\r\n width: 478px;\r\n padding: 2rem 2rem 0;\r\n border: 1px solid #d0d0d0;\r\n\r\n ${({ first }) =>\r\n first &&\r\n css`\r\n margin-bottom: 5px;\r\n min-height: 350px;\r\n `}\r\n\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n margin-top: 1px;\r\n padding: 1rem 2rem 2rem;\r\n height: 230px;\r\n min-height: 260px;\r\n `}\r\n\r\n @media screen and (max-width: 767px) {\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 382px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 755px) {\r\n width: 90%;\r\n min-height: 700px;\r\n margin: 10px auto;\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 382px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 430px) {\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 392px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 400px) {\r\n min-height: 715px;\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 392px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 380px) {\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 420px;\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFLabelButton = styled.span`\r\n color: #ffffff;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFTitle = styled.span`\r\n display: block;\r\n margin: 24px 0;\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFTitleInfo = styled.p`\r\n font-size: 20px;\r\n`;\r\n\r\nexport const MFForm = styled(Form)`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n max-width: 100%;\r\n`;\r\n\r\nexport const MFFormGroup = styled(FormGroup)`\r\n margin-bottom: 0.5rem;\r\n\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n margin-bottom: 1rem;\r\n `}\r\n`;\r\n\r\nexport const MFLabel = styled(Label)``;\r\n\r\nexport const MFInput = styled(Input)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n opacity: 0.5;\r\n `}\r\n`;\r\n\r\nexport const MFFormFeedback = styled.span`\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n color: #dc3545;\r\n font-size: 80%;\r\n\r\n ${({ success }) =>\r\n success &&\r\n css`\r\n color: #28a745;\r\n `}\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 184px;\r\n height: 40px;\r\n ${({ back }) =>\r\n back &&\r\n css`\r\n margin-top: 5px;\r\n `}\r\n\r\n @media screen and (max-width: 535px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const MFDescriptionSystem = styled.span`\r\n margin-bottom: 5px;\r\n font-weight: 200;\r\n font-style: normal;\r\n font-size: 15px;\r\n font-family: 'Poppins', sans-serif;\r\n`;\r\n\r\nexport const MFLogoWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin: auto;\r\n`;\r\n\r\nexport const MFInputGroupAddon = styled(InputGroupAddon)`\r\n span {\r\n border-top-right-radius: 4px !important;\r\n border-bottom-right-radius: 4px !important;\r\n background-color: #ffffff;\r\n\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n svg {\r\n fill: #dc3545;\r\n }\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFInputGroup = styled(InputGroup)``;\r\n\r\nexport const MFInputGroupText = styled(InputGroupText)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545;\r\n opacity: 0.5;\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745;\r\n `}\r\n`;\r\n\r\nexport const MFWrapFeed = styled.div`\r\n display: flex;\r\n margin-bottom: 10px;\r\n text-align: center;\r\n`;\r\n\r\nexport const MFPasswordStrength = styled(PasswordStrength)``;\r\n","import styled from 'styled-components';\r\n\r\nexport const MFBackgroundLoader = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n z-index: 998;\r\n background-color: rgba(255, 255, 255, 0.6);\r\n position: fixed;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n top: 0;\r\n left: 0;\r\n`;\r\n","import React from 'react';\r\nimport ReactLoading from 'react-loading';\r\nimport { MFBackgroundLoader } from './styles';\r\n\r\nexport default function PageLoader() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { FaEye, FaEyeSlash } from 'react-icons/fa';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n isEmail,\r\n maskCpf,\r\n maskCnpj,\r\n validateCPF,\r\n validateCNPJ,\r\n} from '../../utils';\r\nimport { postUser, postNewPassword } from '../../services/userServices';\r\nimport { isAuthenticated } from '../../auth';\r\nimport history from '../../services/history';\r\n\r\nimport * as UserActions from '../../store/modules/user/actions';\r\n\r\nimport {\r\n MFContainer,\r\n MFRow,\r\n MFColForm,\r\n MFLogo,\r\n MFBox,\r\n MFTitle,\r\n MFForm,\r\n MFFormGroup,\r\n MFInput,\r\n MFFormFeedback,\r\n MFLabel,\r\n MFButton,\r\n MFContainerLink,\r\n MFLogoWrap,\r\n MFInputGroupAddon,\r\n MFInputGroupText,\r\n MFInputGroup,\r\n MFWrapFeed,\r\n MFPasswordStrength,\r\n MFWrapButtons,\r\n MFLabelButton,\r\n} from './styles';\r\nimport PageLoader from '../../components/MFPageLoader';\r\n\r\nexport default function PasswordValidity() {\r\n const [labelCNPJ, setLabelCNPJ] = useState('CNPJ');\r\n const [idPerfil, setIdPerfil] = useState('');\r\n const [tipo, setTipo] = useState('');\r\n const [cnpj, setCnpj] = useState('');\r\n const [nome, setNome] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [senha, setSenha] = useState('');\r\n const [emailError, setEmailError] = useState(false);\r\n const [confirmar, setConfirmar] = useState('');\r\n const [nota, setNota] = useState('');\r\n const [dataEmissaoNota, setDataEmissaoNota] = useState('');\r\n const [disabledCNPJ, setDisabledCNPJ] = useState(true);\r\n const [errorCNPJ, setErrorCNPJ] = useState(false);\r\n const [validCNPJ, setValidCNPJ] = useState(false);\r\n const [errorSenha, setErrorSenha] = useState(false);\r\n const [typePassword, setTypePassword] = useState(true);\r\n const [typePasswordAgain, setTypePasswordAgain] = useState(true);\r\n const [formSubmit, setFormSubmit] = useState(false);\r\n const [formValidate, setFormValidate] = useState(false);\r\n const [invalidFields, setInvalidFields] = useState(false);\r\n const [successUserRegistration, setSuccessUserRegistration] = useState(false);\r\n const [errorValidPass, setErrorValidPass] = useState(false);\r\n const [disabledButton, setDisabledButton] = useState(false);\r\n const [msgError, setMsgError] = useState('');\r\n const [msgSuccess, setMsgSuccess] = useState('');\r\n const [showLoader, setShowLoader] = useState(false);\r\n const [dataForm, setDataForm] = useState({\r\n idPerfil,\r\n tipo,\r\n cnpj,\r\n nome,\r\n email,\r\n senha,\r\n confirmar,\r\n nota,\r\n dataEmissaoNota,\r\n });\r\n\r\n const loginInformation = useSelector(\r\n ({ userInformations }) => userInformations\r\n );\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (isAuthenticated(loginInformation)) history.push('/');\r\n }, [loginInformation]);\r\n\r\n useEffect(() => {\r\n if (!formSubmit) return;\r\n const qtdInvalid = Object.values(dataForm).filter(v => v === '');\r\n if (qtdInvalid.length) {\r\n setShowLoader(false);\r\n return setInvalidFields(true);\r\n }\r\n if (!qtdInvalid.length) {\r\n if (!errorCNPJ && !errorSenha) {\r\n setFormValidate(true);\r\n }\r\n return setInvalidFields(false);\r\n }\r\n }, [dataForm, formSubmit, errorCNPJ, errorSenha]);\r\n\r\n useEffect(() => {\r\n if (!formSubmit) {\r\n return;\r\n }\r\n async function postUserApi() {\r\n if (formValidate) {\r\n setDisabledButton(true);\r\n const response = await postNewPassword(dataForm);\r\n if (!response.data && response.status !== 200) {\r\n setShowLoader(false);\r\n setSuccessUserRegistration(false);\r\n setDisabledButton(false);\r\n setMsgError(response.erros[0].message);\r\n return;\r\n }\r\n if (response.data && response.status === 200) {\r\n setShowLoader(false);\r\n setMsgSuccess(response.data.mensagem);\r\n setSuccessUserRegistration(true);\r\n setMsgError('');\r\n dispatch(\r\n UserActions.loginUser(\r\n dataForm.usuario.login,\r\n dataForm.usuario.senha\r\n )\r\n );\r\n }\r\n }\r\n }\r\n postUserApi();\r\n }, [formValidate, formSubmit, dataForm, dispatch]);\r\n\r\n useEffect(() => {\r\n if (!successUserRegistration) return;\r\n dispatch(UserActions.loginUser(email, senha));\r\n }, [successUserRegistration, email, senha, dispatch]);\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n setDataForm({\r\n documento: loginInformation.userMarfrig.documento,\r\n usuario: {\r\n idUsuario: loginInformation.userMarfrig.idUsuario,\r\n login: loginInformation.userMarfrig.login,\r\n senha,\r\n },\r\n });\r\n setFormSubmit(true);\r\n setShowLoader(true);\r\n }\r\n\r\n function handleChangeInput(e) {\r\n e.preventDefault();\r\n setFormSubmit(false);\r\n setFormValidate(false);\r\n const { name, value } = e.target;\r\n switch (name) {\r\n case 'idPerfil':\r\n setIdPerfil(value);\r\n break;\r\n case 'tipo':\r\n setCnpj('');\r\n setTipo(value);\r\n setDisabledCNPJ(true);\r\n setLabelCNPJ('CNPJ');\r\n setErrorCNPJ(false);\r\n setValidCNPJ(false);\r\n if (value === '2') {\r\n setLabelCNPJ('CNPJ');\r\n setDisabledCNPJ(false);\r\n }\r\n if (value === '1') {\r\n setLabelCNPJ('CPF');\r\n setDisabledCNPJ(false);\r\n }\r\n break;\r\n case 'cnpj':\r\n if (labelCNPJ === 'CPF') {\r\n return setCnpj(maskCpf(value));\r\n }\r\n setCnpj(maskCnpj(value));\r\n break;\r\n case 'nome':\r\n setNome(value);\r\n break;\r\n case 'email':\r\n setEmail(value);\r\n break;\r\n case 'senha':\r\n setErrorSenha(false);\r\n setSenha(value);\r\n if (confirmar && value !== confirmar) return setErrorSenha(true);\r\n break;\r\n case 'confirmar':\r\n setErrorSenha(false);\r\n setConfirmar(value);\r\n if (value !== senha) return setErrorSenha(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n function verifyEmail(e) {\r\n e.preventDefault();\r\n setEmailError(!isEmail(e.target.value));\r\n }\r\n\r\n function handlevalidateCNPJCPF(e) {\r\n e.preventDefault();\r\n const { value } = e.target;\r\n let returnValidateCNPJ = false;\r\n if (labelCNPJ === 'CPF') {\r\n returnValidateCNPJ = validateCPF(value);\r\n setValidCNPJ(returnValidateCNPJ);\r\n return setErrorCNPJ(!returnValidateCNPJ);\r\n }\r\n returnValidateCNPJ = validateCNPJ(value);\r\n setValidCNPJ(returnValidateCNPJ);\r\n return setErrorCNPJ(!returnValidateCNPJ);\r\n }\r\n\r\n return (\r\n <>\r\n {showLoader && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n Mudança de senha por expiração ou recuperação\r\n \r\n {/* */}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n {/* \r\n \r\n {labelCNPJ}\r\n {\r\n e.preventDefault();\r\n setErrorCNPJ(false);\r\n }}\r\n />\r\n {errorCNPJ && (\r\n {`${labelCNPJ} inválido`}\r\n )}\r\n \r\n */}\r\n {/* \r\n \r\n Nome\r\n \r\n \r\n */}\r\n {/* \r\n \r\n E-mail\r\n verifyEmail(e)}\r\n onFocus={e => {\r\n e.preventDefault();\r\n setEmailError(false);\r\n }}\r\n />\r\n {emailError && (\r\n Digite um e-mail válido\r\n )}\r\n \r\n */}\r\n \r\n \r\n \r\n Nova Senha\r\n \r\n \r\n \r\n \r\n {typePassword && (\r\n setTypePassword(!typePassword)}\r\n />\r\n )}\r\n {!typePassword && (\r\n setTypePassword(!typePassword)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Confirmar Senha\r\n \r\n \r\n \r\n \r\n {typePasswordAgain && (\r\n \r\n setTypePasswordAgain(!typePasswordAgain)\r\n }\r\n />\r\n )}\r\n {!typePasswordAgain && (\r\n \r\n setTypePasswordAgain(!typePasswordAgain)\r\n }\r\n />\r\n )}\r\n \r\n \r\n {errorSenha && (\r\n As senhas não coincidem\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Alterar\r\n \r\n \r\n dispatch(UserActions.userInfoRemoveAll())}\r\n >\r\n Voltar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Link } from 'react-router-dom';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport {\r\n Button,\r\n FormGroup,\r\n Label,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n} from 'reactstrap';\r\nimport Logo from '../../assets/img/logo.png';\r\nimport LoginBG from '../../assets/img/login-bg.png';\r\n \r\nexport const MFContainerLogin = styled.div`\r\n background-image: url(${LoginBG});\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n height: 100vh;\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n justify-content: center;\r\n`;\r\n\r\nexport const MFContainerLink = styled(Link)`\r\n width: unset;\r\n height: unset;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 100%;\r\n margin: 20px 0;\r\n`;\r\n\r\nexport const MFBox = styled.div`\r\n width: 600px;\r\n background: rgba(255, 255, 255, 0.6) !important;\r\n display: flex;\r\n justify-content: center;\r\n margin: 0px !important;\r\n padding: 10px;\r\n`;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n color: #dc3545 !important;\r\n `}\r\n`;\r\n\r\nexport const MFInput = styled(Input)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n\r\n &:focus {\r\n border-color: #dc3545 !important;\r\n background-color: #fff;\r\n color: #495057;\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\r\n outline: 0;\r\n }\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745 !important;\r\n `}\r\n`;\r\n\r\nexport const MFInputGroup = styled(InputGroup)``;\r\n\r\nexport const MFInputGroupAddon = styled(InputGroupAddon)`\r\n span {\r\n border-top-right-radius: 4px !important;\r\n border-bottom-right-radius: 4px !important;\r\n background-color: #ffffff;\r\n\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n svg {\r\n fill: #dc3545 !important;\r\n }\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: unset;\r\n`;\r\n\r\nexport const MFLabelButton = styled.span`\r\n color: #ffffff;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFLogoWrap = styled.div`\r\n padding-bottom: 10px;\r\n`;\r\n\r\nexport const MFLogo = styled.img.attrs({\r\n src: Logo,\r\n alt: 'Logo Marfrig',\r\n})`\r\n width: 142px;\r\n height: 38px;\r\n`;\r\n\r\nexport const MFWrapDescription = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n margin-top: 24px;\r\n`;\r\n\r\nexport const MFDescriptionSystem = styled.span`\r\n color: #133B65;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFSubBox1 = styled.div`\r\n width: 280px;\r\n padding: 2rem 1rem;\r\n border-right: 1px solid #133B65;\r\n`;\r\n\r\nexport const MFSubBox2 = styled.div`\r\n width: 280px;\r\n padding: 2rem 1rem;\r\n border-left: 1px solid #133B65;\r\n`;","import React from 'react';\r\n\r\nimport {\r\n MFContainerLogin,\r\n MFBox,\r\n MFContainerLink,\r\n MFWrapButtons,\r\n MFLabelButton,\r\n MFButton,\r\n MFLogo,\r\n MFLogoWrap,\r\n MFWrapDescription,\r\n MFDescriptionSystem,\r\n MFSubBox1,\r\n MFSubBox2\r\n} from './styles';\r\n\r\nexport default function PreLogin() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Suprimentos\r\n \r\n \r\n \r\n \r\n Novo fornecedor\r\n \r\n \r\n \r\n \r\n Portal do fornecedor\r\n \r\n \r\n \r\n \r\n \r\n \r\n Financeiro\r\n \r\n \r\n \r\n \r\n Sou Funcionário Marfrig\r\n \r\n \r\n \r\n \r\n Sou Fornecedor\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { Link } from 'react-router-dom';\r\n\r\nimport styled, { css } from 'styled-components';\r\nimport {\r\n Row,\r\n Col,\r\n Button,\r\n Jumbotron,\r\n Form,\r\n FormGroup,\r\n Label,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n} from 'reactstrap';\r\nimport Logo from '../../assets/img/logo.png';\r\nimport LoginBG from '../../assets/img/login-bg.png';\r\n\r\nexport const MFContainerLogin = styled.div`\r\n background-image: url(${LoginBG});\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n height: 100vh;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: row;\r\n`;\r\n\r\nexport const MFContainerLink = styled(Link)`\r\n width: unset;\r\n height: unset;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\nexport const MFFormFeedback = styled.span`\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n margin-bottom: 0.25rem;\r\n color: #dc3545;\r\n font-size: 80%;\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n color: #28a745 !important;\r\n `}\r\n`;\r\n\r\nexport const MFRow = styled(Row)`\r\n margin: 120px;\r\n`;\r\n\r\nexport const MFCol = styled(Col)`\r\n display: flex;\r\n max-width: 300px;\r\n\r\n @media screen and (max-width: 991px) {\r\n justify-content: center;\r\n max-width: unset;\r\n margin: 10px auto;\r\n }\r\n`;\r\n\r\nexport const MFTitle = styled.h1`\r\n margin-bottom: 15px;\r\n font-weight: 400;\r\n font-style: normal;\r\n font-size: 32px;\r\n font-family: 'Poppins', sans-serif;\r\n`;\r\n\r\nexport const MFButton = styled(Button).attrs({\r\n color: 'success',\r\n})`\r\n min-width: 94px;\r\n`;\r\n\r\nexport const MFLogo = styled.img.attrs({\r\n src: Logo,\r\n alt: 'Logo Marfrig',\r\n})`\r\n width: 142px;\r\n height: 38px;\r\n`;\r\n\r\nexport const MFBox = styled(Jumbotron)`\r\n width: 300px;\r\n height: 400px;\r\n padding: 2rem 2rem 0;\r\n border: 1px solid #d0d0d0;\r\n background: rgba(255, 255, 255, 0.7) !important;\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n color: #dc3545 !important;\r\n `}\r\n`;\r\n\r\nexport const MFInput = styled(Input)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n\r\n &:focus {\r\n border-color: #dc3545 !important;\r\n background-color: #fff;\r\n color: #495057;\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\r\n outline: 0;\r\n }\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745 !important;\r\n `}\r\n`;\r\n\r\nexport const MFInputGroup = styled(InputGroup)``;\r\n\r\nexport const MFInputGroupAddon = styled(InputGroupAddon)`\r\n span {\r\n border-top-right-radius: 4px !important;\r\n border-bottom-right-radius: 4px !important;\r\n background-color: #ffffff;\r\n\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n svg {\r\n fill: #dc3545 !important;\r\n }\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFInputGroupText = styled(InputGroupText)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n opacity: 0.5;\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745 !important;\r\n `}\r\n`;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const MFNotRegistered = styled(MFButton).attrs({\r\n color: 'primary',\r\n})`\r\n width: 126px;\r\n`;\r\n\r\nexport const MFLabelButton = styled.span`\r\n color: #ffffff;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFLabelLink = styled.span`\r\n color: 01324f;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-size: 13px;\r\n text-decoration: underline;\r\n`;\r\n\r\nexport const MFWrapDescription = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n margin-top: 24px;\r\n`;\r\n\r\nexport const MFDescriptionSystem = styled.span`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFDescriptionLogin = styled.span`\r\n margin-top: 4px;\r\n margin-bottom: 24px;\r\n color: #a4a5b7;\r\n font-weight: 300;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 14px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFLogoWrap = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { useDispatch } from 'react-redux';\r\nimport * as UserActions from '../../store/modules/user/actions';\r\n\r\nimport { getNewPassword } from '../../services/userServices';\r\nimport history from '../../services/history';\r\n\r\nimport { isEmail } from '../../utils';\r\n\r\nimport {\r\n MFContainerLogin,\r\n MFLogo,\r\n MFBox,\r\n MFForm,\r\n MFFormGroup,\r\n MFLabel,\r\n MFInput,\r\n MFInputGroup,\r\n MFButton,\r\n MFNotRegistered,\r\n MFFormFeedback,\r\n MFContainerLink,\r\n MFLogoWrap,\r\n MFDescriptionSystem,\r\n MFWrapButtons,\r\n MFLabelButton,\r\n MFDescriptionLogin,\r\n MFWrapDescription,\r\n} from './styles';\r\n\r\nexport default function Login() {\r\n const [user, setUser] = useState('');\r\n const [userError, setUserError] = useState(false);\r\n const [emailError, setEmailError] = useState(false);\r\n const [userValid, setUserValid] = useState(false);\r\n const [msgError, setMsgError] = useState(false);\r\n const [formValidate, setFormValidate] = useState(false);\r\n const [formSubmit, setFormSubmit] = useState(false);\r\n const [successNewPassword, setSuccessNewPassword] = useState(false);\r\n const [msgSuccess, setMsgSuccess] = useState('');\r\n const [invalidFields, setInvalidFields] = useState(false);\r\n const [dataForm, setDataForm] = useState({\r\n user,\r\n });\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (!formSubmit) return;\r\n const qtdInvalid = Object.values(dataForm).filter(v => v === '');\r\n if (qtdInvalid.length) {\r\n return setInvalidFields(true);\r\n }\r\n\r\n setFormValidate(true);\r\n return setInvalidFields(false);\r\n }, [dataForm, formSubmit]);\r\n\r\n useEffect(() => {\r\n if (msgError) {\r\n setUserError(true);\r\n }\r\n if (msgSuccess) {\r\n setUserValid(true);\r\n setTimeout(() => {\r\n history.push('/login'); \r\n }, 3000); \r\n }\r\n }, [msgError, msgSuccess]);\r\n\r\n useEffect(() => {\r\n if (!formSubmit) {\r\n return;\r\n }\r\n async function generateNewPasswordApi() {\r\n if (formValidate) {\r\n const response = await getNewPassword(dataForm.user);\r\n if (!response.data && response.status !== 200) {\r\n setSuccessNewPassword(false);\r\n setMsgError(response.erros[0].message);\r\n return;\r\n }\r\n if (response.data && response.status === 200) {\r\n setMsgSuccess(response.data.mensagem);\r\n setSuccessNewPassword(true);\r\n setMsgError('');\r\n }\r\n }\r\n }\r\n generateNewPasswordApi();\r\n }, [formValidate, formSubmit, dataForm]);\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n setDataForm({\r\n user,\r\n });\r\n setFormSubmit(true);\r\n }\r\n\r\n function verifyEmail(e) {\r\n e.preventDefault();\r\n setEmailError(!isEmail(e.target.value));\r\n }\r\n\r\n function handleClearErros(e) {\r\n e.preventDefault();\r\n setUserError(false);\r\n setEmailError(false);\r\n setMsgError(false);\r\n }\r\n\r\n function handleInputChange(e) {\r\n e.preventDefault();\r\n setFormSubmit(false);\r\n const { name, value } = e.target;\r\n switch (name) {\r\n case 'user':\r\n setUser(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Portal de Fornecedores\r\n Digite seu email para envio de uma nova senha\r\n \r\n \r\n \r\n \r\n E-mail\r\n \r\n verifyEmail(e)}\r\n onFocus={handleClearErros}\r\n />\r\n {emailError && (\r\n Digite um e-mail válido\r\n )}\r\n \r\n \r\n {userError && {msgError}}\r\n {userValid && (\r\n \r\n Email enviado com sucesso, você será redirecionado!\r\n \r\n )}\r\n \r\n \r\n \r\n Enviar\r\n \r\n \r\n \r\n Voltar\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport { Button } from 'reactstrap';\r\nimport { FaFileExcel } from 'react-icons/fa';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 20px;\r\n margin-bottom: 20px;\r\n`;\r\n\r\nexport const WrapButton = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n svg {\r\n margin-right: 5px;\r\n }\r\n`;\r\n\r\nexport const ButtonDownload = styled(Button)``;\r\n\r\nexport const IconExcel = styled(FaFileExcel)``;\r\n","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Container, ButtonDownload, IconExcel, WrapButton } from './styles';\r\n\r\nexport default function ExcelExportButton({ setExcelSearch }) {\r\n return (\r\n \r\n setExcelSearch(true)}>\r\n \r\n \r\n Abrir no Excel\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nExcelExportButton.propTypes = {\r\n setExcelSearch: PropTypes.func.isRequired,\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport { Button } from 'reactstrap';\r\nimport { FaFileExcel } from 'react-icons/fa';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 20px;\r\n margin-bottom: 20px;\r\n`;\r\n\r\nexport const WrapButton = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n svg {\r\n margin-right: 5px;\r\n }\r\n`;\r\n\r\nexport const ButtonDownload = styled(Button)``;\r\n\r\nexport const IconExcel = styled(FaFileExcel)``;\r\n","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { ButtonDownload, Container, IconExcel, WrapButton } from './styles';\r\n\r\nexport default function SelecionarAllButton({ onConfirm }) {\r\n return (\r\n \r\n \r\n \r\n \r\n Confirmar Antecipação dos Titulos Selecionados\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nSelecionarAllButton.propTypes = {\r\n onConfirm: PropTypes.func.isRequired,\r\n};\r\n","import axios from './api';\r\nimport config from './enviroment';\r\n\r\nexport async function getTitles(data) {\r\n const {\r\n cnpj,\r\n nome,\r\n numero,\r\n dataDe,\r\n dataAte,\r\n cnpjListValueSelected,\r\n tipoPessoa,\r\n getRaiz,\r\n exportarXLS,\r\n } = data;\r\n\r\n let documentos = [];\r\n if (cnpjListValueSelected?.length > 0) {\r\n documentos = cnpjListValueSelected\r\n .filter(cnpjInf => cnpjInf.documento !== 'T')\r\n .map(cn => cn.documento);\r\n }\r\n\r\n const params = {\r\n documento: documentos.length > 0 ? [documentos[0]] : [cnpj],\r\n nome,\r\n nota: numero,\r\n vencimentoInicial: dataDe,\r\n vencimentoFinal: dataAte,\r\n tipoPessoa,\r\n raizCNPJ: getRaiz,\r\n exportarXLS: exportarXLS || false,\r\n };\r\n\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Titulo/BuscarTitulo`,\r\n params\r\n );\r\n\r\n if (response.data && Array.isArray(response.data.dados)) {\r\n const enrichedData = response.data.dados.map((item, index) => ({\r\n ...item,\r\n uniqueId: `title-${index}-${Date.now()}-${Math.random()\r\n .toString(36)\r\n .substr(2, 9)}`,\r\n }));\r\n\r\n console.log('Dados enriquecidos:', enrichedData);\r\n\r\n return {\r\n ...response,\r\n data: { ...response.data, dados: enrichedData },\r\n };\r\n } else {\r\n console.warn('A resposta não contém um array de dados:', response.data);\r\n return response;\r\n }\r\n } catch (err) {\r\n console.error('Erro ao buscar títulos:', err);\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function getDocument(idCnab, idPortal, idTitulo) {\r\n try {\r\n const params = {};\r\n\r\n if (idCnab) params.idCnab = idCnab;\r\n if (idPortal) params.idPortal = idPortal;\r\n if (idTitulo) params.idTitulo = idTitulo;\r\n\r\n const response = await axios.get(\r\n `${config.baseUrl}/Titulo/ObterComprovante`,\r\n { params }\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function getAdiantamento(data) {\r\n const { fornecedor, filial, loja, numeroTitulo, parcela, serie, tipo } = data;\r\n\r\n const params = {\r\n fornecedor,\r\n filial,\r\n loja,\r\n numero: numeroTitulo,\r\n parcela,\r\n serie,\r\n tipo,\r\n };\r\n\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Titulo/BuscarAdiantamentoDevolucao`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function getAcrescimo(data) {\r\n const { fornecedor, filial, loja, numeroTitulo, parcela, serie, tipo } = data;\r\n\r\n const params = {\r\n fornecedor,\r\n filial,\r\n loja,\r\n numero: numeroTitulo,\r\n parcela,\r\n serie,\r\n tipo,\r\n };\r\n\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Titulo/BuscarAcrescimoDesconto`,\r\n params\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function solicitarAdiantamento(data) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Titulo/SolicitarAdiantamento`,\r\n data\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n\r\nexport async function solicitarDesbloqueio(data) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Titulo/SolicitarDesbloqueioAsync`,\r\n data\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n \r\n\r\nexport async function solicitarCadastroEmailFilialAsync(data) {\r\n try {\r\n const response = await axios.post(\r\n `${config.baseUrl}/Titulo/SolicitarCadastroEmailFilialAsync`,\r\n data\r\n );\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n}\r\n","import styled, { css } from 'styled-components';\r\nimport {\r\n Jumbotron,\r\n Button,\r\n Row,\r\n Col,\r\n Form,\r\n FormGroup,\r\n Label,\r\n Input,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n} from 'reactstrap';\r\nimport CheckboxComponent from '@material-ui/core/Checkbox';\r\nimport SelectCheckBoxComponent from '../MFComboCheckBox';\r\nimport MFComboBoxComponent from '../MFComboBox';\r\n\r\nexport const MFCheckBox = styled(CheckboxComponent)``;\r\n\r\nexport const MFComboBox = styled(MFComboBoxComponent)``;\r\n\r\nexport const MFSelectCheckBox = styled(SelectCheckBoxComponent)``;\r\n\r\nexport const MFWrapContent = styled.div`\r\n padding: 0 40px;\r\n\r\n @media screen and (max-width: 1460px) {\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport const MFJumbotron = styled(Jumbotron)`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n width: 95%;\r\n padding: 2rem 0;\r\n\r\n @media screen and (max-width: 1460px) {\r\n padding: 2rem;\r\n }\r\n`;\r\n\r\nexport const MFTitleBox = styled.h1`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 48%;\r\n margin: 0 5px;\r\n\r\n @media screen and (max-width: 767px) {\r\n width: 45%;\r\n }\r\n`;\r\n\r\nexport const MFRow = styled(Row)`\r\n margin: 30px;\r\n ${({ form }) =>\r\n form &&\r\n css`\r\n margin: auto;\r\n `}\r\n`;\r\n\r\nexport const MFColForm = styled(Col)`\r\n .form-check {\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: flex-start;\r\n }\r\n ${({ buttons }) =>\r\n buttons &&\r\n css`\r\n padding-top: 30px;\r\n `}\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFWrapCheckBox = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: flex-start;\r\n margin-top: 2px;\r\n\r\n [class$='-check-label'] {\r\n position: relative;\r\n font-size: 10px;\r\n }\r\n`;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n span {\r\n margin-right: 2px !important;\r\n padding: 0 !important;\r\n }\r\n`;\r\n\r\nexport const MFInput = styled(Input)``;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const MFNoData = styled.span`\r\n color: #dc3545;\r\n`;\r\n\r\nexport const MFInputGroupAddon = styled(InputGroupAddon)`\r\n span {\r\n border-top-right-radius: 4px !important;\r\n border-bottom-right-radius: 4px !important;\r\n background-color: #ffffff;\r\n\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n svg {\r\n fill: #dc3545 !important;\r\n }\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFInputGroupText = styled(InputGroupText)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n opacity: 0.5;\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745 !important;\r\n `}\r\n`;\r\n\r\nexport const MFInputGroup = styled(InputGroup)``;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport moment from 'moment';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport CheckBoxOutlineBlank from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n maskCpf,\r\n maskCnpj,\r\n checkErrosBoxSearch,\r\n limparCPFCNPJ,\r\n} from '../../utils';\r\nimport { getTitles } from '../../services/titleServices';\r\nimport { getCnpjs } from '../../services/companyServices';\r\n\r\nimport {\r\n MFJumbotron,\r\n MFButton,\r\n MFForm,\r\n MFFormGroup,\r\n MFInput,\r\n MFWrapButtons,\r\n MFLabel,\r\n MFRow,\r\n MFColForm,\r\n MFNoData,\r\n MFTitleBox,\r\n MFWrapCheckBox,\r\n MFCheckBox,\r\n MFComboBox,\r\n MFWrapContent,\r\n} from './styles';\r\n\r\nconst icon = ;\r\nconst checkedIcon = ;\r\n\r\nexport default function SearchBox({\r\n setDataReturnTitles,\r\n setloader,\r\n excelSearch,\r\n setExcelSearch,\r\n}) {\r\n const [cnpj, setCnpj] = useState('');\r\n const [excelFile, setExcelFile] = useState('');\r\n const [nome, setNome] = useState('');\r\n const [numero, setNumero] = useState('');\r\n const [dataDe, setDataDe] = useState('');\r\n const [dataAte, setdataAte] = useState('');\r\n const [errorCNPJ, setErrorCNPJ] = useState(false);\r\n const [notData, setNotData] = useState(false);\r\n const [validCNPJ, setValidCNPJ] = useState(false);\r\n const [formSubmit, setFormSubmit] = useState(false);\r\n const [formValidate, setFormValidate] = useState(false);\r\n const [isCnpjList, setIsCnpjList] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [isOneCnpj, setIsOneCnpj] = useState(false);\r\n const [errorServer, setErrorServer] = useState(false);\r\n const [getRaiz, setGetRaiz] = useState(true);\r\n const [errorServerMsg, setErrorServerMsg] = useState('');\r\n const [valueInput, setValueInput] = useState('');\r\n const [razaoValueInput, setRazaoValueInput] = useState('');\r\n const [cnpjListValueSelected, setCnpjListValueSelected] = useState([]);\r\n const [valueSelected, setValueSelected] = useState([]);\r\n const [razaoValueSelected, setRazaoValueSelected] = useState([]);\r\n const [nameList, setNameList] = useState([]);\r\n const [msgError, setMsgError] = useState('');\r\n const [dataForm, setDataForm] = useState({\r\n cnpj,\r\n nome,\r\n numero,\r\n dataDe,\r\n dataAte,\r\n cnpjListValueSelected,\r\n });\r\n const [optionsSearch, setOptionsSearch] = useState([\r\n {\r\n valor: '',\r\n id: 0,\r\n },\r\n ]);\r\n const [optionsSearchCNPJ, setOptionsSearchCNPJ] = useState([\r\n {\r\n valor: '',\r\n id: 0,\r\n },\r\n ]);\r\n\r\n const {\r\n userMarfrig: {\r\n idPerfil,\r\n idUsuario,\r\n tipoPessoa,\r\n documento,\r\n nome: nomeUsuarioLogado,\r\n },\r\n } = useSelector(({ userInformations }) => userInformations);\r\n\r\n useEffect(() => {\r\n const dtIniI = new Date();\r\n const dtFimI = new Date();\r\n\r\n dtIniI.setDate(dtIniI.getDate() - 15);\r\n dtFimI.setDate(dtFimI.getDate() + 15);\r\n\r\n setDataDe(String(moment(dtIniI).format('YYYY-MM-DD')));\r\n setdataAte(String(moment(dtFimI).format('YYYY-MM-DD')));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!loading) return;\r\n setTimeout(() => {\r\n setLoading(false);\r\n }, 1000);\r\n }, [isCnpjList, isCnpjList, loading]);\r\n\r\n useEffect(() => {\r\n if (!formSubmit) return;\r\n const qtdInvalid = checkErrosBoxSearch(dataForm, tipoPessoa, idPerfil);\r\n setMsgError(qtdInvalid.join(', '));\r\n\r\n if (qtdInvalid.length || errorCNPJ) {\r\n return setFormValidate(false);\r\n }\r\n return setFormValidate(true);\r\n }, [dataForm, formSubmit, idPerfil, errorCNPJ, tipoPessoa]);\r\n\r\n useEffect(() => {\r\n if (idPerfil === 1) return;\r\n if (tipoPessoa === 1) {\r\n setCnpj(documento);\r\n setNome(nomeUsuarioLogado);\r\n setIsOneCnpj(true);\r\n return;\r\n }\r\n async function getCnpjsApi() {\r\n const paramsSearch = {\r\n documento: documento.substr(0, 8),\r\n };\r\n\r\n const response = await getCnpjs(paramsSearch);\r\n if (!response.data && response.status !== 200) return;\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n if (dataRet.length === 1) {\r\n setCnpj(dataRet[0].documento);\r\n setNome(dataRet[0].nome);\r\n setIsOneCnpj(true);\r\n return;\r\n }\r\n const listName = dataRet.map(ret => {\r\n const documentoRet =\r\n ret.documento.length === 14\r\n ? maskCnpj(ret.documento)\r\n : maskCpf(ret.documento);\r\n return {\r\n nome: `${ret.nome} - ${documentoRet}`,\r\n documento: ret.documento,\r\n idFornecedor: ret.idFornecedor,\r\n };\r\n });\r\n setNameList(listName);\r\n setLoading(false);\r\n }\r\n }\r\n getCnpjsApi();\r\n }, [\r\n idPerfil,\r\n nomeUsuarioLogado,\r\n idUsuario,\r\n setIsCnpjList,\r\n documento,\r\n tipoPessoa,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (!excelSearch) return;\r\n async function getExcelFile() {\r\n const dataFormDraft = dataForm;\r\n dataFormDraft.exportarXLS = true;\r\n const response = await getTitles(dataFormDraft);\r\n if (response.status === 200) {\r\n setExcelFile(response.data.dados);\r\n setExcelSearch(false);\r\n } else {\r\n setErrorServerMsg('Erro na requisição do arquivo Excel!');\r\n setExcelSearch(false);\r\n }\r\n }\r\n getExcelFile();\r\n }, [excelSearch, dataForm, setExcelSearch]);\r\n\r\n useEffect(() => {\r\n if (!excelFile) return;\r\n const linkSource = `data:application/xls;base64,${excelFile}`;\r\n const downloadLink = document.createElement('a');\r\n const fileName = 'PlanilhaTitulos.xlsx';\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n setExcelFile('');\r\n }, [excelFile]);\r\n\r\n useEffect(() => {\r\n async function getTitlesApi() {\r\n setErrorServer(false);\r\n setErrorServerMsg('');\r\n setloader(true);\r\n const response = await getTitles(dataForm);\r\n setFormSubmit(false);\r\n if (response.status === 500) {\r\n setErrorServer(true);\r\n setErrorServerMsg(\r\n response.data.erros[0].message\r\n ? response.data.erros[0].message\r\n : 'Não foi possível realizar a pesquisa desejada devido a falha na comunicação com a API - Busca de Títulos!'\r\n );\r\n setloader(false);\r\n return setDataReturnTitles([]);\r\n }\r\n if (response.status === 400) {\r\n setErrorServer(true);\r\n setErrorServerMsg(\r\n response.data.erros[0].message\r\n ? response.data.erros[0].message\r\n : 'Requisição inválida!'\r\n );\r\n setloader(false);\r\n return setDataReturnTitles([]);\r\n }\r\n if (response.status === 401) {\r\n setErrorServer(true);\r\n setErrorServerMsg('Sessão expirada!');\r\n setloader(false);\r\n return setDataReturnTitles([]);\r\n }\r\n if (!response.data && response.status !== 200) {\r\n setloader(false);\r\n return setDataReturnTitles([]);\r\n }\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n if (!dataRet.length) {\r\n setDataReturnTitles([]);\r\n setloader(false);\r\n return setNotData(true);\r\n }\r\n setloader(false);\r\n return setDataReturnTitles(dataRet);\r\n }\r\n }\r\n if (!formSubmit) return;\r\n if (formValidate) getTitlesApi();\r\n }, [formValidate, formSubmit, dataForm, setDataReturnTitles, setloader]);\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n setDataForm({\r\n cnpj,\r\n nome,\r\n numero,\r\n dataDe,\r\n dataAte,\r\n cnpjListValueSelected,\r\n tipoPessoa,\r\n getRaiz,\r\n });\r\n setFormSubmit(true);\r\n setNotData(false);\r\n }\r\n\r\n function clearDefaultParams() {\r\n setFormSubmit(false);\r\n setFormValidate(false);\r\n }\r\n\r\n function handleChangeInput(e) {\r\n e.preventDefault();\r\n clearDefaultParams();\r\n const { name, value } = e.target;\r\n switch (name) {\r\n case 'cnpj':\r\n {\r\n setErrorCNPJ(false);\r\n setValidCNPJ(false);\r\n const textValue = limparCPFCNPJ(value);\r\n let valor = textValue;\r\n\r\n if (textValue.length === 11) {\r\n valor = maskCpf(textValue);\r\n }\r\n\r\n if (textValue.length === 14) {\r\n valor = maskCnpj(textValue);\r\n }\r\n setCnpj(valor);\r\n }\r\n break;\r\n case 'nome':\r\n setNome(value);\r\n break;\r\n case 'numero':\r\n setNumero(value);\r\n break;\r\n case 'dataDe':\r\n setDataDe(value);\r\n break;\r\n case 'dataAte':\r\n setdataAte(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n function clearSelects() {\r\n const btnClear = document.querySelectorAll(\r\n '.MuiAutocomplete-clearIndicator'\r\n );\r\n if (btnClear?.length) {\r\n let btn = null;\r\n for (let i = 0; i < btnClear.length; i += 1) {\r\n btn = btnClear[i];\r\n if (btn) {\r\n btn.click();\r\n }\r\n }\r\n }\r\n }\r\n\r\n function handleCleanFields() {\r\n clearDefaultParams();\r\n setNotData(false);\r\n setErrorCNPJ(false);\r\n setValidCNPJ(false);\r\n if (!isOneCnpj) {\r\n setCnpj('');\r\n setNome('');\r\n }\r\n setNumero('');\r\n setDataDe('');\r\n setdataAte('');\r\n setDataReturnTitles('');\r\n setCnpjListValueSelected([]);\r\n clearSelects();\r\n }\r\n\r\n useEffect(() => {\r\n if (idPerfil === 2 || idPerfil === 3) return;\r\n async function getCnpjsApi() {\r\n const paramsSearch = {\r\n documento: valueInput || '',\r\n nome: razaoValueInput || '',\r\n };\r\n\r\n const response = await getCnpjs(paramsSearch);\r\n if (!response.data && response.status !== 200) return;\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n const listName = dataRet.map(ret => {\r\n const documentoRet =\r\n ret.documento.length === 14\r\n ? maskCnpj(ret.documento)\r\n : maskCpf(ret.documento);\r\n return {\r\n nome: `${ret.nome} - ${documentoRet}`,\r\n documento: ret.documento,\r\n idFornecedor: ret.idFornecedor,\r\n };\r\n });\r\n setNameList(listName);\r\n setLoading(false);\r\n }\r\n }\r\n setNome(razaoValueInput);\r\n setCnpj(valueInput);\r\n if (valueInput.length >= 3 || razaoValueInput.length >= 3) {\r\n setCnpj(valueInput);\r\n setNome(razaoValueInput);\r\n getCnpjsApi();\r\n }\r\n }, [valueInput, razaoValueInput, idPerfil]);\r\n\r\n useEffect(() => {\r\n let ret = null;\r\n if (nameList?.length > 0) {\r\n const nameListReturnCNPJ = nameList.map(name => {\r\n ret = {\r\n valor: name.documento,\r\n nome: name.nome,\r\n };\r\n return ret;\r\n });\r\n const nameListReturn = nameList.map(name => {\r\n ret = {\r\n valor: name.nome,\r\n nome: name.nome,\r\n documento: name.documento,\r\n };\r\n return ret;\r\n });\r\n setOptionsSearch(nameListReturn);\r\n setOptionsSearchCNPJ(nameListReturnCNPJ);\r\n }\r\n }, [nameList]);\r\n\r\n useEffect(() => {\r\n if (tipoPessoa === 1) return;\r\n setCnpj(valueSelected ? valueSelected.valor : '');\r\n }, [valueSelected, tipoPessoa]);\r\n\r\n useEffect(() => {\r\n if (tipoPessoa === 1) return;\r\n if (razaoValueSelected && razaoValueSelected.documento) {\r\n setValueInput(razaoValueSelected.documento);\r\n setCnpj(razaoValueSelected.documento);\r\n }\r\n }, [razaoValueSelected, tipoPessoa]);\r\n\r\n return (\r\n \r\n \r\n Consultar Títulos\r\n {!loading && (\r\n \r\n \r\n \r\n \r\n CNPJ / CPF\r\n {isOneCnpj && (\r\n \r\n )}\r\n {!isOneCnpj && (\r\n <>\r\n \r\n \r\n \r\n {\r\n setGetRaiz(!getRaiz);\r\n }}\r\n />\r\n Buscar pela Raiz do CNPJ?\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!isOneCnpj && (\r\n \r\n )}\r\n {isOneCnpj && (\r\n <>\r\n Razão Social / Nome\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Número da nota fiscal (opcional)\r\n \r\n \r\n \r\n \r\n \r\n Dt. de\r\n \r\n \r\n \r\n \r\n \r\n Dt. até\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleCleanFields();\r\n }}\r\n color=\"secondary\"\r\n >\r\n Limpar\r\n \r\n Buscar\r\n \r\n \r\n \r\n \r\n )}\r\n {!msgError && notData && (\r\n Não foram encontrados títulos para a sua busca\r\n )}\r\n {!msgError && errorServer && {errorServerMsg}}\r\n {msgError && {msgError}}\r\n \r\n \r\n );\r\n}\r\n\r\nSearchBox.propTypes = {\r\n setDataReturnTitles: PropTypes.func,\r\n setloader: PropTypes.func,\r\n excelSearch: PropTypes.bool,\r\n setExcelSearch: PropTypes.func,\r\n};\r\n\r\nSearchBox.defaultProps = {\r\n setDataReturnTitles: () => {},\r\n setloader: () => {},\r\n excelSearch: false,\r\n setExcelSearch: () => {},\r\n};\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport {\r\n Button,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Form,\r\n} from 'reactstrap';\r\n\r\nexport const MFButton = styled(Button)`\r\n min-width: 90px;\r\n`;\r\nexport const MFModalComponent = styled(Modal)`\r\n .modal-content {\r\n ${({ $modalSize }) =>\r\n $modalSize &&\r\n css`\r\n width: fit-content;\r\n height: fit-content;\r\n `}\r\n\r\n ${({ $customTop }) =>\r\n $customTop &&\r\n css`\r\n margin-top: -150px;\r\n `}\r\n }\r\n`;\r\nexport const MFModalHeader = styled(ModalHeader)``;\r\nexport const MFModalBody = styled(ModalBody)``;\r\nexport const MFModalFooter = styled(ModalFooter)``;\r\nexport const MFForm = styled(Form)``;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n MFButton,\r\n MFModalComponent,\r\n MFModalHeader,\r\n MFModalBody,\r\n MFModalFooter,\r\n} from './styles';\r\n\r\nexport default function MFModal({\r\n children,\r\n backDropType,\r\n keyBoardType,\r\n showModal,\r\n setShowModal,\r\n modalTitle,\r\n showFooter,\r\n $modalSize,\r\n $customTop,\r\n}) {\r\n const [backdrop, setBackdrop] = useState(true);\r\n const [keyboard, setKeyboard] = useState(false);\r\n const [shouldRender, setShouldRender] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!showModal) return;\r\n setShouldRender(true);\r\n return setShowModal(showModal);\r\n }, [showModal, setShowModal]);\r\n\r\n useEffect(() => {\r\n if (!backDropType) return;\r\n if (backDropType !== 'static') {\r\n return setBackdrop(JSON.parse(backDropType));\r\n }\r\n return setBackdrop(backDropType);\r\n }, [backDropType]);\r\n\r\n useEffect(() => {\r\n if (!keyBoardType) return;\r\n return setKeyboard(keyBoardType);\r\n }, [keyBoardType]);\r\n\r\n const toggle = () => setShowModal(!showModal);\r\n\r\n return (\r\n \r\n {modalTitle}\r\n {shouldRender && children}\r\n {showFooter && (\r\n \r\n \r\n OK\r\n \r\n \r\n Cancelar\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nMFModal.propTypes = {\r\n backDropType: PropTypes.string,\r\n keyBoardType: PropTypes.bool,\r\n showModal: PropTypes.bool,\r\n setShowModal: PropTypes.func,\r\n modalTitle: PropTypes.string,\r\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.array]),\r\n showFooter: PropTypes.bool,\r\n $modalSize: PropTypes.bool,\r\n $customTop: PropTypes.bool,\r\n};\r\n\r\nMFModal.defaultProps = {\r\n backDropType: 'true',\r\n keyBoardType: false,\r\n showModal: false,\r\n setShowModal: () => {},\r\n modalTitle: 'Modal',\r\n children: null,\r\n showFooter: false,\r\n $modalSize: false,\r\n $customTop: false,\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport { Button } from 'reactstrap';\r\n\r\nimport { FaSearch } from 'react-icons/fa';\r\n\r\nimport { FiArrowLeft, FiArrowRight } from 'react-icons/fi';\r\n\r\nimport CheckboxComponent from '@material-ui/core/Checkbox';\r\nimport MFPageLoaderComponent from '../MFPageLoader';\r\n\r\n\r\nexport const MFButton = styled(Button)`\r\n min-width: 90px;\r\n`;\r\nexport const MFPageLoader = styled(MFPageLoaderComponent)``;\r\n\r\nexport const MFCheckBox = styled(CheckboxComponent)`\r\n &.Mui-disabled {\r\n opacity: 0.5; // Reduz a opacidade quando desabilitado\r\n\r\n .MuiSvgIcon-root {\r\n fill: #9e9e9e; // Cor mais escura para o ícone SVG quando desabilitado\r\n }\r\n }\r\n`;\r\n\r\nexport const MFWrapCheckBox = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: flex-start;\r\n margin-top: 2px;\r\n\r\n [class$='-check-label'] {\r\n position: relative;\r\n font-size: 10px;\r\n }\r\n\r\n // Estilo para o wrapper quando o checkbox está desabilitado\r\n &:has(.Mui-disabled) {\r\n cursor: not-allowed;\r\n }\r\n`;\r\n\r\nexport const MFTableWrap = styled.div`\r\n overflow-x: scroll;\r\n max-width: 95%;\r\n max-height: 1000px;\r\n margin-left: 2%;\r\n border-top-left-radius: 4px;\r\n border-top-right-radius: 4px;\r\n`;\r\n\r\nexport const MFPageNavigation = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 16px;\r\n`;\r\n\r\nexport const MFPageNavigationText = styled.div`\r\n color: #6c757d;\r\n font-weight: 500;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n`;\r\n\r\nexport const MFPageNavigationNumber = styled.span`\r\n margin: 0 6px;\r\n`;\r\n\r\nexport const MFPageNavigationArrowLeft = styled(FiArrowLeft)`\r\n margin-right: 8px;\r\n color: #6c757d;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: #5a6268;\r\n }\r\n`;\r\n\r\nexport const MFPageNavigationArrowRight = styled(FiArrowRight)`\r\n margin-left: 8px;\r\n color: #6c757d;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: #5a6268;\r\n }\r\n`;\r\n\r\nexport const MFButtonDownloadPDF = styled(Button)`\r\n width: 100%;\r\n`;\r\n\r\nexport const MFTable = styled.table`\r\n text-align: center;\r\n`;\r\n\r\nexport const MFThead = styled.thead`\r\n background-color: #6c757d;\r\n color: #ffffff;\r\n\r\n th {\r\n padding: 5px 30px;\r\n\r\n border-top-color: #ced4db;\r\n\r\n border-right: 2px solid;\r\n border-right-color: #ffffff;\r\n font-size: 12px;\r\n\r\n :first-child {\r\n border-top-left-radius: 4px;\r\n }\r\n\r\n :last-child {\r\n border-top-right-radius: 4px;\r\n }\r\n }\r\n\r\n .adiantRec {\r\n min-width: 145px;\r\n }\r\n`;\r\n\r\nexport const MFTbody = styled.tbody`\r\n td {\r\n padding: 5px 30px;\r\n border: 1px solid;\r\n border-color: #ced4db;\r\n font-weight: normal;\r\n font-size: 15px;\r\n white-space: nowrap;\r\n\r\n :last-child {\r\n margin-right: 10px;\r\n }\r\n }\r\n`;\r\n\r\nexport const MFTr = styled.tr`\r\n :nth-child(2n) {\r\n background-color: #e9ecef;\r\n }\r\n\r\n td {\r\n p {\r\n margin: 2px 0;\r\n }\r\n }\r\n\r\n .left {\r\n padding-left: 5px;\r\n text-align: left;\r\n }\r\n\r\n .right {\r\n padding: 0 5px;\r\n text-align: right;\r\n }\r\n`;\r\n\r\nexport const IconSearch = styled(FaSearch)`\r\n color: #183267;\r\n cursor: pointer;\r\n transition: color linear 0.2s;\r\n\r\n &:hover {\r\n color: #607db9;\r\n }\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Document, Page } from 'react-pdf';\r\n\r\nimport { formatDate, formatMoney, maskCnpj, maskCpf } from '../../utils';\r\n\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport CheckBoxOutlineBlank from '@material-ui/icons/CheckBoxOutlineBlank';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nimport {\r\n getAcrescimo,\r\n getAdiantamento,\r\n getDocument,\r\n solicitarAdiantamento,\r\n solicitarCadastroEmailFilialAsync,\r\n solicitarDesbloqueio,\r\n} from '../../services/titleServices';\r\n\r\nimport MFModal from '../MFModal';\r\n\r\nimport {\r\n IconSearch,\r\n MFButtonDownloadPDF,\r\n MFCheckBox,\r\n MFPageLoader,\r\n MFPageNavigation,\r\n MFPageNavigationArrowLeft,\r\n MFPageNavigationArrowRight,\r\n MFPageNavigationNumber,\r\n MFPageNavigationText,\r\n MFTable,\r\n MFTableWrap,\r\n MFTbody,\r\n MFThead,\r\n MFTr,\r\n MFWrapCheckBox,\r\n} from './styles';\r\n\r\nexport default function TitleTable({ dataReturnTitles, setSelectedTitles }) {\r\n const [checkedTitles, setCheckedTitles] = useState({});\r\n const [selectAll, setSelectAll] = useState(false);\r\n const [showModal, setShowModal] = useState(false);\r\n const [showModalAdiantRec, setShowModalAdiantRec] = useState(false);\r\n const [descontoAcrescimoModal, setDescontoAcrescimoModal] = useState([]);\r\n const [errorTitle, setErrorTitle] = useState('');\r\n const [modalError, setModalError] = useState(false);\r\n const [showLoader, setShowLoader] = useState(false);\r\n const [numPagesPDF, setNumPagesPDF] = useState(false);\r\n const [numPage, setNumPage] = useState(1);\r\n\r\n const [\r\n openSolicitarAdiantamentoDialog,\r\n setOpenSolicitarAdiantamentoDialog,\r\n ] = useState(false);\r\n const [\r\n openSolicitarDesbloqueioDialog,\r\n setOpenSolicitarDesbloqueioDialog,\r\n ] = useState(false);\r\n const [openForaPrazoDialog, setOpenForaPrazoDialog] = useState(false);\r\n const [openTituloJaPagoDialog, setOpenTituloJaPagoDialog] = useState(false);\r\n const [selectedTitle, setSelectedTitle] = useState(null);\r\n\r\n const [\r\n adiantamentoRecebimentoModal,\r\n setAdiantamentoRecebimentoModal,\r\n ] = useState([]);\r\n const [compModal, setCompModal] = useState(false);\r\n const [compShowModal, setCompShowModal] = useState(false);\r\n const [openNoMatchDialog, setOpenNoMatchDialog] = useState(false);\r\n const [noMatchReasons, setNoMatchReasons] = useState([]);\r\n const [apiErrorDialogOpen, setApiErrorDialogOpen] = useState(false);\r\n const [apiErrorMessage, setApiErrorMessage] = useState('');\r\n const [showAnticipationColumn, setShowAnticipationColumn] = useState(true);\r\n\r\n const handleCheckBoxChange = title => {\r\n setCheckedTitles(prev => ({\r\n ...prev,\r\n [title.uniqueId]: !prev[title.uniqueId],\r\n }));\r\n };\r\n useEffect(() => {\r\n const canShowAnticipationColumn = dataReturnTitles.every(\r\n title => title.podeAntecipar\r\n );\r\n setShowAnticipationColumn(canShowAnticipationColumn);\r\n }, [dataReturnTitles]);\r\n\r\n useEffect(() => {\r\n const selectedTitlesArray = dataReturnTitles.filter(\r\n title => checkedTitles[title.uniqueId] && canSolicitarAdiantamento(title, false)\r\n );\r\n setSelectedTitles(selectedTitlesArray);\r\n }, [checkedTitles, dataReturnTitles, setSelectedTitles]);\r\n\r\n const handleSelectAllChange = () => {\r\n setSelectAll(!selectAll);\r\n const newCheckedTitles = {};\r\n let anyTitleSelectable = false;\r\n\r\n dataReturnTitles.forEach(title => {\r\n console.log(title.uniqueId);\r\n const canSelect =\r\n canSolicitarAdiantamento(title, false) && title.podeAntecipar;\r\n newCheckedTitles[title.uniqueId] = selectAll ? false : canSelect;\r\n if (canSelect) {\r\n anyTitleSelectable = true;\r\n }\r\n });\r\n\r\n setCheckedTitles(newCheckedTitles);\r\n\r\n if (!selectAll && !anyTitleSelectable) {\r\n alert(\r\n 'Nenhum título se enquadra nos critérios para solicitação de adiantamento.'\r\n );\r\n setSelectAll(false);\r\n }\r\n };\r\n useEffect(() => {\r\n if (!compShowModal) setNumPage(1);\r\n }, [compShowModal]);\r\n\r\n function setDescAcresc(descAcres) {\r\n setDescontoAcrescimoModal(descAcres);\r\n setShowModal(!showModal);\r\n }\r\n\r\n function setAdiantRec(descAcres) {\r\n setAdiantamentoRecebimentoModal(descAcres);\r\n setShowModalAdiantRec(!showModal);\r\n }\r\n\r\n function onDocumentLoadSuccess({ numPages }) {\r\n setNumPagesPDF(numPages);\r\n }\r\n\r\n async function getByteDoc(idCnab, idPortal, idTitulo) {\r\n setShowLoader(true);\r\n const byteFile = await getDocument(idCnab, idPortal, idTitulo);\r\n if (byteFile.status === 200 && byteFile.data) {\r\n setShowLoader(false);\r\n const {\r\n data: { dados },\r\n } = byteFile;\r\n if (dados) {\r\n setCompModal(dados);\r\n setCompShowModal(true);\r\n }\r\n }\r\n\r\n if (byteFile.status === 500) {\r\n setShowLoader(false);\r\n setErrorTitle(\r\n byteFile.data.erros[0].message\r\n ? byteFile.data.erros[0].message\r\n : 'Não foi possível realizar a pesquisa desejada devido a falha na comunicação com a API - Obter Comprovante!'\r\n );\r\n setModalError(true);\r\n }\r\n\r\n if (byteFile.status === 400) {\r\n setShowLoader(false);\r\n setErrorTitle(\r\n byteFile.data.erros[0].message\r\n ? byteFile.data.erros[0].message\r\n : 'Não foi possível realizar a pesquisa desejada devido a falha na comunicação com a API - Obter Comprovante!'\r\n );\r\n setModalError(true);\r\n }\r\n if (byteFile.status === 401) {\r\n setShowLoader(false);\r\n setErrorTitle(\r\n byteFile.data.erros[0].message\r\n ? byteFile.data.erros[0].message\r\n : 'Não foi possível realizar a pesquisa desejada devido a falha na comunicação com a API - Obter Comprovante!'\r\n );\r\n setModalError(true);\r\n }\r\n }\r\n\r\n async function getAcrescDesc({ title }) {\r\n const response = await getAcrescimo(title);\r\n if (response.status === 200) return setDescAcresc(response.data.dados);\r\n }\r\n\r\n async function getAdiantRec({ title }) {\r\n const response = await getAdiantamento(title);\r\n if (response.status === 200) return setAdiantRec(response.data.dados);\r\n }\r\n\r\n const ModalAcresDescRender = title => {\r\n return (\r\n {\r\n getAcrescDesc(title);\r\n }}\r\n />\r\n );\r\n };\r\n\r\n const ModalAdiantRecRender = title => {\r\n return (\r\n {\r\n getAdiantRec(title);\r\n }}\r\n />\r\n );\r\n };\r\n\r\n function downloadPDF(pdf) {\r\n const linkSource = `data:application/pdf;base64,${pdf}`;\r\n const downloadLink = document.createElement('a');\r\n const fileName = 'file.pdf';\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n }\r\n\r\n const ModalAcresDesc = () => {\r\n return (\r\n <>\r\n \r\n <>\r\n \r\n \r\n \r\n Tipo\r\n Descrição\r\n Valor (R$)\r\n Histórico\r\n \r\n \r\n \r\n {descontoAcrescimoModal &&\r\n descontoAcrescimoModal.map(descAcres => (\r\n \r\n {descAcres.tipo}\r\n {descAcres.descricao}\r\n {formatMoney(descAcres.valor)}\r\n {descAcres.historico}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const ModalAdiantRec = () => {\r\n return (\r\n <>\r\n \r\n <>\r\n \r\n \r\n \r\n Documento\r\n Banco\r\n Agência\r\n Conta\r\n Motivo\r\n Valor Pago (R$)\r\n Data\r\n Histórico\r\n \r\n \r\n \r\n {adiantamentoRecebimentoModal &&\r\n adiantamentoRecebimentoModal.map(adiant => (\r\n \r\n {adiant.documento}\r\n {adiant.banco}\r\n {adiant.agencia}\r\n {adiant.conta}\r\n {adiant.motivo}\r\n {formatMoney(adiant.valorPago)}\r\n {formatDate(adiant.data)}\r\n {adiant.historico}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const canSolicitarAdiantamento = (title, ignoraBloqueio) => {\r\n console.log('Titulo.' + title.numeroTitulo);\r\n\r\n if (!title.indicaExisteFilialCadastrada) {\r\n console.log(\r\n 'Filial ainda não habilitada para solicitar adiantamento, deve ser enviado para Contas a Pagar.'\r\n );\r\n return false;\r\n }\r\n // Nova regra de valor e borderô\r\n else if (title.saldo !== 0 && title.bordero) {\r\n console.log(\r\n 'Regra: Não liberado - Saldo diferente de zero e Borderô preenchido.'\r\n );\r\n return false;\r\n } else if (title.saldo === 0 && !title.bordero) {\r\n console.log('Regra: Não liberado - Saldo zero e Borderô vazio.');\r\n return false;\r\n } else if (title.saldo === 0 && title.bordero) {\r\n console.log('Regra: Não liberado - Saldo zero e Borderô preenchido.');\r\n return false;\r\n } else if (title.envioBanco === 'Não' && !title.gradeblq) {\r\n console.log('Regra: Liberado para solicitação de adiantamento.');\r\n console.log(`Saldo = ${title.saldo}, bordero = ${title.gradeblq}`);\r\n const campoVencimento = title.dataVencimento;\r\n const tempoDias = title.tempoAntecipaVenc;\r\n const dataLimite = new Date(campoVencimento);\r\n dataLimite.setDate(dataLimite.getDate() - tempoDias);\r\n\r\n console.log(\r\n `Valores: envioBanco = ${title.envioBanco}, gradeblq = ${title.gradeblq}`\r\n );\r\n console.log(\r\n `Valores: dataVencimento = ${campoVencimento}, tempoAntecipaVenc = ${tempoDias}`\r\n );\r\n console.log(`Data limite calculada: ${dataLimite}`);\r\n\r\n const now = new Date();\r\n const nowWithoutTime = new Date(\r\n now.getFullYear(),\r\n now.getMonth(),\r\n now.getDate()\r\n );\r\n const dataLimiteWithoutTime = new Date(\r\n dataLimite.getFullYear(),\r\n dataLimite.getMonth(),\r\n dataLimite.getDate()\r\n );\r\n\r\n if (nowWithoutTime <= dataLimiteWithoutTime) {\r\n debugger;\r\n console.log('Regra: Dentro do prazo de antecipação.');\r\n\r\n if (title.emailContasPagar) {\r\n if (title.indicaExisteModeloDesbloqueio) {\r\n return true;\r\n } else {\r\n console.log('Necessário adicionar um modelo do tipo desbloqueio');\r\n return false;\r\n }\r\n } else {\r\n console.log(\r\n 'O e-mail relacionado a contas a pagar não está configurado.'\r\n );\r\n return false;\r\n }\r\n } else {\r\n console.log('Regra: Fora do prazo de antecipação.');\r\n return false;\r\n }\r\n } else if (title.gradeblq) {\r\n console.log('Regra: Liberado para solicitação de adiantamento.');\r\n console.log(`Saldo = ${title.saldo}, bordero = ${title.gradeblq}`);\r\n console.log('Regra: Grade bloqueada.');\r\n console.log(`Valores: gradeblq = ${title.gradeblq}`);\r\n return ignoraBloqueio;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const handleSolicitarAdiantamento = async title => {\r\n setSelectedTitle(title);\r\n const reasons = [];\r\n\r\n if (!title.indicaExisteFilialCadastrada) {\r\n const response = await solicitarCadastroEmailFilialAsync(title);\r\n console.log(\r\n 'Filial ainda não habilitada para solicitar adiantamento, e-mail enviado para Contas a Pagar.'\r\n );\r\n return;\r\n }\r\n\r\n // Nova regra de valor e borderô\r\n if (title.saldo !== 0 && title.bordero) {\r\n console.log(\r\n 'Não é possível solicitar adiantamento. Saldo diferente de zero e Borderô preenchido.'\r\n );\r\n } else if (title.saldo === 0 && !title.bordero) {\r\n console.log(\r\n 'Não é possível solicitar adiantamento. Saldo zero e Borderô vazio.'\r\n );\r\n } else if (title.saldo === 0 && title.bordero) {\r\n console.log(\r\n 'Não é possível solicitar adiantamento. Saldo zero e Borderô preenchido.'\r\n );\r\n } else if (title.envioBanco == 'Não' && !title.gradeblq) {\r\n console.log('Regra: Liberado para solicitação de adiantamento.');\r\n console.log(`Saldo = ${title.saldo}, bordero = ${title.gradeblq}`);\r\n const campoVencimento = title.dataVencimento;\r\n const tempoDias = title.tempoAntecipaVenc;\r\n const dataLimite = new Date(campoVencimento);\r\n dataLimite.setDate(dataLimite.getDate() - tempoDias);\r\n\r\n console.log(\r\n `Valores: envioBanco = ${title.envioBanco}, gradeblq = ${title.gradeblq}`\r\n );\r\n console.log(\r\n `Valores: dataVencimento = ${campoVencimento}, tempoAntecipaVenc = ${tempoDias}`\r\n );\r\n console.log(`Data limite calculada: ${dataLimite}`);\r\n\r\n const now = new Date();\r\n const nowWithoutTime = new Date(\r\n now.getFullYear(),\r\n now.getMonth(),\r\n now.getDate()\r\n );\r\n const dataLimiteWithoutTime = new Date(\r\n dataLimite.getFullYear(),\r\n dataLimite.getMonth(),\r\n dataLimite.getDate()\r\n );\r\n\r\n if (nowWithoutTime <= dataLimiteWithoutTime) {\r\n \r\n console.log('Regra: Dentro do prazo de antecipação.');\r\n\r\n if (title.emailContasPagar) {\r\n if (title.indicaExisteModeloDesbloqueio) {\r\n //setOpenSolicitarAdiantamentoDialog(true);\r\n } else {\r\n alert('Necessário adicionar um modelo do tipo ');\r\n }\r\n } else {\r\n alert('O e-email relacionado a contas a pagar não esta configurada.');\r\n }\r\n } else {\r\n console.log('Regra: Fora do prazo de antecipação.');\r\n setOpenForaPrazoDialog(true);\r\n }\r\n } else if (title.gradeblq) {\r\n console.log('Regra: Grade bloqueada.');\r\n console.log(`Valores: gradeblq = ${title.gradeblq}`);\r\n setOpenSolicitarDesbloqueioDialog(true);\r\n } else {\r\n if (!title.saldo && !title.bordero)\r\n reasons.push('Título não possui saldo ou borderô.');\r\n if (title.envioBanco) reasons.push('Título já foi enviado ao banco.');\r\n if (title.gradeblq) reasons.push('Título está com grade bloqueada.');\r\n\r\n setNoMatchReasons(reasons);\r\n setOpenNoMatchDialog(true);\r\n }\r\n };\r\n\r\n const handleConfirmSolicitarAdiantamento = async () => {\r\n try {\r\n const response = await solicitarAdiantamento(selectedTitle);\r\n if (response.status === 200) {\r\n alert('Adiantamento solicitado com sucesso.');\r\n } else {\r\n handleApiError(response);\r\n }\r\n } catch (error) {\r\n handleApiError(error.response);\r\n }\r\n setOpenSolicitarAdiantamentoDialog(false);\r\n };\r\n\r\n const handleConfirmSolicitarDesbloqueio = async () => {\r\n try {\r\n const response = await solicitarDesbloqueio(selectedTitle);\r\n if (response.status === 200) {\r\n console.log('Solicitação de desbloqueio enviada com sucesso.');\r\n alert('Solicitação de desbloqueio enviada com sucesso.');\r\n } else {\r\n handleApiError(response);\r\n }\r\n } catch (error) {\r\n handleApiError(error.response);\r\n }\r\n setOpenSolicitarDesbloqueioDialog(false);\r\n };\r\n\r\n const handleApiError = response => {\r\n const message =\r\n response?.data?.erros?.map(err => err.message).join('\\n') ||\r\n 'Erro ao processar a solicitação.';\r\n setApiErrorMessage(message);\r\n setApiErrorDialogOpen(true);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {showAnticipationColumn && (\r\n \r\n
\r\n \r\n \r\n }\r\n checkedIcon={\r\n \r\n }\r\n checked={selectAll}\r\n onChange={handleSelectAllChange}\r\n />\r\n \r\n Antecipação\r\n
\r\n \r\n )}\r\n Filial\r\n Título\r\n Emissão\r\n Número da Nota Fiscal\r\n Data Vencimento\r\n CNPJ / CPF\r\n Fornecedor\r\n \r\n Valor Líquido (R$)
A Pagar / Pago\r\n \r\n Acréscimo / Desconto\r\n Movimentação Dev/Adto.\r\n Envio Banco\r\n Depósito Boleto\r\n Fatura Referente\r\n \r\n Data da Baixa /
\r\n Pagamento\r\n \r\n Comprovante\r\n Número Processo\r\n Polo Ativo\r\n
\r\n
\r\n \r\n {dataReturnTitles &&\r\n dataReturnTitles.map((title, index) => (\r\n \r\n {showAnticipationColumn && (\r\n \r\n \r\n \r\n }\r\n checkedIcon={\r\n \r\n }\r\n checked={checkedTitles[title.uniqueId] || false}\r\n disabled={!canSolicitarAdiantamento(title, true)}\r\n onChange={event => {\r\n handleCheckBoxChange(title);\r\n if (event.target.checked && title.podeAntecipar) {\r\n handleSolicitarAdiantamento(title);\r\n }\r\n }}\r\n />\r\n \r\n \r\n )}\r\n {title.filial} \r\n {title.numeroTitulo}\r\n \r\n {title.dataEmissao.map(l => (\r\n
\r\n

{formatDate(l)}

\r\n
\r\n ))}\r\n \r\n \r\n {title.notaInicial.map(l => (\r\n
\r\n

{l}

\r\n
\r\n ))}\r\n \r\n {formatDate(title.dataVencimento)}\r\n \r\n {title.cnpj.length === 14\r\n ? maskCnpj(title.cnpj)\r\n : maskCpf(title.cnpj)}\r\n \r\n {title.fornecedor}\r\n \r\n {title.valor ? formatMoney(Number(title.valor)) : '-'}\r\n \r\n \r\n {title.temAcrescimoDesconto ? (\r\n \r\n ) : (\r\n '-'\r\n )}\r\n \r\n \r\n {title.temAdiantamentoDevolucao ? (\r\n \r\n ) : (\r\n '-'\r\n )}\r\n \r\n {title.envioBanco}\r\n {title.depositoBoleto}\r\n {title.faturaReferente}\r\n {title.dataBaixa ? formatDate(title.dataBaixa) : '-'}\r\n \r\n {(title.idCnab || title.idPortal) && (\r\n \r\n getByteDoc(\r\n title.idCnab,\r\n title.idPortal,\r\n title.numeroTitulo\r\n )\r\n }\r\n />\r\n )}\r\n {!title.idCnab && !title.idPortal && '-'}\r\n \r\n {title.numeroProcesso}\r\n {title.poloAtivo}\r\n
\r\n ))}\r\n \r\n Total: \r\n {showAnticipationColumn && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dataReturnTitles[0]\r\n ? formatMoney(Number(dataReturnTitles[0].totalGeral))\r\n : '-'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n setOpenSolicitarAdiantamentoDialog(false)}\r\n >\r\n Solicitar Adiantamento\r\n \r\n Deseja solicitar adiantamento para o título{' '}\r\n {selectedTitle?.numeroTitulo}?\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setOpenNoMatchDialog(false)}\r\n >\r\n Regras não atendidas\r\n \r\n
    \r\n {noMatchReasons.map((reason, index) => (\r\n
  • {reason}
  • \r\n ))}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n setApiErrorDialogOpen(false)}\r\n >\r\n Erro na Solicitação\r\n \r\n

{apiErrorMessage}

\r\n
\r\n \r\n \r\n \r\n \r\n\r\n setOpenSolicitarDesbloqueioDialog(false)}\r\n >\r\n Título Bloqueado\r\n \r\n Título Bloqueado, deseja solicitar o desbloqueio para a unidade após\r\n análise?\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setOpenForaPrazoDialog(false)}\r\n >\r\n Fora do Prazo\r\n \r\n Fora do prazo para solicitar adiantamento.\r\n \r\n \r\n \r\n \r\n \r\n\r\n setOpenNoMatchDialog(false)}\r\n >\r\n Regras não atendidas\r\n \r\n
    \r\n {noMatchReasons.map((reason, index) => (\r\n
  • {reason}
  • \r\n ))}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n setOpenTituloJaPagoDialog(false)}\r\n >\r\n Título Já Pago\r\n \r\n O título {selectedTitle?.numeroTitulo} já está pago ou em\r\n processamento bancário.\r\n \r\n \r\n \r\n \r\n \r\n\r\n {compModal ? (\r\n \r\n {!showLoader && (\r\n <>\r\n \r\n \r\n \r\n {numPagesPDF > 1 && (\r\n \r\n \r\n {numPage > 1 && (\r\n {\r\n setNumPage(numPage - 1);\r\n }}\r\n />\r\n )}\r\n Página\r\n {numPage}\r\n de\r\n \r\n {numPagesPDF}\r\n \r\n {numPagesPDF !== numPage && (\r\n {\r\n setNumPage(numPage + 1);\r\n }}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n downloadPDF(compModal)}>\r\n Salvar arquivo\r\n \r\n \r\n )}\r\n \r\n ) : null}\r\n {modalError ? (\r\n \r\n {errorTitle}\r\n \r\n ) : null}\r\n {showLoader && }\r\n
\r\n );\r\n}\r\n\r\nTitleTable.propTypes = {\r\n dataReturnTitles: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\r\n setSelectedTitles: PropTypes.func.isRequired,\r\n};\r\n\r\nTitleTable.defaultProps = {\r\n dataReturnTitles: [],\r\n};","import React from 'react';\r\nimport ContentLoader from 'react-content-loader';\r\n\r\nexport const FakeLoader = () => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import styled, { css } from 'styled-components';\r\n\r\nimport SearchBoxComponent from '../../components/SearchBox';\r\nimport TitleTableComponent from '../../components/TitleTable';\r\n\r\nimport MFFakeLoaderListComponent from '../../components/MFFakeLoaderList';\r\nimport MFPageLoaderComponent from '../../components/MFPageLoader';\r\n\r\nexport const MFPageLoader = styled(MFPageLoaderComponent)``;\r\n\r\nexport const MFFakeLoaderWrap = styled.div`\r\n padding: 25px;\r\n`;\r\n\r\nexport const MFFakeLoaderList = styled(MFFakeLoaderListComponent)``;\r\n\r\nexport const MFCointainerWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin-top: 120px;\r\n margin-bottom: 50px;\r\n`;\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 0;\r\n\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n margin-top: unset;\r\n `}\r\n`;\r\n\r\nexport const MFSearchBox = styled(SearchBoxComponent)``;\r\n\r\nexport const MFTitleTable = styled(TitleTableComponent)``;\r\n","import React from 'react';\r\n\r\nimport { FakeLoader } from './styles';\r\n\r\nexport default function FakeLoaderList() {\r\n return ;\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport ExcelExportButton from '../../components/ExcelExportButton';\r\nimport SelecionarAllButton from '../../components/SelecionarAllButton';\r\nimport { solicitarAdiantamento } from '../../services/titleServices';\r\nimport {\r\n Container,\r\n MFCointainerWrap,\r\n MFPageLoader,\r\n MFSearchBox,\r\n MFTitleTable,\r\n} from './styles';\r\n\r\nexport default function Title() {\r\n const [dataReturnTitles, setDataReturnTitles] = useState([]);\r\n const [selectedTitles, setSelectedTitles] = useState([]);\r\n const [loader, setLoader] = useState(false);\r\n const [showLoader, setShowLoader] = useState(false);\r\n const [excelSearch, setExcelSearch] = useState(false);\r\n\r\n useEffect(() => {\r\n setShowLoader(excelSearch);\r\n }, [excelSearch]);\r\n\r\n const handleConfirmSelection = async () => {\r\n if (selectedTitles.length === 0) {\r\n alert('Necessário selecionar ao menos um título.');\r\n return;\r\n }\r\n\r\n if (\r\n window.confirm(\r\n 'Deseja solicitar adiantamento para os títulos selecionados?'\r\n )\r\n ) {\r\n let allProcessed = true;\r\n const processingPromises = [];\r\n\r\n for (const title of selectedTitles) {\r\n const processTitle = async () => {\r\n try {\r\n const deveAntecipar = canSolicitarAdiantamento(title, false);\r\n if (deveAntecipar) {\r\n await solicitarAdiantamento(title);\r\n }\r\n } catch (error) {\r\n handleApiError(error.response);\r\n allProcessed = false;\r\n }\r\n };\r\n processingPromises.push(processTitle());\r\n }\r\n\r\n await Promise.all(processingPromises);\r\n if (allProcessed) {\r\n alert(\r\n 'Solicitações de antecipação de títulos foram realizadas com sucesso.'\r\n );\r\n window.location.reload();\r\n } else {\r\n alert('Algumas solicitações de antecipação não puderam ser processadas. Verifique os logs para mais detalhes.');\r\n }\r\n }\r\n };\r\n\r\n const canSolicitarAdiantamento = (title, ignoraBloqueio) => {\r\n console.log('Titulo.' + title.numeroTitulo);\r\n if (!title.indicaExisteFilialCadastrada) {\r\n console.log(\r\n 'Filial ainda não habilitada para solicitar adiantamento, deve ser enviado para Contas a Pagar.'\r\n );\r\n return false;\r\n }\r\n \r\n // Nova regra de valor e borderô\r\n else if (title.saldo !== 0 && title.bordero) {\r\n console.log('Regra: Não liberado - Saldo diferente de zero e Borderô preenchido.');\r\n return false;\r\n } else if (title.saldo === 0 && !title.bordero) {\r\n console.log('Regra: Não liberado - Saldo zero e Borderô vazio.');\r\n return false;\r\n } else if (title.saldo === 0 && title.bordero) {\r\n console.log('Regra: Não liberado - Saldo zero e Borderô preenchido.');\r\n return false;\r\n }\r\n\r\n if (title.envioBanco === 'Não' && !title.gradeblq) {\r\n const campoVencimento = title.dataVencimento;\r\n const tempoDias = title.tempoAntecipaVenc;\r\n const dataLimite = new Date(campoVencimento);\r\n dataLimite.setDate(dataLimite.getDate() - tempoDias);\r\n\r\n console.log(\r\n `Valores: envioBanco = ${title.envioBanco}, gradeblq = ${title.gradeblq}`\r\n );\r\n console.log(\r\n `Valores: dataVencimento = ${campoVencimento}, tempoAntecipaVenc = ${tempoDias}`\r\n );\r\n console.log(`Data limite calculada: ${dataLimite}`);\r\n\r\n const now = new Date();\r\n const nowWithoutTime = new Date(\r\n now.getFullYear(),\r\n now.getMonth(),\r\n now.getDate()\r\n );\r\n const dataLimiteWithoutTime = new Date(\r\n dataLimite.getFullYear(),\r\n dataLimite.getMonth(),\r\n dataLimite.getDate()\r\n );\r\n\r\n if (nowWithoutTime <= dataLimiteWithoutTime) {\r\n console.log('Regra: Dentro do prazo de antecipação.');\r\n\r\n if (title.emailContasPagar) {\r\n if (title.indicaExisteModeloDesbloqueio) {\r\n return true;\r\n } else {\r\n console.log('Necessário adicionar um modelo do tipo desbloqueio');\r\n return false;\r\n }\r\n } else {\r\n console.log(\r\n 'O e-mail relacionado a contas a pagar não está configurado.'\r\n );\r\n return false;\r\n }\r\n } else {\r\n console.log('Regra: Fora do prazo de antecipação.');\r\n return false;\r\n }\r\n } else if (title.gradeblq) {\r\n console.log('Regra: Grade bloqueada.');\r\n console.log(`Valores: gradeblq = ${title.gradeblq}`);\r\n return ignoraBloqueio;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n // Função para manipular erros de API\r\n const handleApiError = response => {\r\n console.error('Erro ao solicitar adiantamento:', response);\r\n alert('Ocorreu um erro ao solicitar o adiantamento. Por favor, verifique os logs para mais detalhes.');\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n {!loader && dataReturnTitles.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n
\r\n {selectedTitles.length > 0 && (\r\n \r\n )}\r\n
\r\n \r\n )}\r\n {(showLoader || loader) && }\r\n
\r\n \r\n );\r\n}","import styled from 'styled-components';\r\n\r\nimport { Jumbotron, Form, FormGroup, Input, Label, Button } from 'reactstrap';\r\nimport MFComboBoxComponent from '../../components/MFComboBox';\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin-top: 120px;\r\n margin-bottom: 0;\r\n`;\r\n\r\nexport const ErroWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const MsgErro = styled.span`\r\n color: #dc3545;\r\n opacity: 0.8;\r\n`;\r\n\r\nexport const MFJumbotron = styled(Jumbotron)`\r\n width: 95%;\r\n padding: 2rem 1rem;\r\n`;\r\n\r\nexport const MFTitleBox = styled.h1`\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFForm = styled(Form)``;\r\n\r\nexport const MFFormGroup = styled(FormGroup)``;\r\n\r\nexport const MFLabel = styled(Label)`\r\n span {\r\n margin-right: 2px !important;\r\n padding: 0 !important;\r\n }\r\n`;\r\n\r\nexport const MFInput = styled(Input)``;\r\n\r\nexport const MFComboBox = styled(MFComboBoxComponent)``;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 45%;\r\n margin: auto 10px;\r\n\r\n @media screen and (max-width: 767px) {\r\n width: 45%;\r\n }\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport MFBootbox from '../../components/MFBootbox';\r\nimport {\r\n getUsers,\r\n getNewPassword,\r\n deleteUser,\r\n} from '../../services/userServices';\r\n\r\nimport {\r\n Container,\r\n MFJumbotron,\r\n MFTitleBox,\r\n MFForm,\r\n MFFormGroup,\r\n MFInput,\r\n MFLabel,\r\n MFComboBox,\r\n MFWrapButtons,\r\n MFButton,\r\n MsgErro,\r\n ErroWrap,\r\n} from './styles';\r\n\r\nfunction UserConfig() {\r\n const [moreOptions, setMoreOptions] = useState(false);\r\n const [showConfirm, setShowConfirm] = useState(false);\r\n const [erroTipo, setErroTipo] = useState(false);\r\n const [erroValor, setErroValor] = useState(false);\r\n const [submitForm, setSubmitForm] = useState(false);\r\n const [valueInput, setValueInput] = useState('');\r\n const [valueSelected, setValueSelected] = useState([]);\r\n const [nameList, setNameList] = useState([]);\r\n const [message, setMessage] = useState('');\r\n const [tipoValue, setTipoValue] = useState('');\r\n const [type, setType] = useState('alert');\r\n const [optionsSearch, setOptionsSearch] = useState([\r\n {\r\n valor: '',\r\n id: 0,\r\n },\r\n ]);\r\n\r\n useEffect(() => {\r\n if (!valueSelected) return;\r\n async function userMaintenance() {\r\n const { login } = valueSelected;\r\n let response = null;\r\n if (tipoValue === '1') {\r\n response = await getNewPassword(login);\r\n }\r\n if (tipoValue === '2') {\r\n setMessage('Deseja excluir o usuário?');\r\n setType('confirm');\r\n setShowConfirm(true);\r\n return;\r\n }\r\n\r\n if (!response.data && response.status !== 200) {\r\n setType('alert');\r\n setMessage(response);\r\n setShowConfirm(true);\r\n return;\r\n }\r\n if (response.data && response.status === 200) {\r\n const { data: dataRet } = response;\r\n if (dataRet.sucesso) {\r\n setType('alert');\r\n setMessage(dataRet.mensagem);\r\n setShowConfirm(true);\r\n }\r\n }\r\n }\r\n if (!submitForm) return;\r\n if (!erroValor && !erroTipo) {\r\n userMaintenance();\r\n }\r\n }, [submitForm, erroValor, erroTipo, valueSelected, tipoValue]);\r\n\r\n useEffect(() => {\r\n if (nameList?.length > 0) {\r\n const nameListReturn = nameList.map(name => {\r\n return {\r\n valor: name.conteudo.replace(/[,]/g, ' '),\r\n idUsuario: name.idUsuario,\r\n login: name.login,\r\n };\r\n });\r\n setOptionsSearch(nameListReturn);\r\n }\r\n }, [nameList]);\r\n\r\n useEffect(() => {\r\n setSubmitForm(false);\r\n setErroValor(false);\r\n if (valueSelected?.length === 0) return;\r\n setMoreOptions(false);\r\n }, [valueSelected]);\r\n\r\n useEffect(() => {\r\n async function getUsersApi() {\r\n if (!valueInput) return;\r\n const response = await getUsers(valueInput);\r\n if (!response.data && response.status !== 200) return;\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n setNameList(dataRet);\r\n }\r\n return response;\r\n }\r\n if (!moreOptions) return;\r\n getUsersApi();\r\n }, [moreOptions, valueInput]);\r\n\r\n useEffect(() => {\r\n setMoreOptions(false);\r\n }, [optionsSearch]);\r\n\r\n function clearFields() {\r\n setTipoValue('');\r\n setValueSelected([]);\r\n setValueInput('');\r\n setMoreOptions(false);\r\n setErroTipo(false);\r\n setErroValor(false);\r\n setSubmitForm(false);\r\n setOptionsSearch([\r\n {\r\n valor: '',\r\n id: 0,\r\n },\r\n ]);\r\n }\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n setSubmitForm(true);\r\n if (!tipoValue) {\r\n setErroTipo(true);\r\n }\r\n\r\n if (valueSelected?.length === 0 || !valueSelected) {\r\n setErroValor(true);\r\n }\r\n }\r\n\r\n async function handleDeleteUser() {\r\n setShowConfirm(false);\r\n setSubmitForm(false);\r\n const { idUsuario } = valueSelected;\r\n const response = await deleteUser(idUsuario);\r\n if (!response.data && response.status !== 200) {\r\n setMessage(`Erro: ${response.erros[0].message}`);\r\n setType('alert');\r\n setShowConfirm(true);\r\n return;\r\n }\r\n if (response.data && response.status === 200) {\r\n const { dados: dataRet } = response.data;\r\n setMessage(dataRet.msg);\r\n setType('alert');\r\n setShowConfirm(true);\r\n return;\r\n }\r\n return response;\r\n }\r\n\r\n return (\r\n \r\n \r\n Configurar Usuários\r\n \r\n \r\n Tipo de Configuração\r\n {\r\n setTipoValue(e.target.value);\r\n setSubmitForm(false);\r\n setErroTipo(false);\r\n }}\r\n type=\"select\"\r\n name=\"tipoConfiguracao\"\r\n id=\"tipoConfiguracao\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n value=\"\"\r\n valueInput={valueInput}\r\n setValueInput={setValueInput}\r\n optionsSearch={optionsSearch}\r\n setValueSelected={setValueSelected}\r\n valueSelected={valueSelected}\r\n setMoreOptions={setMoreOptions}\r\n isSynchronous\r\n />\r\n \r\n \r\n {\r\n clearFields();\r\n }}\r\n color=\"secondary\"\r\n >\r\n Limpar\r\n \r\n Confirmar\r\n \r\n \r\n {erroTipo && Preencha o tipo de configuração}\r\n {erroValor && Preencha a informação do usuário}\r\n \r\n \r\n \r\n {\r\n handleDeleteUser();\r\n }}\r\n onCancel={() => {\r\n setShowConfirm(false);\r\n setSubmitForm(false);\r\n }}\r\n onClose={() => {\r\n setShowConfirm(false);\r\n setSubmitForm(false);\r\n setTipoValue('');\r\n setValueSelected([]);\r\n setValueInput('');\r\n }}\r\n />\r\n \r\n );\r\n}\r\n\r\nexport default UserConfig;\r\n","import { Link } from 'react-router-dom';\r\n\r\nimport styled, { css } from 'styled-components';\r\nimport {\r\n Row,\r\n Col,\r\n Jumbotron,\r\n Form,\r\n FormGroup,\r\n Label,\r\n Input,\r\n Button,\r\n InputGroupAddon,\r\n InputGroupText,\r\n InputGroup,\r\n} from 'reactstrap';\r\nimport PasswordStrength from '../../components/PasswordStrength';\r\nimport Logo from '../../assets/img/logo.png';\r\n\r\nexport const MFContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 40px auto;\r\n`;\r\n\r\nexport const MFContainerLink = styled(Link)`\r\n text-decoration: none;\r\n\r\n &:focus,\r\n &:hover,\r\n &:visited,\r\n &:link,\r\n &:active {\r\n text-decoration: none;\r\n }\r\n\r\n @media screen and (max-width: 535px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const MFRow = styled(Row)`\r\n margin: 30px;\r\n ${({ form }) =>\r\n form &&\r\n css`\r\n margin: auto;\r\n `}\r\n`;\r\n\r\nexport const MFCol = styled(Col)`\r\n display: flex;\r\n max-width: 400px;\r\n\r\n @media screen and (max-width: 991px) {\r\n justify-content: center;\r\n max-width: unset;\r\n margin: 10px auto;\r\n }\r\n`;\r\n\r\nexport const MFColForm = styled(Col)``;\r\n\r\nexport const MFLogo = styled.img.attrs({\r\n src: Logo,\r\n alt: 'Logo Marfrig',\r\n})`\r\n width: 142px;\r\n height: 38px;\r\n`;\r\n\r\nexport const MFWrapButtons = styled.div`\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n @media screen and (max-width: 535px) {\r\n display: flex;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n`;\r\n\r\nexport const MFBox = styled(Jumbotron)`\r\n width: 478px;\r\n padding: 2rem 2rem 0;\r\n border: 1px solid #d0d0d0;\r\n\r\n ${({ first }) =>\r\n first &&\r\n css`\r\n margin-bottom: 5px;\r\n min-height: 572px;\r\n `}\r\n\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n margin-top: 1px;\r\n padding: 1rem 2rem 2rem;\r\n height: 230px;\r\n min-height: 260px;\r\n `}\r\n\r\n @media screen and (max-width: 767px) {\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 382px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 755px) {\r\n width: 90%;\r\n min-height: 700px;\r\n margin: 10px auto;\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 382px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 430px) {\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 392px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 400px) {\r\n min-height: 715px;\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 392px;\r\n `}\r\n }\r\n\r\n @media screen and (max-width: 380px) {\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n min-height: 420px;\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFLabelButton = styled.span`\r\n color: #ffffff;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 12px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFTitle = styled.span`\r\n display: block;\r\n margin: 24px 0;\r\n color: #000000;\r\n font-weight: bold;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 18px;\r\n font-family: 'Roboto', sans-serif;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n`;\r\n\r\nexport const MFTitleInfo = styled.p`\r\n font-size: 20px;\r\n`;\r\n\r\nexport const MFForm = styled(Form)`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n max-width: 100%;\r\n`;\r\n\r\nexport const MFFormGroup = styled(FormGroup)`\r\n margin-bottom: 0.5rem;\r\n\r\n ${({ last }) =>\r\n last &&\r\n css`\r\n margin-bottom: 1rem;\r\n `}\r\n`;\r\n\r\nexport const MFLabel = styled(Label)``;\r\n\r\nexport const MFInput = styled(Input)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545 !important;\r\n opacity: 0.5;\r\n `}\r\n`;\r\n\r\nexport const MFFormFeedback = styled.span`\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n color: #dc3545;\r\n font-size: 80%;\r\n\r\n ${({ success }) =>\r\n success &&\r\n css`\r\n color: #28a745;\r\n `}\r\n`;\r\n\r\nexport const MFButton = styled(Button)`\r\n width: 184px;\r\n height: 40px;\r\n ${({ back }) =>\r\n back &&\r\n css`\r\n margin-top: 5px;\r\n `}\r\n\r\n @media screen and (max-width: 535px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const MFDescriptionSystem = styled.span`\r\n margin-bottom: 5px;\r\n font-weight: 200;\r\n font-style: normal;\r\n font-size: 15px;\r\n font-family: 'Poppins', sans-serif;\r\n`;\r\n\r\nexport const MFLogoWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n margin: auto;\r\n`;\r\n\r\nexport const MFInputGroupAddon = styled(InputGroupAddon)`\r\n span {\r\n border-top-right-radius: 4px !important;\r\n border-bottom-right-radius: 4px !important;\r\n background-color: #ffffff;\r\n\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n svg {\r\n fill: #dc3545;\r\n }\r\n `}\r\n }\r\n`;\r\n\r\nexport const MFInputGroup = styled(InputGroup)``;\r\n\r\nexport const MFInputGroupText = styled(InputGroupText)`\r\n ${({ error }) =>\r\n error &&\r\n css`\r\n border-color: #dc3545;\r\n opacity: 0.5;\r\n `}\r\n\r\n ${({ valid }) =>\r\n valid &&\r\n css`\r\n border-color: #28a745;\r\n `}\r\n`;\r\n\r\nexport const MFWrapFeed = styled.div`\r\n display: flex;\r\n margin-bottom: 10px;\r\n text-align: center;\r\n`;\r\n\r\nexport const MFPasswordStrength = styled(PasswordStrength)``;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { FaEye, FaEyeSlash } from 'react-icons/fa';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n isEmail,\r\n maskCpf,\r\n maskCnpj,\r\n validateCPF,\r\n validateCNPJ,\r\n} from '../../utils';\r\nimport { postUser } from '../../services/userServices';\r\nimport { isAuthenticated } from '../../auth';\r\nimport history from '../../services/history';\r\n\r\nimport * as UserActions from '../../store/modules/user/actions';\r\n\r\nimport {\r\n MFContainer,\r\n MFRow,\r\n MFColForm,\r\n MFLogo,\r\n MFBox,\r\n MFTitle,\r\n MFForm,\r\n MFFormGroup,\r\n MFInput,\r\n MFFormFeedback,\r\n MFLabel,\r\n MFButton,\r\n MFContainerLink,\r\n MFLogoWrap,\r\n MFInputGroupAddon,\r\n MFInputGroupText,\r\n MFInputGroup,\r\n MFWrapFeed,\r\n MFPasswordStrength,\r\n MFWrapButtons,\r\n MFLabelButton,\r\n} from './styles';\r\nimport PageLoader from '../../components/MFPageLoader';\r\n\r\nexport default function UserRegistration() {\r\n const [labelCNPJ, setLabelCNPJ] = useState('CNPJ');\r\n const [idPerfil, setIdPerfil] = useState('');\r\n const [tipo, setTipo] = useState('');\r\n const [cnpj, setCnpj] = useState('');\r\n const [nome, setNome] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [senha, setSenha] = useState('');\r\n const [emailError, setEmailError] = useState(false);\r\n const [confirmar, setConfirmar] = useState('');\r\n const [nota, setNota] = useState('');\r\n const [dataEmissaoNota, setDataEmissaoNota] = useState('');\r\n const [disabledCNPJ, setDisabledCNPJ] = useState(true);\r\n const [errorCNPJ, setErrorCNPJ] = useState(false);\r\n const [validCNPJ, setValidCNPJ] = useState(false);\r\n const [errorSenha, setErrorSenha] = useState(false);\r\n const [typePassword, setTypePassword] = useState(true);\r\n const [typePasswordAgain, setTypePasswordAgain] = useState(true);\r\n const [formSubmit, setFormSubmit] = useState(false);\r\n const [formValidate, setFormValidate] = useState(false);\r\n const [invalidFields, setInvalidFields] = useState(false);\r\n const [successUserRegistration, setSuccessUserRegistration] = useState(false);\r\n const [errorValidPass, setErrorValidPass] = useState(false);\r\n const [disabledButton, setDisabledButton] = useState(false);\r\n const [msgError, setMsgError] = useState('');\r\n const [msgSuccess, setMsgSuccess] = useState('');\r\n const [showLoader, setShowLoader] = useState(false);\r\n const [dataForm, setDataForm] = useState({\r\n idPerfil,\r\n tipo,\r\n cnpj,\r\n nome,\r\n email,\r\n senha,\r\n confirmar,\r\n nota,\r\n dataEmissaoNota,\r\n });\r\n\r\n const loginInformation = useSelector(\r\n ({ userInformations }) => userInformations\r\n );\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (isAuthenticated(loginInformation)) history.push('/');\r\n }, [loginInformation]);\r\n\r\n useEffect(() => {\r\n if (!formSubmit) return;\r\n const qtdInvalid = Object.values(dataForm).filter(v => v === '');\r\n if (qtdInvalid.length) {\r\n setShowLoader(false);\r\n return setInvalidFields(true);\r\n }\r\n if (!qtdInvalid.length) {\r\n if (!errorCNPJ && !errorSenha) {\r\n setFormValidate(true);\r\n }\r\n return setInvalidFields(false);\r\n }\r\n }, [dataForm, formSubmit, errorCNPJ, errorSenha]);\r\n\r\n useEffect(() => {\r\n if (!formSubmit) {\r\n return;\r\n }\r\n async function postUserApi() {\r\n if (formValidate) {\r\n setDisabledButton(true);\r\n const response = await postUser(dataForm);\r\n if (!response.data && response.status !== 200) {\r\n setShowLoader(false);\r\n setSuccessUserRegistration(false);\r\n setDisabledButton(false);\r\n setMsgError(response.erros[0].message);\r\n return;\r\n }\r\n if (response.data && response.status === 200) {\r\n setShowLoader(false);\r\n setMsgSuccess(response.data.mensagem);\r\n setSuccessUserRegistration(true);\r\n setMsgError('');\r\n }\r\n }\r\n }\r\n postUserApi();\r\n }, [formValidate, formSubmit, dataForm]);\r\n\r\n useEffect(() => {\r\n if (!successUserRegistration) return;\r\n dispatch(UserActions.loginUser(email, senha));\r\n }, [successUserRegistration, email, senha, dispatch]);\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n setDataForm({\r\n idPerfil,\r\n tipo,\r\n cnpj,\r\n nome,\r\n email,\r\n senha,\r\n confirmar,\r\n nota,\r\n dataEmissaoNota,\r\n });\r\n setFormSubmit(true);\r\n setShowLoader(true);\r\n }\r\n\r\n function handleChangeInput(e) {\r\n e.preventDefault();\r\n setFormSubmit(false);\r\n setFormValidate(false);\r\n const { name, value } = e.target;\r\n switch (name) {\r\n case 'idPerfil':\r\n setIdPerfil(value);\r\n break;\r\n case 'tipo':\r\n setCnpj('');\r\n setTipo(value);\r\n setDisabledCNPJ(true);\r\n setLabelCNPJ('CNPJ');\r\n setErrorCNPJ(false);\r\n setValidCNPJ(false);\r\n if (value === '2') {\r\n setLabelCNPJ('CNPJ');\r\n setDisabledCNPJ(false);\r\n }\r\n if (value === '1') {\r\n setLabelCNPJ('CPF');\r\n setDisabledCNPJ(false);\r\n }\r\n break;\r\n case 'cnpj':\r\n if (labelCNPJ === 'CPF') {\r\n return setCnpj(maskCpf(value));\r\n }\r\n setCnpj(maskCnpj(value));\r\n break;\r\n case 'nome':\r\n setNome(value);\r\n break;\r\n case 'email':\r\n setEmail(value);\r\n break;\r\n case 'senha':\r\n setErrorSenha(false);\r\n setSenha(value);\r\n if (confirmar && value !== confirmar) return setErrorSenha(true);\r\n break;\r\n case 'confirmar':\r\n setErrorSenha(false);\r\n setConfirmar(value);\r\n if (value !== senha) return setErrorSenha(true);\r\n break;\r\n case 'nota':\r\n setNota(value);\r\n break;\r\n case 'dataEmissaoNota':\r\n setDataEmissaoNota(value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n function verifyEmail(e) {\r\n e.preventDefault();\r\n setEmailError(!isEmail(e.target.value));\r\n }\r\n\r\n function handlevalidateCNPJCPF(e) {\r\n e.preventDefault();\r\n const { value } = e.target;\r\n let returnValidateCNPJ = false;\r\n if (labelCNPJ === 'CPF') {\r\n returnValidateCNPJ = validateCPF(value);\r\n setValidCNPJ(returnValidateCNPJ);\r\n return setErrorCNPJ(!returnValidateCNPJ);\r\n }\r\n returnValidateCNPJ = validateCNPJ(value);\r\n setValidCNPJ(returnValidateCNPJ);\r\n return setErrorCNPJ(!returnValidateCNPJ);\r\n }\r\n\r\n return (\r\n <>\r\n {showLoader && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cadastro de usuário\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {labelCNPJ}\r\n {\r\n e.preventDefault();\r\n setErrorCNPJ(false);\r\n }}\r\n />\r\n {errorCNPJ && (\r\n {`${labelCNPJ} inválido`}\r\n )}\r\n \r\n \r\n \r\n \r\n Nome\r\n \r\n \r\n \r\n \r\n \r\n E-mail\r\n verifyEmail(e)}\r\n onFocus={e => {\r\n e.preventDefault();\r\n setEmailError(false);\r\n }}\r\n />\r\n {emailError && (\r\n Digite um e-mail válido\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Senha\r\n \r\n \r\n \r\n \r\n {typePassword && (\r\n setTypePassword(!typePassword)}\r\n />\r\n )}\r\n {!typePassword && (\r\n setTypePassword(!typePassword)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Confirmar Senha\r\n \r\n \r\n \r\n \r\n {typePasswordAgain && (\r\n \r\n setTypePasswordAgain(!typePasswordAgain)\r\n }\r\n />\r\n )}\r\n {!typePasswordAgain && (\r\n \r\n setTypePasswordAgain(!typePasswordAgain)\r\n }\r\n />\r\n )}\r\n \r\n \r\n {errorSenha && (\r\n As senhas não coincidem\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Para se cadastrar, informe:\r\n \r\n \r\n \r\n Nota Fiscal ou CTRC\r\n \r\n \r\n \r\n \r\n \r\n Data da emissão\r\n \r\n \r\n \r\n \r\n {invalidFields && (\r\n \r\n \r\n Um ou mais campos obrigatórios não foram preenchidos!\r\n \r\n \r\n )}\r\n {msgSuccess && (\r\n \r\n {`${msgSuccess} aguarde ...`}\r\n \r\n )}\r\n {msgError && (\r\n \r\n {msgError}\r\n \r\n )}\r\n \r\n \r\n Cadastrar\r\n \r\n \r\n \r\n Voltar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Link } from 'react-router-dom';\r\n\r\nimport styled from 'styled-components';\r\nimport { Container, Button } from 'reactstrap';\r\n\r\nexport const MFContainer = styled(Container)``;\r\n\r\nexport const MFButton = styled(Button).attrs({\r\n block: true,\r\n color: 'success',\r\n})``;\r\n\r\nexport const MFNotRegistered = styled(MFButton).attrs({\r\n block: true,\r\n color: 'link',\r\n})`\r\n margin-top: 10px;\r\n padding: 15px;\r\n`;\r\n\r\nexport const MFContainerLink = styled(Link)``;\r\n","import React from 'react';\r\n\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nimport { MFContainer, MFNotRegistered, MFContainerLink } from './styles';\r\n\r\nexport default function MFRedirect() {\r\n return (\r\n \r\n

Você precisa estar logado para executar essa ação!

\r\n

\r\n Você será redirecionado em poucos instantes, caso não seja clique no\r\n link abaixo!\r\n

\r\n \r\n \r\n Login\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import { BsFillGearFill } from 'react-icons/bs';\r\nimport { FaBox, FaBuilding, FaSearch, FaUserCog } from 'react-icons/fa';\r\nimport { IoMdChatboxes } from 'react-icons/io';\r\nimport styled, { css } from 'styled-components';\r\n\r\n\r\nimport { GiExitDoor } from 'react-icons/gi';\r\nimport { Link as LinkComponent } from 'react-router-dom';\r\n\r\nexport const Container = styled.div`\r\n position: absolute;\r\n top: 50px;\r\n right: 0;\r\n z-index: 2;\r\n display: flex;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 180px;\r\n min-height: 100px;\r\n padding-right: 40px;\r\n background-color: #fdfdff;\r\n box-shadow: -1px 0 5px 0 rgba(0, 0, 0, 0.05);\r\n opacity: 0;\r\n visibility: hidden;\r\n transition: all 0.2s ease-in-out;\r\n\r\n ${({ colapsedMenu }) =>\r\n colapsedMenu &&\r\n css`\r\n top: 30px;\r\n right: 90px;\r\n `}\r\n\r\n ${({ menuActive }) =>\r\n menuActive &&\r\n css`\r\n opacity: 1;\r\n visibility: visible;\r\n `}\r\n`;\r\n\r\nexport const MenuWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n`;\r\n\r\nexport const HeaderNav = styled.span``;\r\n\r\nexport const MenuItemWrap = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start; \r\n width: 100%;\r\n margin-top: 20px;\r\n margin-left: 20px; \r\n border-bottom: 1px solid transparent;\r\n cursor: pointer;\r\n transition: all 0.2s ease-in-out;\r\n\r\n &:hover {\r\n border-color: #c3c6db;\r\n color: #4d4c59;\r\n }\r\n`;\r\n\r\n\r\nexport const IconSearch = styled(FaSearch)``;\r\n\r\nexport const IconClose = styled.span`\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n color: #c3c6db;\r\n font-weight: bolder;\r\n`;\r\n\r\nexport const IconIoChat = styled(IoMdChatboxes)``;\r\n\r\nexport const IconUer = styled(FaUserCog)``;\r\n\r\nexport const IconGear = styled(BsFillGearFill)``;\r\n\r\nexport const IconExit = styled(GiExitDoor)``;\r\n \r\nexport const IconFiliais = styled(FaBuilding)``;\r\n\r\nexport const IconFornecedor = styled(FaBox)``;\r\n\r\n\r\nexport const Link = styled(LinkComponent)`\r\n color: #000000;\r\n font-size: 15px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n cursor: pointer;\r\n transition: color linear 0.2s;\r\n\r\n &:hover {\r\n color: #000000;\r\n text-decoration: none;\r\n opacity: 0.6;\r\n }\r\n\r\n svg {\r\n margin-right: 10px;\r\n fill: #c3c6db;\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n Container,\r\n HeaderNav,\r\n IconClose,\r\n IconFiliais,\r\n IconFornecedor,\r\n IconIoChat,\r\n IconUer,\r\n Link,\r\n MenuItemWrap,\r\n MenuWrap\r\n} from './styles';\r\n\r\nexport default function MFSubMenu({\r\n menuActive,\r\n setMenuActive,\r\n colapsedMenu,\r\n setMainMenuActive,\r\n}) {\r\n return (\r\n \r\n {!colapsedMenu && (\r\n setMenuActive(!menuActive)}>X\r\n )}\r\n \r\n \r\n {\r\n setMainMenuActive(false);\r\n setMenuActive(false);\r\n }}\r\n to=\"/faq/cadastro\"\r\n >\r\n \r\n FAQ Cadastro\r\n \r\n \r\n \r\n {\r\n setMainMenuActive(false);\r\n setMenuActive(false);\r\n }}\r\n to=\"/usuario/\"\r\n >\r\n \r\n Usuários\r\n \r\n \r\n \r\n {\r\n setMainMenuActive(false);\r\n setMenuActive(false);\r\n }}\r\n to=\"/configuracao-fornecedor/\"\r\n >\r\n \r\n Fornecedor\r\n \r\n \r\n \r\n {\r\n setMainMenuActive(false);\r\n setMenuActive(false);\r\n }}\r\n to=\"/configuracao-filiais/\"\r\n >\r\n \r\n Filiais\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMFSubMenu.propTypes = {\r\n menuActive: PropTypes.bool.isRequired,\r\n setMenuActive: PropTypes.func.isRequired,\r\n colapsedMenu: PropTypes.bool,\r\n setMainMenuActive: PropTypes.func,\r\n};\r\n\r\nMFSubMenu.defaultProps = {\r\n colapsedMenu: false,\r\n setMainMenuActive: () => {},\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport { FaSearch, FaRegEnvelopeOpen } from 'react-icons/fa';\r\nimport { IoMdChatboxes } from 'react-icons/io';\r\nimport { BsFillGearFill } from 'react-icons/bs';\r\n\r\nimport { Link as LinkComponent } from 'react-router-dom';\r\n\r\nimport { GiExitDoor } from 'react-icons/gi';\r\n\r\nexport const MenuWrap = styled.div`\r\n display: flex;\r\n margin-right: 142px;\r\n\r\n @media screen and (max-width: 1060px) {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const MFWrapLoginLogout = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n`;\r\nexport const MFWrapUserName = styled.span``;\r\n\r\nexport const MFOptionLogout = styled.span``;\r\n\r\nexport const HeaderNav = styled.span``;\r\n\r\nexport const MenuItemWrap = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-around;\r\n margin-left: 20px;\r\n color: #000000;\r\n font-weight: 300;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 14px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n cursor: pointer;\r\n transition: color linear 0.2s;\r\n\r\n &:hover {\r\n opacity: 0.8;\r\n }\r\n\r\n svg {\r\n margin-right: 10px;\r\n fill: #c3c6db;\r\n }\r\n`;\r\n\r\nexport const IconSearch = styled(FaSearch)``;\r\n\r\nexport const IconContactUs = styled(FaRegEnvelopeOpen)``;\r\n\r\nexport const IconIoChat = styled(IoMdChatboxes)``;\r\n\r\nexport const IconGear = styled(BsFillGearFill)``;\r\n\r\nexport const IconExit = styled(GiExitDoor)``;\r\n\r\nexport const Link = styled(LinkComponent)`\r\n color: #000000;\r\n font-weight: 300;\r\n font-style: normal;\r\n font-stretch: normal;\r\n font-size: 14px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n cursor: pointer;\r\n transition: color linear 0.2s;\r\n\r\n &:hover {\r\n color: #000000;\r\n text-decoration: none;\r\n opacity: 0.8;\r\n }\r\n\r\n svg {\r\n margin-right: 10px;\r\n fill: #c3c6db;\r\n }\r\n`;\r\n\r\nexport const MFSubMenuWrap = styled.div`\r\n position: relative;\r\n`;\r\n","import React, { useState } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport authProvider from '../../../services/authProvider';\r\nimport * as UserActions from '../../../store/modules/user/actions';\r\n\r\nimport SubMenu from '../SubMenu';\r\n\r\nimport MFRedirect from '../../../pages/MFRedirect';\r\nimport {\r\n MenuWrap,\r\n HeaderNav,\r\n IconSearch,\r\n IconIoChat,\r\n Link,\r\n IconGear,\r\n IconExit,\r\n MenuItemWrap,\r\n MFWrapLoginLogout,\r\n MFWrapUserName,\r\n MFOptionLogout,\r\n MFSubMenuWrap,\r\n IconContactUs,\r\n} from './style';\r\n\r\nexport default function HorizontalMenu({\r\n logoutSetado,\r\n setLogoutSetado,\r\n userMarfrig,\r\n showConfig,\r\n}) {\r\n const [subMenuActive, setSubMenuActive] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n function logout() {\r\n if (userMarfrig.idPerfil === 1) {\r\n authProvider.logout();\r\n }\r\n\r\n dispatch(UserActions.userInfoRemoveAll());\r\n setLogoutSetado(true);\r\n clearCache();\r\n }\r\n \r\n /**garantir limpeza de cache */\r\n function clearCache() {\r\n console.log('Limpeza de cache realizada !')\r\n localStorage.clear(); \r\n sessionStorage.clear();\r\n window.location.reload();\r\n }\r\n return (\r\n <>\r\n {!logoutSetado && (\r\n \r\n \r\n \r\n \r\n ConsultarTitulos\r\n \r\n \r\n \r\n \r\n \r\n FAQ\r\n \r\n \r\n \r\n \r\n \r\n Fale Conosco\r\n \r\n \r\n {showConfig && (\r\n \r\n \r\n \r\n {\r\n setSubMenuActive(!subMenuActive);\r\n }}\r\n >\r\n Configurações\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {\r\n logout();\r\n }}\r\n >\r\n \r\n {userMarfrig.nome}\r\n Logout\r\n \r\n \r\n \r\n \r\n )}\r\n {logoutSetado && }\r\n \r\n );\r\n}\r\n\r\nHorizontalMenu.propTypes = {\r\n logoutSetado: PropTypes.bool.isRequired,\r\n setLogoutSetado: PropTypes.func.isRequired,\r\n userMarfrig: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\r\n showConfig: PropTypes.bool,\r\n};\r\n\r\nHorizontalMenu.defaultProps = {\r\n userMarfrig: {},\r\n showConfig: false,\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport { Navbar } from 'reactstrap';\r\nimport { FaAlignJustify } from 'react-icons/fa';\r\nimport HorizontalMenuComponent from './HorizontalMenu';\r\nimport Logo from '../../assets/img/logo.png';\r\n\r\nexport const HorizontalMenu = styled(HorizontalMenuComponent)``;\r\n\r\nexport const HeaderWrap = styled(Navbar)`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n z-index: 1;\r\n display: flex;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n width: 100%;\r\n height: 80px;\r\n padding: 0 10px 0 0;\r\n background-color: #fdfdff;\r\n box-shadow: -1px 0 5px 0 rgba(0, 0, 0, 0.05);\r\n`;\r\n\r\nexport const ToggleMenuClick = styled.div`\r\n position: absolute;\r\n z-index: 1;\r\n width: 25px;\r\n height: 25px;\r\n`;\r\n\r\nexport const HeaderLogo = styled.img.attrs({\r\n src: Logo,\r\n alt: 'Logo Marfrig',\r\n})`\r\n width: 142px;\r\n height: 38px;\r\n margin-left: 142px;\r\n`;\r\n\r\nexport const IconColapsed = styled(FaAlignJustify)`\r\n display: none;\r\n\r\n @media screen and (max-width: 1060px) {\r\n display: flex;\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 10px;\r\n fill: #c3c6db;\r\n }\r\n`;\r\n","import styled, { css } from 'styled-components';\r\nimport { FaSearch, FaRegEnvelopeOpen } from 'react-icons/fa';\r\nimport { IoMdChatboxes } from 'react-icons/io';\r\nimport { BsFillGearFill } from 'react-icons/bs';\r\nimport { GiExitDoor } from 'react-icons/gi';\r\n\r\n\r\nimport { Link as LinkComponent } from 'react-router-dom';\r\nexport const Container = styled.div`\r\n position: absolute;\r\n top: 80px;\r\n right: 0;\r\n z-index: 2;\r\n display: flex;\r\n flex-direction: column;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: center;\r\n max-width: 250px;\r\n min-height: 200px;\r\n padding-right: 40px;\r\n background-color: #fdfdff;\r\n box-shadow: -1px 0 5px 0 rgba(0, 0, 0, 0.05);\r\n opacity: 0;\r\n visibility: hidden;\r\n transition: all 0.2s ease-in-out;\r\n\r\n ${({ menuActive }) =>\r\n menuActive &&\r\n css`\r\n opacity: 1;\r\n visibility: visible;\r\n `}\r\n`;\r\n\r\nexport const MenuWrap = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n`;\r\n\r\nexport const HeaderNav = styled.span``;\r\n\r\nexport const MenuItemWrap = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: end;\r\n width: 100%;\r\n margin-top: 20px;\r\n margin-left: 20px;\r\n border-bottom: 1px solid transparent;\r\n cursor: pointer;\r\n transition: all 0.2s ease-in-out;\r\n\r\n &:hover {\r\n border-color: #c3c6db;\r\n color: #4d4c59;\r\n }\r\n`;\r\n\r\nexport const IconSearch = styled(FaSearch)``;\r\n\r\nexport const IconContactUs = styled(FaRegEnvelopeOpen)``;\r\n\r\nexport const IconClose = styled.span`\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n color: #c3c6db;\r\n font-weight: bolder;\r\n`;\r\n\r\nexport const IconIoChat = styled(IoMdChatboxes)``;\r\n\r\nexport const IconGear = styled(BsFillGearFill)``;\r\n\r\nexport const IconExit = styled(GiExitDoor)``;\r\n\r\nexport const Link = styled(LinkComponent)`\r\n color: #000000;\r\n font-size: 18px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n cursor: pointer;\r\n transition: color linear 0.2s;\r\n\r\n &:hover {\r\n color: #000000;\r\n text-decoration: none;\r\n opacity: 0.6;\r\n }\r\n\r\n svg {\r\n margin-right: 10px;\r\n fill: #c3c6db;\r\n }\r\n`;\r\n\r\nexport const MFSubMenuWrap = styled.div`\r\n position: relative;\r\n`;\r\n\r\nexport const FakeLink = styled.div`\r\n color: #000000;\r\n font-size: 18px;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n cursor: pointer;\r\n transition: color linear 0.2s;\r\n\r\n &:hover {\r\n color: #000000;\r\n text-decoration: none;\r\n opacity: 0.6;\r\n }\r\n\r\n svg {\r\n margin-right: 10px;\r\n fill: #c3c6db;\r\n }\r\n`;\r\n","import React, { useState } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport authProvider from '../../../services/authProvider';\r\nimport * as UserActions from '../../../store/modules/user/actions';\r\nimport SubMenu from '../SubMenu';\r\n\r\nimport {\r\n Container,\r\n FakeLink,\r\n HeaderNav,\r\n IconClose,\r\n IconContactUs,\r\n IconExit,\r\n IconGear,\r\n IconIoChat,\r\n IconSearch,\r\n Link,\r\n MenuItemWrap,\r\n MenuWrap,\r\n MFSubMenuWrap,\r\n} from './styles';\r\n\r\nfunction MenuVertical({\r\n menuActive,\r\n setMenuActive,\r\n setLogoutSetado,\r\n userMarfrig,\r\n showConfig,\r\n}) {\r\n const [subMenuActive, setSubMenuActive] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n function logout() {\r\n if (userMarfrig.idPerfil === 1) {\r\n authProvider.logout();\r\n }\r\n dispatch(UserActions.userInfoRemoveAll());\r\n setLogoutSetado(true);\r\n clearCache();\r\n }\r\n\r\n /**garantir limpeza de cache */\r\n function clearCache() {\r\n console.log('Limpeza de cache realizada !')\r\n localStorage.clear(); \r\n sessionStorage.clear();\r\n window.location.reload();\r\n }\r\n\r\n return (\r\n \r\n setMenuActive(!menuActive)}>X\r\n \r\n \r\n {\r\n setMenuActive(false);\r\n }}\r\n to=\"/\"\r\n >\r\n \r\n ConsultarTitulos\r\n \r\n \r\n \r\n {\r\n setMenuActive(false);\r\n }}\r\n to=\"/faq\"\r\n >\r\n \r\n FAQ\r\n \r\n \r\n \r\n {\r\n setMenuActive(false);\r\n }}\r\n to=\"/faleconosco\"\r\n >\r\n \r\n Fale Conosco\r\n \r\n \r\n {showConfig && (\r\n \r\n \r\n \r\n \r\n {\r\n setSubMenuActive(!subMenuActive);\r\n }}\r\n >\r\n Configurações\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {\r\n setMenuActive(false);\r\n }}\r\n to=\"/\"\r\n >\r\n \r\n {\r\n logout();\r\n }}\r\n >\r\n Logout\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default MenuVertical;\r\n\r\nMenuVertical.propTypes = {\r\n menuActive: PropTypes.bool.isRequired,\r\n setMenuActive: PropTypes.func.isRequired,\r\n setLogoutSetado: PropTypes.func.isRequired,\r\n userMarfrig: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\r\n showConfig: PropTypes.bool,\r\n};\r\n\r\nMenuVertical.defaultProps = {\r\n userMarfrig: {},\r\n showConfig: false,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { HeaderWrap, HeaderLogo, HorizontalMenu, IconColapsed } from './styles';\r\nimport MenuVertical from './MenuVertical';\r\nimport userGroups from '../../utils/userGroups';\r\nimport { arrayCompare } from '../../utils';\r\n\r\nexport default function Header() {\r\n const [menuActive, setMenuActive] = useState(false);\r\n const [logoutSetado, setLogoutSetado] = useState(false);\r\n const [showConfig, setShowConfig] = useState(false);\r\n const { userMarfrig } = useSelector(\r\n ({ userInformations }) => userInformations\r\n );\r\n\r\n useEffect(() => {\r\n if (!userMarfrig) return;\r\n const permission = arrayCompare(\r\n userMarfrig.groups,\r\n userGroups.PORTAL_FORNECEDOR_ADM\r\n );\r\n setShowConfig(!!permission);\r\n }, [userMarfrig]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n setMenuActive(!menuActive)} />\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Route } from 'react-router-dom';\r\nimport history from '../services/history';\r\n\r\nimport { isAuthenticated } from '../auth';\r\n\r\nimport MFRedirect from '../pages/MFRedirect';\r\nimport Header from '../components/Header';\r\n\r\nexport default function PrivateRoute({\r\n component: Component,\r\n path,\r\n loginInformation,\r\n ...rest\r\n}) {\r\n return (\r\n \r\n isAuthenticated(loginInformation) ? (\r\n <>\r\n
\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n}\r\n\r\nPrivateRoute.propTypes = {\r\n component: PropTypes.func,\r\n path: PropTypes.string,\r\n loginInformation: PropTypes.oneOfType([PropTypes.object, PropTypes.array])\r\n .isRequired,\r\n};\r\n\r\nPrivateRoute.defaultProps = {\r\n component: null,\r\n path: '',\r\n};\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport FilialConfig from './pages/ConfigFilial';\r\nimport FornecedorConfig from './pages/ConfigFornecedor';\r\nimport ContactUs from './pages/ContactUs';\r\nimport CustomComponents from './pages/CustomComponents';\r\nimport FaqConfig from './pages/FaqConfig';\r\nimport FaqProvider from './pages/FaqProvider';\r\nimport Login from './pages/Login';\r\nimport LoginAD from './pages/LoginAD';\r\nimport PasswordValidity from './pages/PasswordValidity';\r\nimport PreLogin from './pages/PreLogin';\r\nimport RecoverPassword from './pages/RecoverPassword';\r\nimport Title from './pages/Title';\r\nimport UserConfig from './pages/UserConfig';\r\nimport UserRegistration from './pages/UserRegistration';\r\nimport PrivateRoute from './routes/';\r\n\r\nexport default function Routes({ loginInformation }) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nRoutes.propTypes = {\r\n loginInformation: PropTypes.oneOfType([PropTypes.object, PropTypes.array])\r\n .isRequired,\r\n};\r\n","import React from 'react';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { Router } from 'react-router-dom';\r\nimport GlobalStyle from './styles/Global/index';\r\n\r\nimport history from './services/history';\r\n\r\nimport Routes from './routes';\r\n\r\nexport default function App() {\r\n const loginInformation = useSelector(\r\n ({ userInformations }) => userInformations\r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import produce from 'immer';\r\n\r\nimport { Types } from './actions';\r\n\r\nconst INITIAL_STATE = {\r\n acessTokenMarfrig: '',\r\n expiresIn: '',\r\n userMarfrig: {},\r\n loading: false,\r\n error: false,\r\n errorMessage: '',\r\n};\r\n\r\nexport default function usersInfos(state = INITIAL_STATE, action) {\r\n switch (action.type) {\r\n case Types.REQUEST:\r\n return produce(state, draft => {\r\n draft.loading = true;\r\n });\r\n case Types.SUCCESS:\r\n return produce(state, draft => {\r\n const {\r\n payload: {\r\n access_token: acessTokenMarfrig,\r\n expires_in: expiresIn,\r\n user,\r\n },\r\n } = action;\r\n\r\n const userInfo = user;\r\n userInfo.groups = ['DEFAULT_GROUP'];\r\n\r\n draft.acessTokenMarfrig = acessTokenMarfrig;\r\n draft.expiresIn = expiresIn;\r\n draft.userMarfrig = user;\r\n draft.loading = false;\r\n draft.error = false;\r\n draft.errorMessage = '';\r\n\r\n localStorage.setItem('acessTokenMarfrig', acessTokenMarfrig);\r\n localStorage.setItem('expiresIn', expiresIn);\r\n });\r\n case Types.SUCCESS_AD:\r\n return produce(state, draft => {\r\n const {\r\n payload: {\r\n claims: { sid, name, groups, preferred_username },\r\n rawIdToken,\r\n expiration,\r\n },\r\n } = action;\r\n\r\n const user = {\r\n useralterarSenha: false,\r\n idPerfil: 1,\r\n idUsuario: sid || 0,\r\n login: preferred_username,\r\n nome: name,\r\n notificacaoCelular: false,\r\n notificacaoEmail: false,\r\n groups: groups || ['DEFAULT_GROUP'],\r\n senha: '',\r\n tipoPessoa: 2,\r\n };\r\n\r\n draft.acessTokenMarfrig = rawIdToken;\r\n draft.expiresIn = expiration;\r\n draft.userMarfrig = user;\r\n draft.loading = false;\r\n draft.error = false;\r\n draft.errorMessage = '';\r\n\r\n localStorage.setItem('acessTokenMarfrig', rawIdToken);\r\n localStorage.setItem('expiresIn', expiration);\r\n localStorage.setItem('typeUser', 1);\r\n });\r\n case Types.FAILURE:\r\n return produce(state, draft => {\r\n const { payload } = action;\r\n draft.acessTokenMarfrig = '';\r\n draft.expiresIn = '';\r\n draft.userMarfrig = {};\r\n draft.loading = false;\r\n draft.error = true;\r\n draft.errorMessage = payload[0].message;\r\n });\r\n case Types.REMOVE_ALL:\r\n return produce(state, draft => {\r\n draft.acessTokenMarfrig = '';\r\n draft.expiresIn = '';\r\n draft.userMarfrig = {};\r\n draft.loading = false;\r\n draft.error = false;\r\n draft.errorMessage = '';\r\n localStorage.clear();\r\n });\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { combineReducers } from 'redux';\r\n\r\nimport userInformations from './user/reducer';\r\n\r\nexport default combineReducers({\r\n userInformations,\r\n});\r\n","import { call, put, all, takeLatest } from 'redux-saga/effects';\r\n\r\nimport api from '../../../services/api';\r\nimport config from '../../../services/enviroment';\r\n\r\nimport * as UserActions from './actions';\r\n\r\nfunction* loginUser({ payload: { user, password } }) {\r\n try {\r\n const params = {\r\n login: user,\r\n senha: password,\r\n };\r\n\r\n const response = yield call(\r\n api.post,\r\n `${config.baseUrl}/Usuario/login`,\r\n params\r\n );\r\n\r\n if (!response) return;\r\n\r\n yield put(UserActions.userInfoSuccess(response));\r\n } catch (error) {\r\n yield put(UserActions.userInfoFailure(error.response));\r\n }\r\n}\r\n\r\nexport default all([takeLatest(UserActions.Types.REQUEST, loginUser)]);\r\n","import { all } from 'redux-saga/effects';\r\n\r\nimport user from './user/sagas';\r\n\r\nexport default function* rootSaga() {\r\n return yield all([user]);\r\n}\r\n","import { persistReducer } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\n\r\nimport SetTransform from './SetTransform';\r\n\r\nexport default reducers => {\r\n const persistedreducer = persistReducer(\r\n {\r\n key: 'MARFRIG_STORAGE',\r\n storage,\r\n whitelist: ['userInformations'],\r\n transforms: [SetTransform],\r\n },\r\n reducers\r\n );\r\n\r\n return persistedreducer;\r\n};\r\n","import { createTransform } from 'redux-persist';\r\n\r\nconst SetTransform = createTransform(\r\n inboundState => {\r\n const encoded = JSON.stringify({ ...inboundState });\r\n return btoa(btoa(encoded));\r\n },\r\n outboundState => {\r\n const decoded = JSON.parse(atob(atob(outboundState)));\r\n return { ...decoded };\r\n },\r\n { whitelist: ['userInformations'] }\r\n);\r\n\r\nexport default SetTransform;\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport { persistStore } from 'redux-persist';\r\nimport createSagaMiddleware from 'redux-saga';\r\n\r\nimport rootReducer from './modules/rootReducer';\r\nimport rootSaga from './modules/rootSaga';\r\nimport persistReducer from './persistReducer';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\n\r\nconst enhancer = applyMiddleware(sagaMiddleware);\r\n\r\nconst store = createStore(persistReducer(rootReducer), enhancer);\r\n\r\nconst persistor = persistStore(store);\r\n\r\nsagaMiddleware.run(rootSaga);\r\n\r\nexport { store, persistor };\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport App from './App';\r\n\r\nimport { store, persistor } from './store';\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/login-bg.e90652bf.png\";","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 96;"],"sourceRoot":""}