{"version":3,"sources":["enums/ToasterTypes.ts","store/auth/auth.store.ts","store/approvals/approvals.store.ts","store/admin/admin.store.ts","store/comercial/comercial.store.ts","store/comodatos/comodatos.store.ts","store/marketing/marketing.store.ts","store/helper/helper.store.ts","store/loading/loading.store.ts","store/index.ts","assets/images/logo-guaracamp.png","constants/theme.ts","store/auth/token.service.ts","components/Header/index.tsx","services/GuaracampAPI.ts","store/admin/admin.actions.ts","components/MainMenu2/index.tsx","components/CheckboxDefault/index.tsx","components/DefaultInput/index.tsx","components/ProgressLoad/index.tsx","util/validationError.ts","enums/ApprovalsTypes.ts","pages/Admin/Profiles/ProfileEdit/index.tsx","pages/Admin/Profiles/ProfileView/index.tsx","pages/Admin/Users/UserEdit/index.tsx","pages/Admin/Users/UserView/index.tsx","components/CardList/index.tsx","components/Filter/index.tsx","pages/Admin/Users/UserCreate/index.tsx","pages/Admin/Users/index.tsx","store/approvals/approvals.actions.ts","util/mask.ts","enums/StatusApprovals.ts","components/ApprovalUserInfo/index.tsx","components/ApprovallFields/ApprovalApp/index.tsx","components/ApprovallFields/ApprovalErp/index.tsx","components/DefaultRadioButton/index.tsx","components/ApprovallFields/ApprovalConfirm/index.tsx","pages/ApprovalEvaluation/index.tsx","components/StatusTag/index.tsx","enums/StatusComodatos.ts","components/DefaultSelect/index.tsx","pages/Approvals/ApprovalsFilter/index.tsx","pages/Approvals/index.tsx","enums/ComodatosTypes.ts","store/comodatos/comodatos.actions.ts","pages/Comodatos/ComodatosFilter/index.tsx","pages/Comodatos/index.tsx","components/ComodatoUserInfo/index.tsx","components/ComodatoFields/NewComodato/index.tsx","components/ComodatoFields/MaintenanceComodato/index.tsx","components/ComodatoFields/CancelComodato/index.tsx","pages/ComodatosEvaluation/index.tsx","pages/Home/index.tsx","store/auth/auth.actions.ts","pages/Login/index.tsx","pages/Admin/Profiles/ProfileCreate/index.tsx","pages/Admin/Profiles/index.tsx","components/DefaultSelectPromotion/index.tsx","components/Comercial/Promotion/ItensList/index.tsx","ConvertBase64Img/index.ts","store/comercial/comercial.actions.ts","components/Comercial/Promotion/AbrangenciaEstablishmentList/index.tsx","pages/Comercial/Promotion/PromotionEdit/index.tsx","pages/Comercial/Promotion/PromotionView/index.tsx","components/Comercial/Promotion/CardList/index.tsx","pages/Comercial/Promotion/PromotionCreate/index.tsx","pages/Comercial/Promotion/index.tsx","components/DefaultEditor/index.tsx","pages/Comercial/Notifications/index.tsx","components/Uploads/CardUploadImg/index.tsx","store/marketing/marketing.actions.ts","util/images.ts","pages/Marketing/BannerCarrossel/index.tsx","components/Marketing/ProductsList/index.tsx","components/Marketing/CategoriesList/index.tsx","components/Marketing/AbrangenciaEstablishmentList/index.tsx","pages/Marketing/Cupons/CuponsEdit/index.tsx","pages/Marketing/Cupons/CuponsView/index.tsx","components/Marketing/CardListCupons/index.tsx","pages/Marketing/Cupons/CuponsCreate/index.tsx","pages/Marketing/Cupons/index.tsx","components/Marketing/CardImages/index.tsx","pages/Marketing/Images/index.tsx","pages/Admin/Help/HelpEdit/index.tsx","components/DefaultTextArea/index.tsx","pages/Admin/Help/HelpView/index.tsx","components/Help/CardListHelp/index.tsx","pages/Admin/Help/HelpCreate/index.tsx","pages/Admin/Help/index.tsx","pages/Admin/Parameters/CardParameters/index.tsx","pages/Admin/Parameters/index.tsx","components/Marketing/CardFeatured/index.tsx","pages/Marketing/Featured/index.tsx","pages/Admin/TermsAndPolicies/index.tsx","pages/Marketing/PointsAccumulation/index.tsx","pages/Marketing/PointsProgram/index.tsx","pages/Marketing/Merchandising/index.tsx","pages/routes.tsx","layout/index.tsx","components/Toaster/index.tsx","App.tsx","index.tsx"],"names":["ToasterTypes","auth","createSlice","name","initialState","isAuthenticate","reducers","updateLogin","state","action","payload","updateUserAuth","user","actions","approvals","list","types","status","evaluation","app","erp","serpro","confirm","pre","updateApprovals","updateTypes","updateStatus","updateAppData","updateErpData","updatePreData","updateSerproData","updateConfirmData","setCurrentApproval","currentApproval","updateConfirmRegisterData","confirmRegisterData","admin","users","profiles","modulos","profilesList","topics","parameters","termsAndPolicies","txTipoConteudo","txConteudo","id","updateUsers","addUser","push","deleteUser","filter","updateProfiles","updateProfilesList","deleteProfile","profile","addProfile","updateProfile","map","updateTopics","addTopic","deleteTopic","topic","updateUser","updateParameters","updateTopic","updateTermsAndPolicies","updateModules","comercial","promotions","productsList","promotionsAbrangenciaTiposEstabelecimentosList","promotionsAbrangenciaClienteAppList","clientesAppList","updatePromotions","deletePromotion","promotion","updateProducts","addPromotion","updatePromotion","addJustification","updateAbrangenciaTipoEstabelecimento","updateAbrangenciaClienteApp","updateClientesApp","comodatos","typesById","contratacao","manutencao","cancelamento","updateComodatos","updateTypesById","setCurrentComodato","currentComodato","marketing","cardsUpload","cardPosition","origin","destiny","cupons","cuponsProductsList","cuponsCategoriesList","abrangenciaTiposEstabelecimentosList","cuponsAbrangenciaClienteAppList","selectsOptions","tipos","grupos","subGrupos","classes","sabores","cardsImages","cardsFeatured","acumuloDePontosList","pontoRegraResgateTipoEstabelecimentoList","programaDePontosList","merchandisingList","merchandisingTipoEstabelecimentoList","updateCardsUpload","updateCardsPositionOrigin","updateCardsPositionDestiny","addCardsUpload","modifiedCardUpload","card","trashCardUpload","updateCupons","addCupom","deleteCupom","cupom","updateCategories","updateCupom","updateSelectOptionsTiposProduto","arrayTipo","tipo","dsTipoProduto","label","updateSelectOptionsGrupos","arrayGrupos","grupo","dsGrupoProduto","updateSelectOptionsSubGrupos","arraySubGrupos","subGrupo","dsSubgrupoProduto","updateSelectOptionsClasses","arrayClasses","classe","dsClasseProduto","updateSelectOptionsSabores","arraySabores","sabor","dsSaborProduto","updateCardsImages","modifiedCardImages","txImagemProduto","deleteImageCard","updateFeatured","updateAcumuloDePontos","updateProgramaDePontos","updateResgateTipoEstabelecimento","updateMerchandising","updateMerchandisingTipoEstabelecimento","helper","toaster","updateToaster","loading","updateLoading","store","configureStore","reducer","authReducer","approvalsReducer","comodatosReducer","adminReducer","comercialReducer","marketingReducer","helperReducer","loadingReducer","COLORS","primaryGreen","primaryOrange","black","white","TOKEN_KEY","isAuthenticated","localStorage","getItem","login","token","setItem","setUserEmail","userEmail","logout","removeItem","Header","style","background","className","src","headerImg","alt","color","onClick","window","location","pathname","api","axios","create","baseURL","interceptors","request","use","a","config","headers","Authorization","response","error","Promise","reject","asyncGetUsers","dispatch","GuaracampAPI","get","then","res","data","catch","type","title","message","erros","finally","asyncGetUserById","asyncPostUser","post","success","asyncUpdateUser","asyncGetProfiles","asyncGetProfileById","asyncPostProfile","dsPerfil","perfisXmodulos","asyncUpdateProfile","asyncPostTopic","asyncGetTopicById","asyncUpdateTopic","MainMenu2","useState","setUser","idUsuario","useSelector","Number","getUser","useEffect","visible","setVisible","section","route","subMenu","setSubmenu","itemsSubMenu","handleMouseEnter","e","target","parentNode","administrativePerfil","perfis","some","perfil","idPerfil","marketingPerfil","financePerfil","tiPerfil","onMouseLeave","onHide","showCloseIcon","item","i","length","onMouseEnter","CheckboxDefault","checkbox","disabled","handleCheckboxes","idItem","toString","value","checked","onChange","htmlFor","descricao","DefaultInput","min","showLabel","required","maxLength","undefined","fontSize","margin","ProgressLoad","height","width","getValidationErrors","err","validationErrors","inner","forEach","path","ApprovalTypes","ProfileEdit","useDispatch","setDsPerfil","modules","setModules","setProfile","buttonLoading","setButtonLoading","setLoading","errors","setErrors","getProfile","setTimeout","result","j","idModulo","markCheckboxes","handleSubmit","profileModules","module","profileEdit","schema","Yup","shape","validate","abortEarly","event","index","findIndex","chk","newArr","handleCancelAccept","handleCancelReject","handleCancel","confirmDialog","header","icon","acceptClassName","accept","acceptLabel","rejectLabel","find","position","marginRight","ProfileView","UserEdit","nmUsuario","setNmUsuario","txEmail","setTxEmail","setPerfis","userDisabled","setUserDisabled","userPerfil","reload","getUserDisabled","UserView","CardList","email","inputs","handleDelete","Filter","handleClickFilter","handleClickClean","input","UserCreate","setErrorMessage","r","userModules","AdminUsers","newEmail","setNewEmail","newName","setNewName","deleteConfirm","delete","asyncDeleteUser","passInputs","passInputsSideBar","nome","asyncGetAppData","retorno","asyncGetPreData","asyncGetErpData","disapprove","idApprove","onlyNumbers","v","replace","phoneMask","cellMask","cpfCnpjMask","cepMask","StatusApprovals","ApprovalUserInfo","history","useHistory","styles","display","alignItems","infoText","handleDisapprove","handleApprove","idTipoSolicitacao","cadastro","nmCliente","approveData","cliente","idSolicitacaoCadastro","usuarioSolicitante","txCelular","desassociacao","ApprovalApp","approval","setData","numeroDocumento","setNumeroDocumento","handleInput","getAppData","txCpfCnpj","getPreData","getErpData","dadosDoEnpoint","dadosERP","enderecos","cdUf","txUfPrincipal","idTipoEndereco","idTipoEnderecoNavigation","nmBairro","txBairroPrincipal","nmCidade","txMunicipioPrincipal","txCep","txCepPrincipal","txComplemento","txComplementoPrincipal","txLogradouro","txEnderecoPrincipal","txNumero","txPontoReferencia","txUfEntrega","txBairroEntrega","txMunicipioEntrega","txCepEntrega","txComplementoEntrega","txEnderecoEntrega","idTipoEstabelecimento","idTipoPessoa","nmFantasia","tipoEstabelecimento","cdTipoEstabelecimentoErp","cdTipoEstabelecimento","dsTipoEstabelecimento","tipoPessoa","dsTipoPessoa","cdTipoPessoa","cdCliente","txDddCelular","txTelefone","txDdd","idClientePreCadastro","idClienteApp","placeholder","txNumeroPrincipal","txPontoReferenciaPrincipal","txNumeroEntrega","txPontoReferenciaEntrega","DefaultRadioButton","chkDados","setChkDados","setInputs","associacao","fieldName","arr","handleAddressInput","inputArr","handleDeliveryAddressInput","txCmplemento","handleRadioButton","alteração","txCpfcnpj","tipoCliente","tipoAprovacao","ApprovalEvaluation","match","navigation","activeIndex","setActiveIndex","params","console","log","approvalTypeId","getTitle","includes","backgroundColor","padding","marginTop","borderRadius","border","cdDigital","moment","dtAprovacao","format","onTabChange","ApprovalErp","ApprovalConfirm","StatusTag","fontWeight","StatusComodatos","DefaultSelect","options","optionLabel","emptyMessage","showClear","ApprovalsFilter","setType","setStatus","document","setDocument","dsTipoSolicitacaoCadastro","selectOptions","dsStatusSolicitacaoCadastro","t","lista","seacrhApprovals","Approvals","table","headerStyle","cursor","columnStyle","stripedRows","onRowClick","row","responsiveLayout","paginator","rows","rowsPerPageOptions","rowHover","body","preCadastro","idStatusSolicitacao","analise","aprovado","reprovado","desassociado","txStatusSolicitacao","ComodatosTypes","putComodatos","alert","msg","getComodatoStatusByType","dsStatusSolicitacaoComodato","ComodatosFilter","dsTipoSolicitacaoComodato","searchComodatos","Comodatos","getFormatDate","date","Date","dateFormat","tipoSolicitacao","dtSolicitacao","idStatusSolicitacaoComodato","solicitado","aguardandoContatoTelefonico","aguardandoEntrega","aguardandoTrocaDoProduto","aguardandoVisitaComercial","aguardandoVisitaTecnica","emElaboracaoContratual","entregue","contratoCancelado","cancelado","ComodatoUserInfo","NewComodato","comodato","txRegistro","register","setRegister","idTipoSolicitacaoComodato","handlePutComodato","newComodato","marginBottom","nmContato","txTelefoneContato","txEmailContato","produto","dsProduto","txObservacao","autoResize","justifyContent","minLength","alignSelf","MaintenanceComodato","checklist","idTemplateChecklistComodatoNavigation","txItemChecklist","marginLeft","inSituacao","CancelComodato","txMotivoCancelamento","ComodatosEvaluation","comodatoTypeId","Home","asyncSignIn","senha","Login","loginUser","setLogin","password","setPassword","spanEmailError","setSpanEmailError","spanPasswordError","setSpanPasswordError","handleLogin","href","errorMessage","to","toggleMask","feedback","ProfileCreate","Profiles","description","setDescription","newDescription","setNewDescription","resolve","asyncDeleteProfile","query","DefaultSelectPromotion","ItensListPromotion","view","handleSelect","handleAmountDiscount","handleQuantity","itens","idProduto","qtItemPromocao","idTipoDesconto","vlItemPromocao","getBase64","file","reader","FileReader","readAsDataURL","onload","onerror","asyncPostPromotion","asyncGetPromotionById","asyncUpdatePromotion","asyncPostNotification","EstablishmentsTypesPromotion","establishments","categories","PromotionEdit","dsPromocao","setDsPromocao","dtValidadeDe","setDtValidadeDe","dtValidadeAte","setDtValidadeAte","inAtivo","setInAtivo","setPromotion","txImagemPromocao","setTxImagemPromocao","step","setStep","selectedCategory","setSelectedCategory","allClients","setAllClients","clientSelected","setClientSelected","filteredClients","setFilteredClients","getPromotion","checkboxesProdutos","checkboxesTiposEstabelecimento","markCheckboxesTiposEstabelecimentos","abrangenciaTipoEstabelecimento","idTipoAbrangencia","abrangenciaClienteApp","handleDeleteClient","removingClient","client","handleAddToFilteredClients","clientsFiltered","useDropzone","onDrop","acceptedFiles","setFile","getRootProps","getInputProps","imgBase64Convert","listaProdutosPromocao","listaTiposEstabelecimentosPromotion","c","p","allItens","of","when","typeError","is","idTipoAbrangecia","inputId","borderWidth","borderStyle","ItensList","parseInt","promo","category","classNamePrefix","isClearable","isSearchable","text","noOptionsMessage","clienteApp","PromotionView","dtalidadeAte","isOptionDisabled","CardListPromotion","cdPromocao","PromotionCreate","updateItens","setUpdateItens","updateAbrangenciaTipoEstabelecimentoPromotions","setUpdateAbrangenciaTipoEstabelecimentoPromotions","filteredItens","filteredAbrangenciaTipoEstabelecimento","imagem","Math","abs","Promotion","asyncDeletePromotion","inputsSideBar","idClientAPP","DefaultEditor","onTextChange","minHeight","maxHeight","overflow","Notifications","notificationTitle","setNotificationTitle","notificationText","setNotificationText","handleCancelSendNotification","handleSendNotification","origem","usuarioCriacao","assunto","mensagem","sms","notas","NotasRemetente","htmlValue","CardUploadImg","txImagemBase64","txUrl","onClickTrash","onDragDrop","onDragEnter","onDragStart","onDragEnd","copy","indexOrigin","String","indexDestiny","draggable","substring","opacity","objectFit","asyncGetTiposProduto","resultOrder","sort","b","asyncGetGrupos","asyncGetSubGrupos","asyncGetClasses","asyncGetSabores","asyncGetFilterProduct","idTipoProduto","idGrupoProduto","idSubgrupoProduto","idClasseProduto","idSaborProduto","asyncPostCupom","asyncGetCupomById","asyncUpdateCupom","asyncGetPointsAccumulation","idTipo","idSubGrupoProduto","asyncGetProgramPoints","asyncGetMerchandising","idGrupo","idSubGrupo","idClasse","idSabor","BannerCarrossel","url","transform","cardUpload","ProductListCupons","CategoryListCupons","idCategoriaProduto","dsCategoriaProduto","EstablishmentsTypesCupons","categoriesCoverage","CuponsEdit","dsCupom","setDsCupom","cdCupom","setCdCupom","vlCupom","setVlCupom","setIdTipoDesconto","inVisivel","setInVisivel","qtLiberada","setQtLiberada","qtUtilizada","setQtUtilizada","setCupom","selectedCategoryCoverage","setSelectedCategoryCoverage","getCupom","markCheckboxesProducts","checkboxesCategorias","markCheckboxesCategories","categorias","idTipoAplicacao","listaProdutosCupom","listaCategoriasCupom","listaTiposEstabelecimentosCupom","CupomEdit","QtLiberada","QtUtilizada","CuponsView","CardListCupons","CuponsCreate","updateProductsCupons","setUpdateProductsCupons","updateCategoriesCupons","setUpdateCategoriesCupons","updateAbrangenciaTipoEstabelecimentoCupons","setUpdateAbrangenciaTipoEstabelecimentoCupons","setUpdateAbrangenciaAppClientCupons","filteredProducts","filteredCategories","dtvalidadeDe","Cupons","asyncDeleteCupom","CardImages","idCard","useStyleZindex","setUseStyleZindex","onShow","preview","Images","selectTipo","setSelectTipo","selectGrupo","setSelectGrupo","selectSubGrupo","setSelectSubGrupo","selectClasse","setSelectClasse","selectSabor","setSelectSabor","handdleClickSave","arraySave","put","asyncPutImagesProducts","itemTemplate","inline","scrollHeight","HelpEdit","question","setQuestion","answer","setTopic","getTopic","TopicEdit","txPergunta","txResposta","DefaultTextarea","HelpView","setAnswer","CardListHelp","Parser","HelpCreate","HelpPage","asyncDeleteTopics","CardParameters","dsParametro","txTipoParametro","txValorParametro","handleChange","keyfilter","unselectable","Parameters","parameter","CardFeatured","inDestaque","Featured","buttonLoadingProductsList","setButtonLoadingProductsList","buttonLoadingSave","setButtonLoadingSave","buttonLoadingFilters","setButtonLoadingFilters","asyncPutFeatured","TermsAndPolicies","btnTermsOfUse","setBtnTermsOfUse","btnPrivactyPolicies","setBtnPrivactyPolicies","textTermsOfUse","setTextTermsOfUse","textPrivactyPolicies","setTextPrivactyPolicies","clickBtn","termsId","policesId","AcumuloDePontos","idTipoPontoRegraPontuacao","handleVlItem","vlItem","handleQtPonto","qtPonto","handleClickSave","arrayPointsAccumulation","asyncPutPointsAccumulation","borderColor","ProgramaDePontos","currentItem","setCurrentItem","updatePontoRegraResgate","setUpdatePontoRegraResgate","onShowImg","onHideImg","handleQtPontoResgate","qtPontoResgate","handleQtMaxItemPedido","qtMaxItemPedido","handleInAtivo","arrayProgramPoints","pontoRegraResgateTipoEstabelecimento","asyncPutProgramPoints","currentIndexTipoEstabelecimento","currentItemListIndex","arrayCurrentList","objetosIds","listaFinal","Array","isArray","Merchandising","updateMerchandisingRegas","setUpdateMerchandisingRegras","handleQtMinDiaResgate","qtMinDiaResgate","handleQtMaxPedido","qtMaxPedido","arrayMerchandising","matMerchanTipoEstabelecimento","asyncPutMerchandising","PrivateRoute","Component","component","rest","render","props","from","Routes","exact","Notification","MerchandisingMaterials","Layout","Toaster","toastBR","useRef","current","show","severity","summary","detail","life","ref","App","ReactDOM","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.ba81d579.chunk.js","sourcesContent":["export enum ToasterTypes {\r\n success = 'success',\r\n info = 'info',\r\n warn = 'warn',\r\n error = 'error'\r\n}","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\ninterface authProps {\r\n isAuthenticate: boolean;\r\n user?: userAuth;\r\n}\r\n\r\ninterface userAuth {\r\n email: string;\r\n}\r\n\r\nconst initialState: authProps = {\r\n isAuthenticate: false,\r\n};\r\n\r\nconst auth = createSlice({\r\n name: \"auth\",\r\n initialState,\r\n reducers: {\r\n updateLogin(state, action) {\r\n state.isAuthenticate = action.payload;\r\n },\r\n updateUserAuth(state, action) { \r\n state.user = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { updateLogin, updateUserAuth } = auth.actions;\r\nexport default auth.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { AppData } from '../../components/ApprovallFields';\r\nimport { SelectOptions } from '../../components/DefaultSelect';\r\ninterface approvalsProps {\r\n list: [];\r\n types: SelectOptions[];\r\n status: SelectOptions[];\r\n evaluation: {\r\n app: any;\r\n erp: any;\r\n serpro: any;\r\n confirm: any;\r\n pre: any;\r\n };\r\n currentApproval?: any,\r\n confirmRegisterData?: AppData\r\n}\r\n\r\nconst initialState: approvalsProps = {\r\n list: [],\r\n types: [],\r\n status: [],\r\n evaluation: {\r\n app: null,\r\n erp: null,\r\n serpro: null,\r\n confirm: null,\r\n pre: null\r\n }\r\n}\r\n\r\nconst approvals = createSlice({\r\n name: 'approvals',\r\n initialState,\r\n reducers: {\r\n updateApprovals(state, action){\r\n state.list = action.payload\r\n },\r\n updateTypes(state, action){\r\n state.types = action.payload\r\n },\r\n updateStatus(state, action){\r\n state.status = action.payload\r\n },\r\n updateAppData(state, action){\r\n state.evaluation.app = action.payload\r\n },\r\n updateErpData(state, action){\r\n state.evaluation.erp = action.payload\r\n },\r\n updatePreData(state, action){\r\n state.evaluation.pre = action.payload\r\n },\r\n updateSerproData(state, action){\r\n state.evaluation.serpro = action.payload\r\n },\r\n updateConfirmData(state, action){\r\n state.evaluation.confirm = action.payload\r\n },\r\n setCurrentApproval(state, action){\r\n state.currentApproval = action.payload\r\n },\r\n updateConfirmRegisterData(state, action){\r\n state.confirmRegisterData = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport const { updateApprovals, updateTypes, updateStatus, updateAppData, updatePreData, setCurrentApproval, updateConfirmRegisterData, updateErpData, updateSerproData, updateConfirmData } = approvals.actions;\r\nexport default approvals.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\ninterface AdminUserProps {\r\n id: number;\r\n nmUsuario: string;\r\n txEmail: string;\r\n perfis: ProfileProps[];\r\n}\r\n\r\nexport interface ModulesProps {\r\n idItem: number;\r\n descricao: string;\r\n checked: boolean;\r\n}\r\n\r\nexport interface ProfileProps {\r\n idItem: number;\r\n descricao: string;\r\n checked: boolean;\r\n}\r\n\r\nexport interface AdminProfileProps {\r\n id: number;\r\n dsPerfil: string;\r\n modulos: ModulesProps[];\r\n}\r\n\r\nexport interface HelpProps {\r\n id: number;\r\n txPergunta: string;\r\n txResposta: string;\r\n}\r\n\r\nexport interface AdminParameters {\r\n txChaveParametro: string;\r\n dsParametro: string;\r\n txTipoParametro: string;\r\n txValorParametro: string;\r\n id: number;\r\n}\r\n\r\nexport interface TermsAndPolicies {\r\n txTipoConteudo: string;\r\n txConteudo: string;\r\n id: number;\r\n}\r\n\r\ninterface adminProps {\r\n users: AdminUserProps[];\r\n profiles: AdminProfileProps[];\r\n modulos: ModulesProps[];\r\n profilesList: ProfileProps[];\r\n topics: HelpProps[];\r\n parameters: AdminParameters[];\r\n termsAndPolicies: TermsAndPolicies[];\r\n}\r\n\r\nconst initialState: adminProps = {\r\n users: [],\r\n profiles: [],\r\n modulos: [],\r\n profilesList: [],\r\n topics: [],\r\n parameters: [],\r\n termsAndPolicies: [\r\n {\r\n txTipoConteudo: \"\",\r\n txConteudo: \"\",\r\n id: 1,\r\n },\r\n {\r\n txTipoConteudo: \"\",\r\n txConteudo: \"\",\r\n id: 2,\r\n },\r\n ],\r\n};\r\n\r\nconst admin = createSlice({\r\n name: \"admin\",\r\n initialState,\r\n reducers: {\r\n updateUsers(state, action) {\r\n state.users = action.payload;\r\n },\r\n addUser(state, action) {\r\n state.users.push(action.payload);\r\n },\r\n deleteUser(state, action) {\r\n state.users = state.users.filter((user) => user.id !== action.payload);\r\n },\r\n updateProfiles(state, action) {\r\n state.profiles = action.payload;\r\n },\r\n updateProfilesList(state, action) {\r\n state.profilesList = action.payload;\r\n },\r\n deleteProfile(state, action) {\r\n state.profiles = state.profiles.filter(\r\n (profile) => profile.id !== action.payload\r\n );\r\n },\r\n addProfile(state, action) {\r\n state.profiles.push(action.payload);\r\n },\r\n updateProfile(state, action) {\r\n state.profiles = state.profiles.map((profile) =>\r\n profile.id === action.payload.id ? action.payload : profile\r\n );\r\n },\r\n updateTopics(state, action) {\r\n state.topics = action.payload;\r\n },\r\n addTopic(state, action) {\r\n state.topics.push(action.payload);\r\n },\r\n deleteTopic(state, action) {\r\n state.topics = state.topics.filter(\r\n (topic) => topic.id !== action.payload\r\n );\r\n },\r\n updateUser(state, action) {\r\n state.users = state.users.map((user) =>\r\n user.id === action.payload.id ? action.payload : user\r\n );\r\n },\r\n updateParameters(state, action) {\r\n state.parameters = action.payload;\r\n },\r\n updateTopic(state, action) {\r\n state.topics = state.topics.map((topic) =>\r\n topic.id === action.payload.id ? action.payload : topic\r\n );\r\n },\r\n updateTermsAndPolicies(state, action) {\r\n state.termsAndPolicies = action.payload;\r\n },\r\n updateModules(state, action) {\r\n state.modulos = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n updateUsers,\r\n addUser,\r\n updateUser,\r\n deleteUser,\r\n updateProfiles,\r\n deleteProfile,\r\n addProfile,\r\n updateProfilesList,\r\n updateProfile,\r\n updateTopics,\r\n addTopic,\r\n deleteTopic,\r\n updateParameters,\r\n updateTopic,\r\n updateTermsAndPolicies,\r\n updateModules,\r\n} = admin.actions;\r\n\r\nexport default admin.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nexport interface PromotionProps {\r\n id: number;\r\n dsPromocao: string;\r\n dtVlidadeDe: string;\r\n dtValidadeAte: string;\r\n inAtivo: boolean;\r\n cdPromocao: string;\r\n jaUtilizada: false;\r\n txImagemPromocao: string;\r\n itens: PromotionItensProps[];\r\n idTipoAbrangencia: number | null;\r\n abrangenciaTipoEstabelecimento: PromotionsAbrangenciaTipoEstabelecimentoProps[];\r\n abrangenciaClienteApp: PromotionsAbrangenciaClienteAppProps[];\r\n}\r\n\r\nexport interface PromotionsAbrangenciaTipoEstabelecimentoProps {\r\n idTipoEstabelecimento: number;\r\n dsTipoEstabelecimento: string;\r\n checked: boolean;\r\n}\r\n\r\nexport interface PromotionsAbrangenciaClienteAppProps {\r\n idClientAPP: number;\r\n nmCliente: string;\r\n}\r\n\r\nexport interface PromotionItensProps {\r\n qtItemPromocao: any;\r\n vlItemPromocao: any;\r\n idTipoDesconto: any;\r\n idProduto: number ;\r\n checked: boolean;\r\n dsProduto: string;\r\n}\r\n\r\nexport interface ClientesAppProps {\r\n idClienteApp: number;\r\n nmCliente: string;\r\n clienteApp?: any;\r\n}\r\n\r\ninterface comercialProps {\r\n promotions: PromotionProps[];\r\n productsList: PromotionItensProps[];\r\n promotionsAbrangenciaTiposEstabelecimentosList: PromotionsAbrangenciaTipoEstabelecimentoProps[];\r\n promotionsAbrangenciaClienteAppList: PromotionsAbrangenciaClienteAppProps[];\r\n clientesAppList: ClientesAppProps[];\r\n}\r\n\r\nconst initialState: comercialProps = {\r\n promotions: [],\r\n productsList: [],\r\n promotionsAbrangenciaTiposEstabelecimentosList: [],\r\n promotionsAbrangenciaClienteAppList: [],\r\n clientesAppList: [],\r\n};\r\n\r\nconst comercial = createSlice({\r\n name: \"comercial\",\r\n initialState,\r\n reducers: {\r\n updatePromotions(state, action) {\r\n state.promotions = action.payload;\r\n },\r\n deletePromotion(state, action) {\r\n state.promotions = state.promotions.filter(\r\n (promotion) => promotion.id !== action.payload\r\n );\r\n },\r\n updateProducts(state, action) {\r\n state.productsList = action.payload;\r\n },\r\n addPromotion(state, action) {\r\n state.promotions.push(action.payload);\r\n },\r\n updatePromotion(state, action) {\r\n state.promotions = state.promotions.map((promotion) =>\r\n promotion.id === action.payload.id ? action.payload : promotion\r\n );\r\n },\r\n addJustification(state, action) {\r\n state.promotions.push(action.payload);\r\n },\r\n updateAbrangenciaTipoEstabelecimento(state, action) {\r\n state.promotionsAbrangenciaTiposEstabelecimentosList = action.payload;\r\n },\r\n updateAbrangenciaClienteApp(state, action) {\r\n state.promotionsAbrangenciaClienteAppList = action.payload;\r\n },\r\n updateClientesApp(state, action) {\r\n state.clientesAppList = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n updatePromotions,\r\n deletePromotion,\r\n updateProducts,\r\n addPromotion,\r\n updatePromotion,\r\n addJustification,\r\n updateAbrangenciaTipoEstabelecimento,\r\n updateAbrangenciaClienteApp,\r\n updateClientesApp,\r\n} = comercial.actions;\r\nexport default comercial.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport { SelectOptions } from \"../../components/DefaultSelect\";\r\n\r\ninterface comodatoProps {\r\n list: [];\r\n types: SelectOptions[];\r\n typesById: SelectOptions[];\r\n status: SelectOptions[];\r\n evaluation: {\r\n contratacao: any;\r\n manutencao: any;\r\n cancelamento: any;\r\n };\r\n currentComodato?: any;\r\n}\r\n\r\nconst initialState: comodatoProps = {\r\n list: [],\r\n types: [],\r\n typesById: [],\r\n status: [],\r\n evaluation: {\r\n contratacao: null,\r\n manutencao: null,\r\n cancelamento: null,\r\n },\r\n};\r\n\r\nconst comodatos = createSlice({\r\n name: \"comodato\",\r\n initialState,\r\n reducers: {\r\n updateComodatos(state, action) {\r\n state.list = action.payload;\r\n },\r\n updateTypes(state, action) {\r\n state.types = action.payload;\r\n },\r\n updateTypesById(state, action) {\r\n state.typesById = action.payload;\r\n },\r\n updateStatus(state, action) {\r\n state.status = action.payload;\r\n },\r\n setCurrentComodato(state, action) {\r\n state.currentComodato = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n updateComodatos,\r\n updateTypes,\r\n updateTypesById,\r\n updateStatus,\r\n setCurrentComodato,\r\n} = comodatos.actions;\r\nexport default comodatos.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\ninterface CardUpdate {\r\n id: number;\r\n txUrl: string;\r\n txImagemBase64: string;\r\n}\r\n\r\ninterface CardPosition {\r\n origin: string;\r\n destiny: string;\r\n}\r\n\r\n//Cupons\r\n\r\nexport interface CuponsProps {\r\n id: number;\r\n dsCupom: string;\r\n dtValidadeDe: string;\r\n dtValidadeAte: string;\r\n inAtivo: boolean;\r\n inVisivel: boolean;\r\n cdCupom: string;\r\n idTipoDesconto: number;\r\n idTipoAplicacao: number;\r\n idTipoAbrangencia: number | null;\r\n vlCupom: number;\r\n qtLiberada: number;\r\n qtUtilizada: number | null;\r\n itens: CuponsProductsProps[];\r\n categorias: CuponsCategoriasProps[];\r\n abrangenciaTipoEstabelecimento: AbrangenciaTipoEstabelecimentoProps[];\r\n abrangenciaClienteApp: CuponsAbrangenciaClienteAppProps[];\r\n}\r\n\r\nexport interface CuponsAbrangenciaClienteAppProps {\r\n idClienteApp: number;\r\n nmCliente: string;\r\n}\r\n\r\nexport interface AbrangenciaTipoEstabelecimentoProps {\r\n idTipoEstabelecimento: number;\r\n dsTipoEstabelecimento: string;\r\n checked: boolean;\r\n}\r\n\r\nexport interface ClientesAppProps {\r\n idClienteApp: number;\r\n nmCliente: string;\r\n clienteApp?: any;\r\n}\r\n\r\nexport interface CuponsCategoriasProps {\r\n idCategoriaProduto: number;\r\n dsCategoriaProduto: string;\r\n checked: boolean;\r\n}\r\n\r\nexport interface CuponsProductsProps {\r\n idProduto: number;\r\n checked: boolean;\r\n dsProduto: string;\r\n}\r\n\r\ninterface TipoOptions {\r\n id: number;\r\n name: string;\r\n label: string;\r\n}\r\ninterface GruposOptions {\r\n id: number;\r\n name: string;\r\n label: string;\r\n}\r\ninterface SubGrupoOptions {\r\n id: number;\r\n name: string;\r\n label: string;\r\n}\r\ninterface ClassesOptions {\r\n id: number;\r\n name: string;\r\n label: string;\r\n}\r\ninterface SaboresOptions {\r\n id: number;\r\n name: string;\r\n label: string;\r\n}\r\n\r\ninterface SelectsOptions {\r\n tipos: TipoOptions[];\r\n grupos: GruposOptions[];\r\n subGrupos: SubGrupoOptions[];\r\n classes: ClassesOptions[];\r\n sabores: SaboresOptions[];\r\n}\r\n\r\ninterface cardImage {\r\n id: number;\r\n dsProduto: string;\r\n txImagemProduto: string;\r\n}\r\n\r\ninterface cardFeatured {\r\n id: number;\r\n dsProduto: string;\r\n inDestaque: boolean;\r\n}\r\n\r\nexport interface AcumuloDePontosProps {\r\n id: number;\r\n idProduto: number;\r\n descricao: string;\r\n idTipoPontoRegraPontuacao: any | null;\r\n vlItem: any | null;\r\n qtPonto: any | null;\r\n}\r\n\r\nexport interface ProgramaDePontosProps {\r\n idProduto: number;\r\n id: number;\r\n descricao: string;\r\n imagem: string;\r\n qtPontoResgate: any | null;\r\n qtMaxItemPedido: any | null;\r\n inAtivo: boolean;\r\n pontoRegraResgateTipoEstabelecimento: ProgramaDePontosAbrangenciaTipoEstabelecimentoProps[];\r\n}\r\n\r\nexport interface ProgramaDePontosAbrangenciaTipoEstabelecimentoProps {\r\n idTipoEstabelecimento: number;\r\n dsTipoEstabelecimento: string;\r\n checked: boolean;\r\n}\r\n\r\ninterface MerchandisingProps {\r\n id: number;\r\n idProduto: number;\r\n descricao: string;\r\n imagem: string;\r\n qtMinDiaResgate: any | null;\r\n qtMaxPedido: any | null;\r\n matMerchanTipoEstabelecimento: MerchandisingAbrangenciaTipoEstabelecimentoProps[];\r\n inAtivo: boolean;\r\n}\r\n\r\nexport interface MerchandisingAbrangenciaTipoEstabelecimentoProps {\r\n idTipoEstabelecimento: number;\r\n dsTipoEstabelecimento: string;\r\n checked: boolean;\r\n}\r\n\r\ninterface marketingProps {\r\n cardsUpload: CardUpdate[];\r\n cardPosition: CardPosition;\r\n cupons: CuponsProps[];\r\n cuponsProductsList: CuponsProductsProps[];\r\n cuponsCategoriesList: CuponsCategoriasProps[];\r\n clientesAppList: ClientesAppProps[];\r\n abrangenciaTiposEstabelecimentosList: AbrangenciaTipoEstabelecimentoProps[];\r\n cuponsAbrangenciaClienteAppList: CuponsAbrangenciaClienteAppProps[];\r\n selectsOptions: SelectsOptions;\r\n cardsImages: cardImage[];\r\n cardsFeatured: cardFeatured[];\r\n acumuloDePontosList: AcumuloDePontosProps[];\r\n programaDePontosList: ProgramaDePontosProps[];\r\n pontoRegraResgateTipoEstabelecimentoList: ProgramaDePontosAbrangenciaTipoEstabelecimentoProps[];\r\n merchandisingList: MerchandisingProps[];\r\n merchandisingTipoEstabelecimentoList: MerchandisingAbrangenciaTipoEstabelecimentoProps[];\r\n}\r\n\r\nexport const initialState: marketingProps = {\r\n cardsUpload: [],\r\n cardPosition: { origin: \"\", destiny: \"\" },\r\n cupons: [],\r\n cuponsProductsList: [],\r\n cuponsCategoriesList: [],\r\n clientesAppList: [],\r\n abrangenciaTiposEstabelecimentosList: [],\r\n cuponsAbrangenciaClienteAppList: [],\r\n selectsOptions: {\r\n tipos: [],\r\n grupos: [],\r\n subGrupos: [],\r\n classes: [],\r\n sabores: [],\r\n },\r\n cardsImages: [],\r\n cardsFeatured: [],\r\n acumuloDePontosList: [],\r\n pontoRegraResgateTipoEstabelecimentoList: [],\r\n programaDePontosList: [],\r\n merchandisingList: [],\r\n merchandisingTipoEstabelecimentoList: [],\r\n};\r\n\r\nconst marketing = createSlice({\r\n name: \"marketing\",\r\n initialState,\r\n reducers: {\r\n updateCardsUpload(state, action) {\r\n state.cardsUpload = action.payload;\r\n },\r\n updateCardsPositionOrigin(state, action) {\r\n state.cardPosition.origin = action.payload;\r\n },\r\n updateCardsPositionDestiny(state, action) {\r\n state.cardPosition.destiny = action.payload;\r\n },\r\n addCardsUpload(state, action) {\r\n state.cardsUpload = action.payload;\r\n },\r\n modifiedCardUpload(state, action) {\r\n state.cardsUpload = state.cardsUpload.map((card) =>\r\n card.id === action.payload.id ? action.payload : card\r\n );\r\n },\r\n trashCardUpload(state, action) {\r\n state.cardsUpload = state.cardsUpload.map((card) =>\r\n card.id === action.payload.id ? action.payload : card\r\n );\r\n },\r\n //cupons\r\n updateCupons(state, action) {\r\n state.cupons = action.payload;\r\n },\r\n addCupom(state, action) {\r\n state.cupons.push(action.payload);\r\n },\r\n deleteCupom(state, action) {\r\n state.cupons = state.cupons.filter(\r\n (cupom) => cupom.id !== action.payload\r\n );\r\n },\r\n updateProducts(state, action) {\r\n state.cuponsProductsList = action.payload;\r\n },\r\n updateCategories(state, action) {\r\n state.cuponsCategoriesList = action.payload;\r\n },\r\n updateCupom(state, action) {\r\n state.cupons = state.cupons.map((cupom) =>\r\n cupom.id === action.payload.id ? action.payload : cupom\r\n );\r\n },\r\n updateAbrangenciaTipoEstabelecimento(state, action) {\r\n state.abrangenciaTiposEstabelecimentosList = action.payload;\r\n },\r\n updateAbrangenciaClienteApp(state, action) {\r\n state.cuponsAbrangenciaClienteAppList = action.payload;\r\n },\r\n updateClientesApp(state, action) {\r\n state.clientesAppList = action.payload;\r\n },\r\n //select:\r\n updateSelectOptionsTiposProduto(state, action) {\r\n const arrayTipo = [];\r\n for (let tipo of action.payload) {\r\n arrayTipo.push({\r\n id: tipo.id,\r\n name: tipo.dsTipoProduto,\r\n label: tipo.dsTipoProduto,\r\n });\r\n }\r\n state.selectsOptions.tipos = arrayTipo;\r\n },\r\n updateSelectOptionsGrupos(state, action) {\r\n const arrayGrupos = [];\r\n for (let grupo of action.payload) {\r\n arrayGrupos.push({\r\n id: grupo.id,\r\n name: grupo.dsGrupoProduto,\r\n label: grupo.dsGrupoProduto,\r\n });\r\n }\r\n state.selectsOptions.grupos = arrayGrupos;\r\n },\r\n updateSelectOptionsSubGrupos(state, action) {\r\n const arraySubGrupos = [];\r\n for (let subGrupo of action.payload) {\r\n arraySubGrupos.push({\r\n id: subGrupo.id,\r\n name: subGrupo.dsSubgrupoProduto,\r\n label: subGrupo.dsSubgrupoProduto,\r\n });\r\n }\r\n state.selectsOptions.subGrupos = arraySubGrupos;\r\n },\r\n updateSelectOptionsClasses(state, action) {\r\n const arrayClasses = [];\r\n for (let classe of action.payload) {\r\n arrayClasses.push({\r\n id: classe.id,\r\n name: classe.dsClasseProduto,\r\n label: classe.dsClasseProduto,\r\n });\r\n }\r\n state.selectsOptions.classes = arrayClasses;\r\n },\r\n updateSelectOptionsSabores(state, action) {\r\n const arraySabores = [];\r\n for (let sabor of action.payload) {\r\n arraySabores.push({\r\n id: sabor.id,\r\n name: sabor.dsSaborProduto,\r\n label: sabor.dsSaborProduto,\r\n });\r\n }\r\n state.selectsOptions.sabores = arraySabores;\r\n },\r\n //CardImg:\r\n updateCardsImages(state, action) {\r\n state.cardsImages = action.payload;\r\n },\r\n modifiedCardImages(state, action) {\r\n for (let card of state.cardsImages) {\r\n if (card.id === action.payload.id) {\r\n card.txImagemProduto = action.payload.txImagemProduto;\r\n break;\r\n }\r\n }\r\n },\r\n deleteImageCard(state, action) {\r\n for (let card of state.cardsImages) {\r\n if (card.id === action.payload) {\r\n card.txImagemProduto = \"\";\r\n break;\r\n }\r\n }\r\n },\r\n updateFeatured(state, action) {\r\n state.cardsFeatured = action.payload;\r\n },\r\n //Acumulo de pontos:\r\n updateAcumuloDePontos(state, action) {\r\n state.acumuloDePontosList = action.payload;\r\n },\r\n //Programa de pontos:\r\n updateProgramaDePontos(state, action) {\r\n state.programaDePontosList = action.payload;\r\n },\r\n updateResgateTipoEstabelecimento(state, action) {\r\n state.pontoRegraResgateTipoEstabelecimentoList = action.payload;\r\n },\r\n //Materiais de Merchandising:\r\n updateMerchandising(state, action) {\r\n state.merchandisingList = action.payload;\r\n },\r\n updateMerchandisingTipoEstabelecimento(state, action) {\r\n state.merchandisingTipoEstabelecimentoList = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n updateCardsUpload,\r\n addCardsUpload,\r\n modifiedCardUpload,\r\n trashCardUpload,\r\n updateCardsPositionOrigin,\r\n updateCardsPositionDestiny,\r\n updateSelectOptionsTiposProduto,\r\n updateSelectOptionsGrupos,\r\n updateSelectOptionsSubGrupos,\r\n updateSelectOptionsClasses,\r\n updateSelectOptionsSabores,\r\n updateCardsImages,\r\n modifiedCardImages,\r\n deleteImageCard,\r\n updateCupons,\r\n addCupom,\r\n deleteCupom,\r\n updateCupom,\r\n updateProducts,\r\n updateCategories,\r\n updateFeatured,\r\n updateAbrangenciaTipoEstabelecimento,\r\n updateAbrangenciaClienteApp,\r\n updateClientesApp,\r\n updateAcumuloDePontos,\r\n updateProgramaDePontos,\r\n updateMerchandising,\r\n updateResgateTipoEstabelecimento,\r\n updateMerchandisingTipoEstabelecimento\r\n} = marketing.actions;\r\nexport default marketing.reducer;\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\ninterface HelperProps {\r\n toaster: ToasterProps;\r\n}\r\n\r\ninterface ToasterProps {\r\n type?: string;\r\n title?: string;\r\n message?: string;\r\n}\r\n\r\nconst initialState: HelperProps = {\r\n toaster: { }\r\n}\r\n\r\nconst helper = createSlice({\r\n name: 'helper',\r\n initialState,\r\n reducers: {\r\n updateToaster(state, action: PayloadAction){\r\n state.toaster = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport const { updateToaster } = helper.actions;\r\nexport default helper.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nexport interface LoadingProps {\r\n loading: boolean;\r\n}\r\n\r\nconst initialState: LoadingProps = {\r\n loading: true,\r\n};\r\n\r\nconst loading = createSlice({\r\n name: \"loading\",\r\n initialState,\r\n reducers: {\r\n updateLoading(state, action) {\r\n state.loading = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { updateLoading } = loading.actions;\r\nexport default loading.reducer;\r\n","import { configureStore, Action, ThunkAction } from \"@reduxjs/toolkit\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport authReducer from \"./auth/auth.store\";\r\nimport approvalsReducer from \"./approvals/approvals.store\";\r\nimport adminReducer from \"./admin/admin.store\";\r\nimport comercialReducer from \"./comercial/comercial.store\";\r\nimport comodatosReducer from \"./comodatos/comodatos.store\";\r\nimport marketingReducer from \"./marketing/marketing.store\";\r\nimport helperReducer from \"./helper/helper.store\";\r\nimport loadingReducer from \"./loading/loading.store\";\r\n\r\nconst store = configureStore({\r\n reducer: {\r\n auth: authReducer,\r\n approvals: approvalsReducer,\r\n comodatos: comodatosReducer,\r\n admin: adminReducer,\r\n comercial: comercialReducer,\r\n marketing: marketingReducer,\r\n helper: helperReducer,\r\n loading: loadingReducer,\r\n },\r\n});\r\n\r\nexport type RootState = ReturnType;\r\nexport default store;\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport type AppThunk = ThunkAction>;\r\nexport const useAppDispatch = () => useDispatch();\r\n","export default __webpack_public_path__ + \"static/media/logo-guaracamp.e78ed86f.png\";","export const COLORS = {\r\n // base colors\r\n primaryGreen: '#3DAE2B',\r\n primaryOrange: '#FF9500',\r\n\r\n // colors\r\n black: \"#000000\",\r\n white: \"#FFFFFF\",\r\n};\r\n\r\nconst appTheme = { COLORS };\r\n\r\nexport default appTheme;","export const TOKEN_KEY = \"@guaracamp-admin-Token\";\r\n\r\nexport const isAuthenticated = () => localStorage.getItem(TOKEN_KEY) !== null;\r\n\r\nexport const login = (token: any) => {\r\n localStorage.setItem(TOKEN_KEY, token);\r\n};\r\n\r\nexport const setUserEmail = (userEmail: any) => {\r\n localStorage.setItem(\"@USER_EMAIL_GUARACAMP\", userEmail);\r\n};\r\n\r\nexport const setIdUsuario = (idUsuario: any) => {\r\n localStorage.setItem(\"@USER_ID_GUARACAMP\", idUsuario);\r\n};\r\n\r\nexport const logout = () => {\r\n localStorage.removeItem(TOKEN_KEY);\r\n localStorage.removeItem(\"@USER_EMAIL_GUARACAMP\");\r\n localStorage.removeItem(\"@USER_ID_GUARACAMP\");\r\n};\r\n","import React from 'react';\r\nimport './style.css';\r\nimport headerImg from '../../assets/images/logo-guaracamp.png';\r\nimport { Button } from 'primereact/button';\r\n\r\nimport { COLORS } from '../../constants';\r\nimport { logout } from '../../store/auth/token.service'\r\n\r\nconst Header: React.FC = () => {\r\n const handleClick = () =>{\r\n logout()\r\n window.location.pathname = '/login'\r\n }\r\n\r\n return (\r\n
\r\n Logo Guaracamp\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Header;\r\n","import axios from 'axios';\r\nimport { logout, TOKEN_KEY } from '../store/auth/token.service';\r\n\r\nconst api = axios.create({\r\n //baseURL: 'https://api.guaracamp.com.br/api/v1',\r\n baseURL: \"https://api.guaracamp.com.br/api/v1\",\r\n // baseURL: \"https://3d79-2804-d41-ab21-9b00-7596-1f4d-cc50-da8c.ngrok.io/api/v1\",\r\n});\r\n\r\napi.interceptors.request.use(async (config: any) => {\r\n const token = await localStorage.getItem(TOKEN_KEY);\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n return config;\r\n});\r\n\r\napi.interceptors.response.use(\r\n (response: any) => {\r\n return response;\r\n },\r\n (error) => {\r\n if (error.response.status === 401) {\r\n logout();\r\n window.location.pathname = '/login';\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default api;\r\n","import { Dispatch } from \"redux\";\r\nimport { ToasterTypes } from \"../../enums/ToasterTypes\";\r\nimport GuaracampAPI from \"../../services/GuaracampAPI\";\r\nimport { updateToaster } from \"../helper/helper.store\";\r\nimport { updateLoading } from \"../loading/loading.store\";\r\nimport {\r\n updateUsers,\r\n deleteUser,\r\n updateProfiles,\r\n deleteProfile,\r\n addProfile,\r\n addUser,\r\n ProfileProps,\r\n updateProfilesList,\r\n updateProfile,\r\n updateTopics,\r\n addTopic,\r\n deleteTopic,\r\n updateParameters,\r\n updateUser,\r\n updateTopic,\r\n updateTermsAndPolicies,\r\n updateModules,\r\n} from \"./admin.store\";\r\n\r\n//users.\r\nexport const asyncGetUsers = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/usuario?pagina=1®istros=0\")\r\n .then((res) => {\r\n dispatch(updateUsers(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetUserById = async (id: number) => {\r\n let response = null;\r\n await GuaracampAPI.get(`/usuario/${id}`)\r\n .then((res) => {\r\n response = res.data;\r\n })\r\n .catch((error) => {});\r\n\r\n return response;\r\n};\r\n\r\nexport const asyncPostUser = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/usuario\", data)\r\n .then((res: any) => {\r\n dispatch(addUser(res.data.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Usuário criado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncUpdateUser = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/usuario\", data)\r\n .then((res: any) => {\r\n dispatch(updateUser(res.data.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Usuário atualizado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncDeleteUser = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.delete(`/usuario/${id}`)\r\n .then((res) => {\r\n dispatch(deleteUser(id));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Usuário deletado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncSearchUser = (nome: string, email: string) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(`/usuario/admin/pesquisa?nome=${nome}&email=${email}`)\r\n .then((res) => {\r\n dispatch(updateUsers(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\n//Profiles.\r\nexport const asyncGetProfiles = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/perfil\")\r\n .then((res) => {\r\n dispatch(updateProfiles(res.data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetProfilesToUser = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/perfil\")\r\n .then((res: any) => {\r\n const result: ProfileProps[] = [];\r\n res.data.map((r: any) =>\r\n result.push({\r\n idItem: r.id,\r\n descricao: r.dsPerfil,\r\n checked: false,\r\n })\r\n );\r\n dispatch(updateProfilesList(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetProfileById = async (id: number) => {\r\n let response = null;\r\n await GuaracampAPI.get(`/perfil/${id}`)\r\n .then((res) => {\r\n response = res.data;\r\n })\r\n .catch((error) => {});\r\n\r\n return response;\r\n};\r\n\r\nexport const asyncSearchProfile = (query: string) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(`/perfil/pesquisa?descricao=${query}`)\r\n .then((res) => {\r\n dispatch(updateProfiles(res.data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPostProfile = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/perfil\", data)\r\n .then((res: any) => {\r\n const profile = {\r\n id: res.data.data.id,\r\n dsPerfil: res.data.data.dsPerfil,\r\n modulos: res.data.data.perfisXmodulos,\r\n };\r\n\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Perfil criado com sucesso.\",\r\n })\r\n );\r\n\r\n dispatch(addProfile(profile));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncDeleteProfile = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n GuaracampAPI.delete(`/perfil/${id}`)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Perfil deletado com sucesso.\",\r\n })\r\n );\r\n\r\n dispatch(deleteProfile(id));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n /* message: 'Erro ao tentar deletar.' */\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const asyncUpdateProfile = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/perfil\", data)\r\n .then((res: any) => {\r\n const profile = {\r\n id: res.data.data.id,\r\n dsPerfil: res.data.data.dsPerfil,\r\n modulos: res.data.data.perfisXmodulos,\r\n };\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Perfil atualizado com sucesso.\",\r\n })\r\n );\r\n\r\n dispatch(updateProfile(profile));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\n//Ajuda\r\nexport const asyncGetTopics = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/ajuda\")\r\n .then((res) => {\r\n dispatch(updateTopics(res.data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {});\r\n };\r\n};\r\n\r\nexport const asyncPostTopic = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/ajuda\", data)\r\n .then((res: any) => {\r\n dispatch(addTopic(res.data.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Tópico de ajuda criado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncDeleteTopics = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.delete(`/ajuda/${id}`)\r\n .then((res) => {\r\n dispatch(deleteTopic(id));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Tópico deletado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetTopicById = async (id: number) => {\r\n let response = null;\r\n await GuaracampAPI.get(`/ajuda/${id}`)\r\n .then((res) => {\r\n response = res.data;\r\n })\r\n .catch((error) => {});\r\n\r\n return response;\r\n};\r\n\r\nexport const asyncUpdateTopic = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/ajuda\", data)\r\n .then((res: any) => {\r\n dispatch(updateTopic(res.data.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Tópico atualizado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\n/*Parameters*/\r\nexport const asyncGetParameters = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/parametro\")\r\n .then((res) => {\r\n dispatch(updateParameters(res.data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPutParameters = (data: any) => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.put(\"/parametro\", data)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Dados salvos com sucesso.\",\r\n })\r\n );\r\n dispatch(updateParameters(res.data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\n/* Terms And Policies */\r\nexport const asyncGetTermsAndPolicies = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/TermoPolitica\")\r\n .then((res) => {\r\n dispatch(updateTermsAndPolicies(res.data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPutTermsAndPolicies = (data: any) => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.put(\"/TermoPolitica\", data)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Termos e políticas salvos com sucesso.\",\r\n })\r\n );\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\n/*Modulos*/\r\nexport const asyncGetModules = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/modulo\")\r\n .then((res) => {\r\n dispatch(updateModules(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n","import { Sidebar } from \"primereact/sidebar\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../store\";\r\nimport { asyncGetUserById } from \"../../store/admin/admin.actions\";\r\n\r\nimport \"./styles.css\";\r\n\r\nconst MainMenu2 = () => {\r\n const [user, setUser] = useState();\r\n const modulos = useSelector((state: RootState) => state.admin.modulos);\r\n\r\n const idUsuario = Number(localStorage.getItem(\"@USER_ID_GUARACAMP\"));\r\n\r\n const getUser = async () => {\r\n const response = await asyncGetUserById(idUsuario);\r\n setUser(response);\r\n };\r\n\r\n useEffect(() => {\r\n if (idUsuario) {\r\n getUser();\r\n }\r\n }, []);\r\n\r\n const [visible, setVisible] = useState(false);\r\n const [subMenu, setSubmenu] = useState([\r\n { section: \"Usuários\", route: \"/admin/users\" },\r\n { section: \"Comandos\", route: \"/admin/users\" },\r\n { section: \"Testes\", route: \"/admin/users\" },\r\n ]);\r\n\r\n const financeiro = [\r\n { section: \"Sol. de Cadastro (Clientes)\", route: \"/approvals\" },\r\n ];\r\n\r\n const ti = [\r\n { section: \"Termos e Políticas\", route: \"/admin/termsAndPolicies\" },\r\n { section: \"Parâmetros\", route: \"/admin/parameters\" },\r\n { section: \"Perfis\", route: \"/admin/profiles\" },\r\n { section: \"Usuários\", route: \"/admin/users\" },\r\n ];\r\n\r\n const marketing = [\r\n { section: \"Banner Carrossel\", route: \"/marketing/bannercarrossel\" },\r\n { section: \"Imagens de Produtos\", route: \"/marketing/images\" },\r\n { section: \"Produtos Destaques\", route: \"/marketing/featured\" },\r\n { section: \"Cupons de Desconto\", route: \"/marketing/cupons\" },\r\n { section: \"Promoções\", route: \"/marketing/promocoes\" },\r\n {\r\n section: \"Pontos (Regras de Pontuação)\",\r\n route: \"/marketing/acumulodepontos\",\r\n },\r\n {\r\n section: \"Pontos (Regras de Resgate)\",\r\n route: \"/marketing/programadepontos\",\r\n },\r\n {\r\n section: \"Materiais de Merchandising\",\r\n route: \"/marketing/merchandising\",\r\n },\r\n { section: \"Sol. de Comodatos\", route: \"/comodatos\" },\r\n { section: \"Notificações\", route: \"/comercial/notificacoes\" },\r\n { section: \"Ajuda (FAQ)\", route: \"/admin/ajuda\" },\r\n ];\r\n\r\n const itemsSubMenu = {\r\n financeiro,\r\n marketing,\r\n ti,\r\n };\r\n\r\n const handleMouseLeave = (e: any) => {\r\n setVisible(false);\r\n };\r\n\r\n const handleMouseEnter = (e: any) => {\r\n if (e.target.id === \"financeiro\" || e.target.parentNode.id === \"financeiro\")\r\n setSubmenu(itemsSubMenu[\"financeiro\"]);\r\n\r\n if (e.target.id === \"ti\" || e.target.parentNode.id === \"ti\")\r\n setSubmenu(itemsSubMenu[\"ti\"]);\r\n\r\n if (e.target.id === \"marketing\" || e.target.parentNode.id === \"marketing\")\r\n setSubmenu(itemsSubMenu[\"marketing\"]);\r\n\r\n setVisible(true);\r\n };\r\n\r\n const handleClick = (route: string) => {\r\n window.location.pathname = route;\r\n };\r\n\r\n const administrativePerfil = user?.perfis.some(\r\n (perfil: any) => perfil.idPerfil === 74\r\n );\r\n\r\n const marketingPerfil = user?.perfis.some(\r\n (perfil: any) => perfil.idPerfil === 55\r\n );\r\n\r\n const financePerfil = user?.perfis.some(\r\n (perfil: any) => perfil.idPerfil === 46\r\n );\r\n\r\n const tiPerfil = user?.perfis.some((perfil: any) => perfil.idPerfil === 73);\r\n\r\n return (\r\n
\r\n setVisible(false)}\r\n showCloseIcon={false}\r\n >\r\n {subMenu.map((item, i) => (\r\n handleClick(item.route)}\r\n key={i}\r\n className=\"mainmenu2-item-submenu\"\r\n >\r\n {item.section}\r\n
\r\n ))}\r\n \r\n\r\n {(user?.perfis?.length === 0 || administrativePerfil) && (\r\n <>\r\n \r\n \r\n Financeiro\r\n \r\n \r\n \r\n Marketing\r\n \r\n \r\n \r\n TI\r\n \r\n \r\n )}\r\n {marketingPerfil && (\r\n \r\n \r\n Marketing\r\n \r\n )}\r\n {financePerfil && (\r\n \r\n \r\n Financeiro\r\n \r\n )}\r\n {tiPerfil && (\r\n \r\n \r\n TI\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MainMenu2;\r\n","import { Checkbox } from \"primereact/checkbox\"\r\nimport { ModulesProps, ProfileProps } from \"../../store/admin/admin.store\"\r\nimport './styles.css'\r\n\r\ninterface CheckboxDefaultProps {\r\n checkbox: ModulesProps | ProfileProps;\r\n disabled: boolean;\r\n handleCheckboxes: (e:any) => void;\r\n}\r\n\r\nconst CheckboxDefault: React.FC = ({ checkbox, disabled, handleCheckboxes }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CheckboxDefault\r\n","import { InputText } from \"primereact/inputtext\"\r\n\r\ninterface DefaultInputProps {\r\n label: string;\r\n value: string;\r\n onChange: React.Dispatch>\r\n disabled: boolean;\r\n type?: string;\r\n showLabel?: boolean;\r\n min?: any;\r\n required?: boolean;\r\n error?: string;\r\n maxLength?: number;\r\n}\r\n\r\n const DefaultInput: React.FC = ({ label, value, onChange, disabled, type, showLabel = true, min, required = false, error = '', maxLength}) => {\r\n return (\r\n \r\n \r\n onChange(e.target.value)} disabled={disabled} type={type} min={min} required={required} maxLength={maxLength} />\r\n {error !== undefined && error !== '' && {error}}\r\n \r\n ) \r\n}\r\n\r\n\r\nexport default DefaultInput\r\n","import React from \"react\";\r\n\r\nimport \"./styles.css\";\r\n\r\nimport { Oval } from \"react-loader-spinner\";\r\n\r\nconst ProgressLoad: React.FC = () => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProgressLoad;\r\n","import { ValidationError } from 'yup';\r\n\r\ninterface Errors {\r\n [key: string]: string;\r\n}\r\n\r\nexport default function getValidationErrors(err: ValidationError): Errors {\r\n const validationErrors: Errors = {};\r\n err.inner.forEach((error) => {\r\n if(typeof error.path !== 'undefined')\r\n validationErrors[error.path] = error.message;\r\n });\r\n\r\n return validationErrors;\r\n}","export enum ApprovalTypes {\r\n cadastro = 1,\r\n alteração,\r\n associacao,\r\n desassociacao\r\n}","import { Button } from \"primereact/button\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport CheckboxDefault from \"../../../../components/CheckboxDefault\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { RootState } from \"../../../../store\";\r\nimport {\r\n asyncGetProfileById,\r\n asyncGetUserById,\r\n asyncUpdateProfile,\r\n} from \"../../../../store/admin/admin.actions\";\r\nimport { ModulesProps } from \"../../../../store/admin/admin.store\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\n\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { StateProps } from \"../../../../enums\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\n\r\ninterface ProfileEditProps {\r\n id: number;\r\n}\r\n\r\nconst ProfileEdit: React.FC = ({ id }) => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [dsPerfil, setDsPerfil] = useState(\"\");\r\n const [modules, setModules] = useState([]);\r\n const [profile, setProfile] = useState();\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [user, setUser] = useState();\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n\r\n const [errors, setErrors] = useState({} as any);\r\n\r\n const getProfile = async () => {\r\n setLoading(true);\r\n const response = await asyncGetProfileById(id);\r\n setProfile(response);\r\n\r\n setVisible(true);\r\n setTimeout(() => {\r\n setLoading(false);\r\n }, 1500);\r\n };\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n const markCheckboxes = () => {\r\n const result = [...modules];\r\n for (let i = 0; i < result.length; i++) {\r\n for (let j = 0; j < profile?.modulos.length; j++) {\r\n if (result[i]?.idItem === profile?.modulos[j]?.idModulo) {\r\n if (result[i]) {\r\n result[i] = { ...result[i], checked: true };\r\n }\r\n }\r\n }\r\n }\r\n setModules(result);\r\n };\r\n markCheckboxes();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [profile?.modulos]);\r\n\r\n useEffect(() => {\r\n let result = profile;\r\n result = { ...result, dsPerfil: dsPerfil };\r\n setProfile(result);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dsPerfil]);\r\n\r\n useEffect(() => {\r\n setModules(admin.modulos);\r\n }, [admin.modulos]);\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n\r\n try {\r\n const profileModules: any = [];\r\n\r\n modules.map((module) => {\r\n if (module.checked)\r\n profileModules.push({\r\n idModulo: module.idItem,\r\n });\r\n return 0;\r\n });\r\n\r\n const profileEdit = {\r\n id: id,\r\n dsPerfil: profile?.dsPerfil,\r\n modulos: profileModules,\r\n };\r\n const schema = Yup.object().shape({\r\n dsPerfil: Yup.string().required(\"Descrição obrigatória.\"),\r\n });\r\n await schema.validate(profile, {\r\n abortEarly: false,\r\n });\r\n\r\n dispatch(asyncUpdateProfile(profileEdit));\r\n setModules(admin.modulos);\r\n setDsPerfil(\"\");\r\n } catch (error) {\r\n if (error instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(error));\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n setVisible(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n const handleCheckboxes = (event: any) => {\r\n const index = modules.findIndex((chk) => chk.idItem === event.target.value);\r\n const newArr = [...modules];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n setModules(newArr);\r\n };\r\n\r\n const handleCancelAccept = () => {\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n const handleCancelReject = () => {\r\n setVisible(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n confirmDialog({\r\n message: \"Você tem certeza que deseja fechar sem salvar a edição?\",\r\n header: \"Confirmação de edição de dados\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: handleCancelAccept,\r\n reject: handleCancelReject,\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n style: { width: \"60%\" },\r\n });\r\n };\r\n\r\n const idUsuario = Number(localStorage.getItem(\"@USER_ID_GUARACAMP\"));\r\n\r\n const getUser = async () => {\r\n const response = await asyncGetUserById(idUsuario);\r\n setUser(response);\r\n };\r\n\r\n useEffect(() => {\r\n if (idUsuario) {\r\n getUser();\r\n }\r\n }, []);\r\n\r\n const administrativePerfil = user?.perfis.find(\r\n (perfil: any) => perfil.idPerfil === 74\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Edição de Perfil\r\n

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

\r\n Defina as permissões do perfil\r\n

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : admin.modulos.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n modules.map((module, i) => (\r\n \r\n ))\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProfileEdit;\r\n","import React, { useEffect } from 'react'\r\n\r\nimport { Sidebar } from 'primereact/sidebar';\r\nimport { Button } from 'primereact/button';\r\nimport { useState } from 'react';\r\nimport DefaultInput from '../../../../components/DefaultInput';\r\nimport CheckboxDefault from '../../../../components/CheckboxDefault';\r\nimport { COLORS } from '../../../../constants';\r\nimport { ModulesProps } from '../../../../store/admin/admin.store';\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from '../../../../store';\r\nimport { asyncGetProfileById } from '../../../../store/admin/admin.actions';\r\nimport ProgressLoad from '../../../../components/ProgressLoad'\r\n\r\ninterface ProfileViewProps {\r\n id: number;\r\n}\r\n\r\nconst ProfileView: React.FC = ({ id }) => {\r\n const [ visible, setVisible ] = useState(false)\r\n const [ modules, setModules ] = useState([])\r\n const [ profile, setProfile ] = useState()\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n\r\n const getProfile = async () => {\r\n const response = await asyncGetProfileById(id)\r\n setProfile(response)\r\n setVisible(true)\r\n }\r\n\r\n useEffect(() => {\r\n const markCheckboxes = () => {\r\n const result = [...modules]\r\n for(let i = 0; i < result.length; i++){\r\n for(let j = 0; j < profile?.modulos.length; j++){\r\n if(result[i]?.idItem === profile?.modulos[j]?.idModulo){\r\n if(result[i]){\r\n result[i] = {...result[i], checked: true}\r\n }\r\n }\r\n }\r\n }\r\n setModules(result)\r\n }\r\n markCheckboxes()\r\n }, [profile?.modulos])\r\n\r\n useEffect(() => {\r\n setModules(admin.modulos)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [admin.modulos])\r\n\r\n const handleCheckboxes = (event: any) => {}\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProfileView\r\n","import { Button } from \"primereact/button\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport CheckboxDefault from \"../../../../components/CheckboxDefault\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { RootState } from \"../../../../store\";\r\nimport {\r\n asyncGetUserById,\r\n asyncGetUsers,\r\n asyncUpdateUser,\r\n} from \"../../../../store/admin/admin.actions\";\r\nimport { ProfileProps } from \"../../../../store/admin/admin.store\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { StateProps } from \"../../../../enums\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport { updateToaster } from \"../../../../store/helper/helper.store\";\r\nimport { ToasterTypes } from \"../../../../enums/ToasterTypes\";\r\n\r\ninterface UserEditProps {\r\n id: number;\r\n}\r\n\r\nconst UserEdit: React.FC = ({ id }) => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [nmUsuario, setNmUsuario] = useState(\"\");\r\n const [txEmail, setTxEmail] = useState(\"\");\r\n const [perfis, setPerfis] = useState([]);\r\n const [user, setUser] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n const [errors, setErrors] = useState({} as any);\r\n const [userDisabled, setUserDisabled] = useState();\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n\r\n const getUser = async () => {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await asyncGetUserById(id);\r\n setUser(response);\r\n\r\n setVisible(true);\r\n } catch {\r\n } finally {\r\n setTimeout(() => {\r\n setLoading(false);\r\n }, 2000);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const markCheckboxes = () => {\r\n const result = [...perfis];\r\n for (let i = 0; i < result.length; i++) {\r\n for (let j = 0; j < user?.perfis.length; j++) {\r\n if (result[i]?.idItem === user?.perfis[j]?.idPerfil) {\r\n if (result[i]) {\r\n result[i] = { ...result[i], checked: true };\r\n }\r\n }\r\n }\r\n }\r\n setPerfis(result);\r\n };\r\n markCheckboxes();\r\n }, [user?.perfis]);\r\n\r\n useEffect(() => {\r\n let result = user;\r\n result = { ...result, nmUsuario: nmUsuario };\r\n setUser(result);\r\n }, [nmUsuario]);\r\n\r\n useEffect(() => {\r\n let result = user;\r\n result = { ...result, txEmail: txEmail };\r\n setUser(result);\r\n }, [txEmail]);\r\n\r\n useEffect(() => {\r\n setPerfis(admin.profilesList);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [admin.profilesList]);\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n\r\n try {\r\n const userPerfil: any = [];\r\n perfis.map((module) => {\r\n if (module.checked)\r\n userPerfil.push({\r\n idPerfil: module.idItem,\r\n });\r\n });\r\n //retorno dentro do if, por isso da o erro de prototype. (precisa ter retorno)\r\n\r\n const UserEdit = {\r\n id: user?.id,\r\n nmUsuario: user?.nmUsuario,\r\n txEmail: user?.txEmail,\r\n perfis: userPerfil,\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n txEmail: Yup.string().required(\"Username obrigatório.\"),\r\n nmUsuario: Yup.string().required(\"Nome obrigatório.\"),\r\n });\r\n\r\n await schema.validate(user, {\r\n abortEarly: false,\r\n });\r\n\r\n if (userPerfil.length === 0) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: \"Perfil obrigatório.\",\r\n })\r\n );\r\n return;\r\n }\r\n\r\n dispatch(asyncUpdateUser(UserEdit));\r\n dispatch(asyncGetUsers());\r\n setVisible(false);\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 2000);\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n const handleCancelAccept = () => {\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n const handleCancelReject = () => {\r\n setVisible(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n confirmDialog({\r\n message: \"Você tem certeza que deseja fechar sem salvar a edição?\",\r\n header: \"Confirmação de edição de dados\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: handleCancelAccept,\r\n reject: handleCancelReject,\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n style: { width: \"60%\" },\r\n });\r\n };\r\n\r\n const handleCheckboxes = (event: any) => {\r\n const index = perfis.findIndex((chk) => chk.idItem === event.target.value);\r\n const newArr = [...perfis];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n setPerfis(newArr);\r\n };\r\n\r\n const idUsuario = Number(localStorage.getItem(\"@USER_ID_GUARACAMP\"));\r\n\r\n const getUserDisabled = async () => {\r\n const response = await asyncGetUserById(idUsuario);\r\n setUserDisabled(response);\r\n };\r\n\r\n useEffect(() => {\r\n if (idUsuario) {\r\n getUserDisabled();\r\n }\r\n }, []);\r\n\r\n const administrativePerfil = userDisabled?.perfis.find(\r\n (perfil: any) => perfil.idPerfil === 74\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Edição de Usuário\r\n

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

\r\n Defina os perfis do usuário\r\n

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : admin.users.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n perfis.map((module, i) => (\r\n \r\n ))\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default UserEdit;\r\n","import React, { useEffect } from 'react';\r\n\r\nimport { Sidebar } from 'primereact/sidebar';\r\nimport { Button } from 'primereact/button';\r\nimport { useState } from 'react';\r\nimport DefaultInput from '../../../../components/DefaultInput';\r\n// import '../styles.css'\r\nimport CheckboxDefault from '../../../../components/CheckboxDefault';\r\nimport { COLORS } from '../../../../constants';\r\nimport { ProfileProps } from '../../../../store/admin/admin.store';\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from '../../../../store';\r\nimport { asyncGetUserById } from '../../../../store/admin/admin.actions';\r\n\r\ninterface UserViewProps {\r\n id: number;\r\n}\r\n\r\nconst UserView: React.FC = ({ id }) => {\r\n const [visible, setVisible] = useState(false);\r\n const [nmUsuario, setNmUsuario] = useState('');\r\n const [txEmail, setTxEmail] = useState('');\r\n const [perfis, setPerfis] = useState([]);\r\n const [user, setUser] = useState();\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n\r\n const getUser = async () => {\r\n const response = await asyncGetUserById(id);\r\n setUser(response);\r\n setVisible(true);\r\n };\r\n\r\n useEffect(() => {\r\n markCheckboxes();\r\n }, [user?.perfis]);\r\n\r\n const markCheckboxes = () => {\r\n const result = [...perfis];\r\n for (let i = 0; i < result.length; i++) {\r\n for (let j = 0; j < user?.perfis.length; j++) {\r\n if (result[i]?.idItem === user?.perfis[j]?.idPerfil) {\r\n if (result[i]) {\r\n result[i] = { ...result[i], checked: true };\r\n }\r\n }\r\n }\r\n }\r\n setPerfis(result);\r\n };\r\n\r\n useEffect(() => {\r\n setPerfis(admin.profilesList);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [admin.profilesList]);\r\n\r\n const handleCheckboxes = (event: any) => {};\r\n\r\n return (\r\n
\r\n \r\n setVisible(false)}\r\n >\r\n
\r\n setVisible(false)}\r\n />\r\n \r\n Visualização de Usuário\r\n

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

\r\n Defina os perfis do usuário\r\n

\r\n
\r\n {perfis.map((module, i) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default UserView;\r\n","import { Button } from \"primereact/button\";\r\nimport ProfileEdit from \"../../pages/Admin/Profiles/ProfileEdit\";\r\nimport ProfileView from \"../../pages/Admin/Profiles/ProfileView\";\r\nimport UserEdit from \"../../pages/Admin/Users/UserEdit\";\r\nimport UserView from \"../../pages/Admin/Users/UserView\";\r\n\r\n//import { SidebarTypes } from '../../enums/SidebarTypes';\r\n//import SidebarV2 from '../SiderbarV2';\r\nimport \"./styles.css\";\r\n\r\ninterface CardListProps {\r\n name: string;\r\n email?: string;\r\n icon?: string;\r\n status?: boolean;\r\n inputs: any[];\r\n route: string;\r\n idItem: number;\r\n handleDelete: (id: any) => void;\r\n disabled: boolean;\r\n}\r\n\r\nconst CardList = ({\r\n name,\r\n email,\r\n icon,\r\n status,\r\n inputs,\r\n route,\r\n idItem,\r\n handleDelete,\r\n disabled,\r\n}: CardListProps) => {\r\n return (\r\n
\r\n
\r\n {route !== \"profile\" && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n
\r\n

{name}

\r\n {email}\r\n
\r\n
\r\n
\r\n
\r\n {route === \"profile\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n {route === \"profile\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CardList;\r\n","import React, { Dispatch, SetStateAction } from 'react';\r\nimport './style.css';\r\n\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Button } from 'primereact/button';\r\n\r\nimport { COLORS } from '../../constants';\r\n\r\ninterface InputFilter {\r\n label: string;\r\n type: string;\r\n onChange: Dispatch>;\r\n value: string;\r\n}\r\n\r\ninterface FilterProps {\r\n inputs: InputFilter[];\r\n handleClickFilter: ()=> void;\r\n handleClickClean: ()=> void;\r\n}\r\n\r\nconst Filter: React.FC = ({ inputs, handleClickFilter, handleClickClean }) => {\r\n return (\r\n
\r\n
\r\n {inputs.length <= 3 &&\r\n inputs.map((input, i) => {\r\n switch (input.type) {\r\n case 'text':\r\n return (\r\n
\r\n \r\n input.onChange(e.target.value)}\r\n />\r\n
\r\n );\r\n default:\r\n return null;\r\n }\r\n })}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\nexport default Filter;\r\n","import React, { useEffect, useRef } from \"react\";\r\n\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport { Button } from \"primereact/button\";\r\nimport { useState } from \"react\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\n// import '../styles.css'\r\nimport CheckboxDefault from \"../../../../components/CheckboxDefault\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { ProfileProps } from \"../../../../store/admin/admin.store\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../../store\";\r\nimport {\r\n asyncGetProfilesToUser,\r\n asyncPostUser,\r\n} from \"../../../../store/admin/admin.actions\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { StateProps } from \"../../../../enums\";\r\n\r\nconst UserCreate = () => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [txEmail, setTxEmail] = useState(\"\");\r\n const [nmUsuario, setNmUsuario] = useState(\"\");\r\n const [perfis, setPerfis] = useState([]);\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n const [errors, setErrors] = useState({} as any);\r\n const [errorMessage, setErrorMessage] = useState(false);\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n useEffect(() => {\r\n dispatch(asyncGetProfilesToUser());\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n setPerfis(admin.profilesList);\r\n }, [admin.profilesList]);\r\n\r\n const userModules: any = [];\r\n perfis.map((module) => {\r\n if (module.checked)\r\n userModules.push({\r\n idPerfil: module.idItem,\r\n });\r\n return 0;\r\n });\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n setErrorMessage(true);\r\n\r\n try {\r\n const userModules: any = [];\r\n perfis.map((module) => {\r\n if (module.checked)\r\n userModules.push({\r\n idPerfil: module.idItem,\r\n });\r\n return 0;\r\n });\r\n\r\n const user = {\r\n txEmail: txEmail,\r\n nmUsuario: nmUsuario,\r\n perfis: userModules,\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n txEmail: Yup.string()\r\n .email(\"Deve ser um e-mail válido\")\r\n .required(\"Username obrigatório.\"),\r\n nmUsuario: Yup.string().required(\"Nome obrigatório.\"),\r\n perfis: Yup.array().min(1, \"Perfil obrigatório.\"),\r\n });\r\n\r\n await schema.validate(user, {\r\n abortEarly: false,\r\n });\r\n\r\n dispatch(asyncPostUser(user));\r\n setPerfis(admin.profilesList);\r\n setNmUsuario(\"\");\r\n setTxEmail(\"\");\r\n setVisible(false);\r\n setErrorMessage(false);\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n const handleCheckboxes = (event: any) => {\r\n const index = perfis.findIndex((chk) => chk.idItem === event.target.value);\r\n const newArr = [...perfis];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n setPerfis(newArr);\r\n };\r\n\r\n const handleCancel = () => {\r\n setTxEmail(\"\");\r\n setNmUsuario(\"\");\r\n setPerfis(admin.profilesList);\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n return (\r\n
\r\n setVisible(true)}\r\n className=\"sidebarv2-open-button\"\r\n color=\"#AA0061\"\r\n />\r\n \r\n
\r\n \r\n \r\n Cadastrar Usuário\r\n

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

\r\n Defina os perfis do usuário:\r\n

\r\n
\r\n {perfis.map((module, i) => (\r\n \r\n ))}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default UserCreate;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport CardList from \"../../../components/CardList\";\r\nimport \"./styles.css\";\r\nimport Filter from \"../../../components/Filter\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\nimport {\r\n asyncDeleteUser,\r\n asyncGetUserById,\r\n asyncGetUsers,\r\n asyncSearchUser,\r\n} from \"../../../store/admin/admin.actions\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport UserCreate from \"./UserCreate\";\r\nimport { Oval } from \"react-loader-spinner\";\r\nimport { updateLoading } from \"../../../store/loading/loading.store\";\r\n\r\nconst AdminUsers: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [txEmail, setTxEmail] = useState(\"\");\r\n const [nmUsuario, setNmUsuario] = useState(\"\");\r\n const [newEmail, setNewEmail] = useState(\"\");\r\n const [newName, setNewName] = useState(\"\");\r\n const [user, setUser] = useState();\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n confirmDialog({\r\n message: \"Você quer deletar este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDelete(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDelete = (id: number) => {\r\n if (id) dispatch(asyncDeleteUser(id));\r\n };\r\n\r\n const passInputs = [\r\n {\r\n type: \"text\",\r\n label: \"Username(Email)\",\r\n value: txEmail,\r\n onChange: setTxEmail,\r\n },\r\n {\r\n type: \"text\",\r\n label: \"Nome\",\r\n value: nmUsuario,\r\n onChange: setNmUsuario,\r\n },\r\n ];\r\n\r\n const passInputsSideBar = [\r\n {\r\n type: \"text\",\r\n label: \"Username(Email)\",\r\n value: newEmail,\r\n onChange: setNewEmail,\r\n },\r\n {\r\n type: \"text\",\r\n label: \"Nome\",\r\n value: newName,\r\n onChange: setNewName,\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetUsers());\r\n }, [dispatch]);\r\n\r\n const handleClickFilter = () => {\r\n if (nmUsuario !== \"\" || txEmail !== \"\") {\r\n dispatch(updateLoading(true));\r\n dispatch(asyncSearchUser(nmUsuario, txEmail));\r\n } else {\r\n dispatch(asyncGetUsers());\r\n dispatch(updateLoading(true));\r\n }\r\n };\r\n\r\n const handleClickClean = () => {\r\n setTxEmail(\"\");\r\n setNmUsuario(\"\");\r\n dispatch(asyncGetUsers());\r\n };\r\n\r\n const idUsuario = Number(localStorage.getItem(\"@USER_ID_GUARACAMP\"));\r\n\r\n const getUser = async () => {\r\n const response = await asyncGetUserById(idUsuario);\r\n setUser(response);\r\n };\r\n\r\n useEffect(() => {\r\n if (idUsuario) {\r\n getUser();\r\n }\r\n }, []);\r\n\r\n const administrativePerfil = user?.perfis.find(\r\n (perfil: any) => perfil.idPerfil === 74\r\n );\r\n\r\n return (\r\n
\r\n

Usuários

\r\n \r\n \r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : admin.users.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n admin.users.map((user, i) => (\r\n \r\n ))\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default AdminUsers;\r\n","import { Dispatch } from 'redux';\r\nimport { SelectOptions } from '../../components/DefaultSelect';\r\nimport GuaracampAPI from '../../services/GuaracampAPI';\r\nimport { updateLoading } from '../loading/loading.store';\r\nimport {\r\n setCurrentApproval,\r\n updateAppData,\r\n updateApprovals,\r\n updateConfirmData,\r\n updateErpData,\r\n updatePreData,\r\n updateSerproData,\r\n updateStatus,\r\n updateTypes,\r\n} from './approvals.store';\r\n\r\nexport const getApprovals = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get('/solicitacaocadastro?pagina=1®istros=500')\r\n .then((res: any) => {\r\n dispatch(updateApprovals(res.data.lista));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const getApprovalById = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(`/solicitacaocadastro/${id}`)\r\n .then((res: any) => {\r\n dispatch(setCurrentApproval(res.data));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const getAppData = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(`/clientes/app/${id}`)\r\n .then((res: any) => {\r\n dispatch(updateAppData(res.data));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetAppData = async (id: number) => {\r\n try {\r\n const retorno = await GuaracampAPI.get(`/clientes/app/${id}`);\r\n return retorno;\r\n } catch (error) {\r\n throw error;\r\n }\r\n};\r\n\r\nexport const asyncGetPreData = async (id: number) => {\r\n try {\r\n const retorno = await GuaracampAPI.get(`/precadastros/${id}`);\r\n return retorno;\r\n } catch (error) {\r\n throw error;\r\n }\r\n};\r\n\r\nexport const getPostRegisterData = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(`/precadastros/${id}`)\r\n .then((res: any) => {\r\n dispatch(updatePreData(res.data));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetErpData = async (id: number) => {\r\n try {\r\n const retorno = await GuaracampAPI.get(`/clientes/erp/documento/${id}`);\r\n return retorno;\r\n } catch (error) {\r\n throw error;\r\n }\r\n};\r\n\r\nexport const getSerproData = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(`/clientes/serpro/${id}`)\r\n .then((res: any) => {\r\n dispatch(updateSerproData(res.data));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const seacrhApprovals = (data: any) => {\r\n const type = data.type ? `&tipo=${data.type}` : '';\r\n const status = data.status ? `&status=${data.status}` : '';\r\n const document = data.document ? `&documento=${data.document}` : '';\r\n\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\r\n `/solicitacaocadastro/pesquisa?pagina=1®istros=500${type}${status}${document}`\r\n )\r\n .then((res: any) => {\r\n dispatch(updateApprovals(res.data.lista));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const getApprovalTypes = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get('/tiposolicitacaocadastro')\r\n .then(async (res: any) => {\r\n const selectOptions = (await res.data.map((v: any) => {\r\n return { name: v.dsTipoSolicitacaoCadastro, value: v.id };\r\n })) as SelectOptions[];\r\n dispatch(updateTypes(selectOptions));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const getApprovalStatus = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get('/statussolicitacaocadastro')\r\n .then(async (res: any) => {\r\n const selectOptions = (await res.data.map((v: any) => {\r\n return { name: v.dsStatusSolicitacaoCadastro, value: v.id };\r\n })) as SelectOptions[];\r\n dispatch(updateStatus(selectOptions));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const approve = async (data: any) => {\r\n let response = null;\r\n await GuaracampAPI.post('/solicitacaocadastro/aprovacao', data)\r\n .then(async (res: any) => {\r\n response = res;\r\n })\r\n .catch((error) => {\r\n console.error({\r\n msg: 'Erro ao aprovar solicitação',\r\n error: error.response.data,\r\n status: error.response.status,\r\n });\r\n });\r\n return response;\r\n};\r\n\r\nexport const disapprove = async (idApprove: number) => {\r\n let response: any;\r\n await GuaracampAPI.post(`/solicitacaocadastro/${idApprove}/reprovacao`)\r\n .then(async (res: any) => {\r\n response = res;\r\n })\r\n .catch((error) => {\r\n throw error;\r\n });\r\n\r\n return response;\r\n};\r\n","export function onlyLetters(v: any) {\r\n if(!v) return\r\n v = v.replace(/[^a-zA-Z.ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝŔÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŕ ]/g, \"\") \r\n return v;\r\n}\r\n\r\nexport function onlyNumbers(v: any) {\r\n if(!v) return\r\n v = v.replace(/\\D/g, \"\") \r\n return v;\r\n}\r\n\r\nexport function phoneMask(v: any) {\r\n if(!v) return\r\n v = v.replace(/\\D/g, \"\") \r\n v = v.replace(/^(\\d\\d)(\\d)/g, \"($1) $2\") \r\n v = v.replace(/(\\d{4})(\\d)/, \"$1-$2\")\r\n return v;\r\n}\r\n\r\nexport function cellMask(v: any) {\r\n if(!v) return\r\n v = v.replace(/\\D/g, \"\") \r\n v = v.replace(/^(\\d\\d)(\\d)/g, \"($1) $2\") \r\n v = v.replace(/(\\d{5})(\\d)/, \"$1-$2\")\r\n return v;\r\n}\r\n\r\nexport function cpfCnpjMask(v: any) {\r\n if(!v) return\r\n\r\n v.replace(/\\D/g, '');\r\n \r\n if (v.length < 14) { \r\n v = v.replace(/\\D/g, \"\");\r\n v = v.replace(/(\\d{3})(\\d)/, \"$1.$2\")\r\n v = v.replace(/(\\d{3})(\\d)/, \"$1.$2\")\r\n v = v.replace(/(\\d{3})(\\d{1,2})$/, \"$1-$2\")\r\n \r\n } else { \r\n v = v.replace(/\\D/g, \"\")\r\n v = v.replace(/^(\\d{2})(\\d)/, \"$1.$2\")\r\n v = v.replace(/^(\\d{2})\\.(\\d{3})(\\d)/, \"$1.$2.$3\")\r\n v = v.replace(/\\.(\\d{3})(\\d)/, \".$1/$2\")\r\n v = v.replace(/(\\d{4})(\\d)/, \"$1-$2\")\r\n }\r\n \r\n return v\r\n}\r\n\r\nexport function cepMask(v: any) {\r\n if(!v) return\r\n\r\n v = v.replace(/\\D/g, \"\")\r\n v = v.replace(/^(\\d{5})(\\d)/, \"$1-$2\")\r\n return v\r\n}\r\n\r\nexport function validateCpfCnpj(val: any) {\r\n if (val.length === 14) {\r\n var cpf = val.trim();\r\n \r\n cpf = cpf.replace(/\\./g, '');\r\n cpf = cpf.replace('-', '');\r\n cpf = cpf.split('');\r\n \r\n var v1 = 0;\r\n var v2 = 0;\r\n var aux = false;\r\n \r\n for (let i = 1; cpf.length > i; i++) {\r\n if (cpf[i - 1] !== cpf[i]) {\r\n aux = true; \r\n }\r\n } \r\n \r\n if (aux === false) {\r\n return false; \r\n } \r\n \r\n for (let i = 0, p = 10; (cpf.length - 2) > i; i++, p--) {\r\n v1 += cpf[i] * p; \r\n } \r\n \r\n v1 = ((v1 * 10) % 11);\r\n \r\n if (v1 === 10) {\r\n v1 = 0; \r\n }\r\n \r\n if (v1 !== cpf[9]) {\r\n return false; \r\n } \r\n \r\n for (let i = 0, p = 11; (cpf.length - 1) > i; i++, p--) {\r\n v2 += cpf[i] * p; \r\n } \r\n \r\n v2 = ((v2 * 10) % 11);\r\n \r\n if (v2 === 10) {\r\n v2 = 0; \r\n }\r\n \r\n if (v2 !== cpf[10]) {\r\n return false; \r\n } else { \r\n return true; \r\n }\r\n } else if (val.length === 18) {\r\n var cnpj = val.trim();\r\n \r\n cnpj = cnpj.replace(/\\./g, '');\r\n cnpj = cnpj.replace('-', '');\r\n cnpj = cnpj.replace('/', ''); \r\n cnpj = cnpj.split(''); \r\n \r\n let v1 = 0;\r\n let v2 = 0;\r\n let aux = false;\r\n \r\n for (let i = 1; cnpj.length > i; i++) { \r\n if (cnpj[i - 1] !== cnpj[i]) { \r\n aux = true; \r\n } \r\n } \r\n \r\n if (aux === false) { \r\n return false; \r\n }\r\n \r\n for (let i = 0, p1 = 5, p2 = 13; (cnpj.length - 2) > i; i++, p1--, p2--) {\r\n if (p1 >= 2) { \r\n v1 += cnpj[i] * p1; \r\n } else { \r\n v1 += cnpj[i] * p2; \r\n } \r\n } \r\n \r\n v1 = (v1 % 11);\r\n \r\n if (v1 < 2) { \r\n v1 = 0; \r\n } else { \r\n v1 = (11 - v1); \r\n } \r\n \r\n if (v1 !== cnpj[12]) { \r\n return false; \r\n } \r\n \r\n for (let i = 0, p1 = 6, p2 = 14; (cnpj.length - 1) > i; i++, p1--, p2--) { \r\n if (p1 >= 2) { \r\n v2 += cnpj[i] * p1; \r\n } else { \r\n v2 += cnpj[i] * p2; \r\n } \r\n }\r\n \r\n v2 = (v2 % 11); \r\n \r\n if (v2 < 2) { \r\n v2 = 0;\r\n } else { \r\n v2 = (11 - v2); \r\n } \r\n \r\n if (v2 !== cnpj[13]) { \r\n return false; \r\n } else { \r\n return true; \r\n }\r\n } else {\r\n return false;\r\n }\r\n}","export enum StatusApprovals {\r\n analise = 1,\r\n aprovado,\r\n reprovado,\r\n desassociado,\r\n}\r\n","import { Button } from 'primereact/button';\r\nimport { confirmDialog } from 'primereact/confirmdialog';\r\nimport React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { ApprovalTypes } from '../../enums/ApprovalsTypes';\r\nimport { ToasterTypes } from '../../enums/ToasterTypes';\r\nimport GuaracampAPI from '../../services/GuaracampAPI';\r\nimport { RootState } from '../../store';\r\nimport { approve, disapprove } from '../../store/approvals/approvals.actions';\r\nimport { updateToaster } from '../../store/helper/helper.store';\r\nimport { cellMask } from '../../util/mask';\r\nimport './styles.css';\r\n\r\nconst ApprovalUserInfo = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { currentApproval, evaluation } = useSelector(\r\n (state: RootState) => state.approvals\r\n );\r\n\r\n const styles = {\r\n actions: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n infoText: {\r\n margin: '10px 0',\r\n },\r\n };\r\n\r\n const disaproveConfirm = (e: any) => {\r\n confirmDialog({\r\n message: 'Você quer reprovar esta solicitação?',\r\n header: 'Confirmação',\r\n icon: 'pi pi-info-circle',\r\n acceptClassName: 'p-button-success',\r\n accept: handleDisapprove,\r\n acceptLabel: 'Sim',\r\n rejectLabel: 'Não',\r\n });\r\n };\r\n\r\n const acceptConfirm = (e: any) => {\r\n confirmDialog({\r\n message: 'Você quer aprovar esta solicitação?',\r\n header: 'Confirmação',\r\n icon: 'pi pi-info-circle',\r\n acceptClassName: 'p-button-success',\r\n accept: handleApprove,\r\n acceptLabel: 'Sim',\r\n rejectLabel: 'Não',\r\n });\r\n };\r\n\r\n const handleDisapprove = async () => {\r\n try {\r\n const response: any = await disapprove(currentApproval.id);\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: 'Sucesso',\r\n message: 'Alteração realizada com sucesso',\r\n })\r\n );\r\n if (response.status == 200) {\r\n history.push('/approvals');\r\n }\r\n } catch (error: any) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: 'Erro',\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n }\r\n };\r\n\r\n const handleApprove = async () => {\r\n if (\r\n currentApproval.idTipoSolicitacao === ApprovalTypes.cadastro &&\r\n !evaluation.confirm?.nmCliente\r\n ) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: 'Error',\r\n message: 'Por favor, preencha todos os campos obrigatórios',\r\n })\r\n );\r\n\r\n return;\r\n }\r\n\r\n try {\r\n const approveData = {\r\n id: currentApproval.id,\r\n cliente: {\r\n ...evaluation.confirm,\r\n idSolicitacaoCadastro: currentApproval.id,\r\n\r\n //txCpfCnpj: evaluation.confirm.txCpfCnpj,\r\n //numeroDocumento: evaluation.confirm.numeroDocumento,\r\n },\r\n };\r\n const response: any = await GuaracampAPI.post(\r\n '/solicitacaocadastro/aprovacao',\r\n approveData\r\n );\r\n\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: 'Sucesso',\r\n message: 'Aprovação realizada com sucesso.',\r\n })\r\n );\r\n\r\n if (response.status == 200) {\r\n history.push('/approvals');\r\n }\r\n } catch (error: any) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: 'Erro',\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {currentApproval && (\r\n
\r\n \r\n Nome Completo: \r\n {currentApproval?.usuarioSolicitante.nmUsuario}\r\n \r\n \r\n E-mail: \r\n {currentApproval?.usuarioSolicitante.txEmail}\r\n \r\n \r\n Celular: \r\n {cellMask(currentApproval?.usuarioSolicitante.txCelular)}\r\n \r\n
\r\n )}\r\n {currentApproval.idTipoSolicitacao !== ApprovalTypes.desassociacao &&\r\n currentApproval.status.id === 1 && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ApprovalUserInfo;\r\n","import { InputText } from 'primereact/inputtext';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { ApprovalTypes } from '../../../enums/ApprovalsTypes';\r\nimport { ToasterTypes } from '../../../enums/ToasterTypes';\r\nimport { RootState } from '../../../store';\r\nimport {\r\n asyncGetAppData,\r\n asyncGetErpData,\r\n asyncGetPreData,\r\n} from '../../../store/approvals/approvals.actions';\r\nimport {\r\n updateAppData,\r\n updateErpData,\r\n updatePreData,\r\n} from '../../../store/approvals/approvals.store';\r\nimport { updateToaster } from '../../../store/helper/helper.store';\r\nimport { cellMask, cepMask, cpfCnpjMask, phoneMask } from '../../../util/mask';\r\nimport '../../FieldGroup/styles.css';\r\nimport ProgressLoad from '../../ProgressLoad';\r\nimport '../styles.css';\r\n\r\ninterface ApprovallAppProps {\r\n approval?: any;\r\n}\r\n\r\nconst ApprovalApp: React.FC = ({ approval }) => {\r\n const dispatch = useDispatch();\r\n const [data, setData] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const [numeroDocumento, setNumeroDocumento] = useState('');\r\n const approvals = useSelector((state: RootState) => state.approvals);\r\n\r\n const handleInput = (e: any) => {};\r\n\r\n const getAppData = async (id: number) => {\r\n let request = await asyncGetAppData(id)\r\n .then((value: any) => {\r\n if (value.data === null) {\r\n setData(null);\r\n } else {\r\n dispatch(updateAppData(value.data));\r\n setNumeroDocumento(\r\n value.data?.numeroDocumento\r\n ? value.data?.numeroDocumento\r\n : value.data?.txCpfCnpj\r\n );\r\n setData(value.data);\r\n }\r\n })\r\n .catch((error: any) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: 'Erro',\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n\r\n const getPreData = async (id: number) => {\r\n setLoading(true);\r\n let request = await asyncGetPreData(id)\r\n .then((value: any) => {\r\n if (value.data === null) {\r\n setData(null);\r\n } else {\r\n dispatch(updatePreData(value.data));\r\n setNumeroDocumento(value.data.txCpfCnpj);\r\n setData(value.data);\r\n }\r\n })\r\n .catch((error: any) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: 'Erro',\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const getErpData = async (id: number) => {\r\n setLoading(true);\r\n\r\n let request = await asyncGetErpData(id)\r\n .then((value: any) => {\r\n const dadosDoEnpoint = value.data;\r\n const dadosERP = {\r\n enderecos: [\r\n {\r\n cdUf: dadosDoEnpoint.txUfPrincipal,\r\n id: dadosDoEnpoint.id,\r\n // idClientePreCadastro: 20319,\r\n idTipoEndereco: 1,\r\n idTipoEnderecoNavigation: null,\r\n nmBairro: dadosDoEnpoint.txBairroPrincipal,\r\n nmCidade: dadosDoEnpoint.txMunicipioPrincipal,\r\n txCep: dadosDoEnpoint.txCepPrincipal,\r\n txComplemento: dadosDoEnpoint.txComplementoPrincipal,\r\n txLogradouro: dadosDoEnpoint.txEnderecoPrincipal,\r\n txNumero: '',\r\n txPontoReferencia: dadosDoEnpoint.txComplementoPrincipal,\r\n },\r\n {\r\n cdUf: dadosDoEnpoint.txUfEntrega,\r\n id: dadosDoEnpoint.id,\r\n // idClientePreCadastro: 20319,\r\n idTipoEndereco: 2,\r\n idTipoEnderecoNavigation: null,\r\n nmBairro: dadosDoEnpoint.txBairroEntrega,\r\n nmCidade: dadosDoEnpoint.txMunicipioEntrega,\r\n txCep: dadosDoEnpoint.txCepEntrega,\r\n txComplemento: dadosDoEnpoint.txComplementoEntrega,\r\n txLogradouro: dadosDoEnpoint.txEnderecoEntrega,\r\n txNumero: '',\r\n txPontoReferencia: dadosDoEnpoint.txComplementoEntrega,\r\n },\r\n ],\r\n id: dadosDoEnpoint.id,\r\n idSolicitacaoCadastro: '',\r\n idTipoEstabelecimento: Number(dadosDoEnpoint.idTipoEstabelecimento),\r\n idTipoPessoa: Number(dadosDoEnpoint.idTipoPessoa),\r\n nmCliente: dadosDoEnpoint.nmCliente,\r\n nmFantasia: dadosDoEnpoint.nmFantasia,\r\n tipoEstabelecimento: {\r\n cdTipoEstabelecimentoErp: dadosDoEnpoint.cdTipoEstabelecimento,\r\n dsTipoEstabelecimento: dadosDoEnpoint.dsTipoEstabelecimento,\r\n id: Number(dadosDoEnpoint.idTipoEstabelecimento),\r\n },\r\n //não tem os tipos de estabelecimento quando vem do\r\n tipoPessoa: {\r\n dsTipoPessoa: dadosDoEnpoint.dsTipoPessoa,\r\n cdTipoPessoa: dadosDoEnpoint.cdCliente,\r\n id: Number(dadosDoEnpoint.idTipoPessoa),\r\n },\r\n txCelular: dadosDoEnpoint.txDddCelular + dadosDoEnpoint.txCelular,\r\n txCpfCnpj: dadosDoEnpoint.txCpfCnpj,\r\n txEmail: dadosDoEnpoint.txEmail,\r\n txTelefone: dadosDoEnpoint.txDdd + dadosDoEnpoint.txTelefone,\r\n };\r\n if (dadosDoEnpoint) {\r\n dispatch(updateErpData(dadosERP));\r\n }\r\n })\r\n .catch(() => {})\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (approval.idTipoSolicitacao === ApprovalTypes.cadastro) {\r\n getPreData(approval.idClientePreCadastro);\r\n } else {\r\n getAppData(approval.idClienteApp);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (approvals.evaluation.pre) {\r\n getErpData(approvals.evaluation.pre.txCpfCnpj);\r\n }\r\n }, [approvals.evaluation.pre]);\r\n\r\n return (\r\n <>\r\n {loading && }\r\n {!loading && (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n <>\r\n
\r\n

Dados

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Endereço de Cadastro

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Endereço de Entrega

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ApprovalApp;\r\n","import { InputText } from \"primereact/inputtext\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { AppData } from \"..\";\r\nimport { ApprovalTypes } from \"../../../enums/ApprovalsTypes\";\r\nimport { ToasterTypes } from \"../../../enums/ToasterTypes\";\r\nimport { RootState } from \"../../../store\";\r\nimport { asyncGetErpData } from \"../../../store/approvals/approvals.actions\";\r\nimport { updateErpData } from \"../../../store/approvals/approvals.store\";\r\nimport { updateToaster } from \"../../../store/helper/helper.store\";\r\nimport { cellMask, cepMask, cpfCnpjMask, phoneMask } from \"../../../util/mask\";\r\nimport \"../../FieldGroup/styles.css\";\r\nimport \"../styles.css\";\r\n\r\ninterface ApprovallAppProps {\r\n approval?: any;\r\n}\r\n\r\nconst ApprovalApp: React.FC = ({ approval }) => {\r\n const dispatch = useDispatch();\r\n const [data, setData] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const approvals = useSelector((state: RootState) => state.approvals);\r\n const [numeroDocumento, setNumeroDocumento] = useState(\"\");\r\n\r\n const handleInput = (e: any) => {};\r\n\r\n const getErpData = async (id: number) => {\r\n setLoading(true);\r\n\r\n let request = await asyncGetErpData(id)\r\n .then((value: any) => {\r\n if (value.data === null) {\r\n setData(null);\r\n } else {\r\n const dadosDoEnpoint = value.data;\r\n const dadosERP = {\r\n enderecos: [\r\n {\r\n cdUf: dadosDoEnpoint.txUfPrincipal,\r\n id: dadosDoEnpoint.id,\r\n // idClientePreCadastro: 20319,\r\n idTipoEndereco: 1,\r\n idTipoEnderecoNavigation: null,\r\n nmBairro: dadosDoEnpoint.txBairroPrincipal,\r\n nmCidade: dadosDoEnpoint.txMunicipioPrincipal,\r\n txCep: dadosDoEnpoint.txCepPrincipal,\r\n txComplemento: dadosDoEnpoint.txComplementoPrincipal,\r\n txLogradouro: dadosDoEnpoint.txEnderecoPrincipal,\r\n txNumero: \"\",\r\n txPontoReferencia: dadosDoEnpoint.txComplementoPrincipal,\r\n },\r\n {\r\n cdUf: dadosDoEnpoint.txUfEntrega,\r\n id: dadosDoEnpoint.id,\r\n // idClientePreCadastro: 20319,\r\n idTipoEndereco: 2,\r\n idTipoEnderecoNavigation: null,\r\n nmBairro: dadosDoEnpoint.txBairroEntrega,\r\n nmCidade: dadosDoEnpoint.txMunicipioEntrega,\r\n txCep: dadosDoEnpoint.txCepEntrega,\r\n txComplemento: dadosDoEnpoint.txComplementoEntrega,\r\n txLogradouro: dadosDoEnpoint.txEnderecoEntrega,\r\n txNumero: \"\",\r\n txPontoReferencia: dadosDoEnpoint.txComplementoEntrega,\r\n },\r\n ],\r\n id: dadosDoEnpoint.id,\r\n idSolicitacaoCadastro: \"\",\r\n idTipoEstabelecimento: null,\r\n idTipoPessoa: null,\r\n nmCliente: dadosDoEnpoint.nmCliente,\r\n nmFantasia: dadosDoEnpoint.nmFantasia,\r\n tipoEstabelecimento: {\r\n cdTipoEstabelecimentoErp: dadosDoEnpoint.cdTipoEstabelecimento,\r\n dsTipoEstabelecimento: dadosDoEnpoint.dsTipoEstabelecimento,\r\n id: null,\r\n },\r\n //não tem os tipos de estabelecimento quando vem do\r\n tipoPessoa: {\r\n dsTipoPessoa: dadosDoEnpoint.dsTipoPessoa,\r\n cdTipoPessoa: null,\r\n id: null,\r\n },\r\n txCelular: dadosDoEnpoint.txDddCelular + dadosDoEnpoint.txCelular,\r\n txCpfCnpj: dadosDoEnpoint.txCpfCnpj,\r\n txEmail: dadosDoEnpoint.txEmail,\r\n txTelefone: dadosDoEnpoint.txDdd + dadosDoEnpoint.txTelefone,\r\n };\r\n dispatch(updateErpData(dadosERP));\r\n setNumeroDocumento(\r\n value.data?.numeroDocumento\r\n ? value.data?.numeroDocumento\r\n : value.data?.txCpfCnpj\r\n );\r\n setData(value.data);\r\n }\r\n })\r\n .catch(() => {})\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getErpData(approvals.evaluation.pre.txCpfCnpj);\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n <>\r\n
\r\n

Dados

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Endereço de Cadastro

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Endereço de Entrega

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApprovalApp;\r\n","import { RadioButton } from 'primereact/radiobutton';\r\nimport { Dispatch, SetStateAction } from 'react';\r\nimport './styles.css'\r\n\r\ninterface DefaultRadioButtonProps {\r\n label: string;\r\n value: string;\r\n name: string;\r\n onChange: Dispatch>;\r\n disabled?: boolean\r\n}\r\n\r\nconst DefaultRadioButton: React.FC = ({ label, value, onChange, name, disabled }) => {\r\n return (\r\n
\r\n onChange(name)}\r\n checked={value === name}\r\n disabled={disabled}\r\n />\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default DefaultRadioButton\r\n","import { InputText } from \"primereact/inputtext\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { AppData, EnderecoApp } from \"..\";\r\nimport DefaultRadioButton from \"../../DefaultRadioButton\";\r\nimport \"../../FieldGroup/styles.css\";\r\nimport \"../styles.css\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\nimport { cellMask, cepMask, cpfCnpjMask, phoneMask } from \"../../../util/mask\";\r\nimport { updateConfirmData } from \"../../../store/approvals/approvals.store\";\r\nimport { ApprovalTypes } from \"../../../enums/ApprovalsTypes\";\r\nimport {\r\n asyncGetAppData,\r\n asyncGetErpData,\r\n asyncGetPreData,\r\n} from \"../../../store/approvals/approvals.actions\";\r\nimport { updateToaster } from \"../../../store/helper/helper.store\";\r\nimport { ToasterTypes } from \"../../../enums/ToasterTypes\";\r\nimport { collapseTextChangeRangesAcrossMultipleVersions } from \"typescript\";\r\n\r\ninterface ApprovallAppProps {}\r\n\r\nconst ApprovalApp: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [chkDados, setChkDados] = useState(\"\");\r\n const [inputs, setInputs] = useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n if (\r\n approvals.currentApproval.idTipoSolicitacao !== ApprovalTypes.associacao\r\n ) {\r\n dispatch(updateConfirmData(inputs));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n // if(approvals.currentApproval.idTipoSolicitacao !== ApprovalTypes.associacao){\r\n dispatch(updateConfirmData(inputs));\r\n // }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dispatch, inputs]);\r\n\r\n const approvals = useSelector((state: RootState) => state.approvals);\r\n\r\n const handleInput =\r\n (fieldName: keyof AppData) =>\r\n (e: React.ChangeEvent) => {\r\n const arr: any = { ...inputs, [fieldName]: e.target.value };\r\n setInputs(arr);\r\n };\r\n\r\n const handleAddressInput =\r\n (fieldName: keyof EnderecoApp) =>\r\n (e: React.ChangeEvent) => {\r\n let index = inputs.enderecos.findIndex(\r\n (item: any) => item.idTipoEndereco === 1\r\n );\r\n\r\n if (index >= 0) {\r\n let inputArr = { ...inputs };\r\n const newArr = [...inputs.enderecos];\r\n newArr[index] = { ...newArr[index], [fieldName]: e.target.value };\r\n inputArr.enderecos = newArr;\r\n setInputs(inputArr);\r\n } else {\r\n let inputArr = { ...inputs };\r\n const newArr = [...inputs?.enderecos];\r\n newArr.push({\r\n txCep: \"\",\r\n txLogradouro: \"\",\r\n nmBairro: \"\",\r\n txNumero: \"\",\r\n nmCidade: \"\",\r\n txComplemento: \"\",\r\n txPontoReferencia: \"\",\r\n cdUf: \"\",\r\n idTipoEndereco: 1,\r\n });\r\n index = newArr.findIndex((item: any) => item.idTipoEndereco === 1);\r\n const result = { ...newArr[index], [fieldName]: e.target.value };\r\n inputArr.enderecos = [...inputArr.enderecos, result];\r\n setInputs(inputArr);\r\n }\r\n };\r\n\r\n const handleDeliveryAddressInput =\r\n (fieldName: keyof EnderecoApp) =>\r\n (e: React.ChangeEvent) => {\r\n let index = inputs.enderecos.findIndex(\r\n (item: any) => item.idTipoEndereco === 2\r\n );\r\n\r\n if (index >= 0) {\r\n let inputArr = { ...inputs };\r\n const newArr = [...inputs.enderecos];\r\n newArr[index] = { ...newArr[index], [fieldName]: e.target.value };\r\n inputArr.enderecos = newArr;\r\n setInputs(inputArr);\r\n } else {\r\n let inputArr = { ...inputs };\r\n const newArr = [...inputs?.enderecos];\r\n newArr.push({\r\n txCep: \"\",\r\n txLogradouro: \"\",\r\n nmBairro: \"\",\r\n txNumero: \"\",\r\n nmCidade: \"\",\r\n txCmplemento: \"\",\r\n txPontoReferencia: \"\",\r\n cdUf: \"\",\r\n idTipoEndereco: 2,\r\n });\r\n index = newArr.findIndex((item: any) => item.idTipoEndereco === 2);\r\n const result = { ...newArr[index], [fieldName]: e.target.value };\r\n inputArr.enderecos = [...inputArr.enderecos, result];\r\n setInputs(inputArr);\r\n }\r\n };\r\n\r\n const handleRadioButton = (e: any) => {\r\n if (\r\n (approvals.currentApproval.idTipoSolicitacao ===\r\n ApprovalTypes.alteração ||\r\n approvals.currentApproval.idTipoSolicitacao ===\r\n ApprovalTypes.cadastro) &&\r\n e === \"dados\"\r\n ) {\r\n setInputs(approvals.evaluation.pre);\r\n } else if (\r\n (approvals.currentApproval.idTipoSolicitacao ===\r\n ApprovalTypes.alteração ||\r\n approvals.currentApproval.idTipoSolicitacao ===\r\n ApprovalTypes.cadastro) &&\r\n e === \"erp\"\r\n ) {\r\n setInputs(approvals.evaluation.erp);\r\n }\r\n\r\n setChkDados(e);\r\n };\r\n\r\n const getAppData = async (id: number) => {\r\n let request = await asyncGetAppData(id)\r\n .then((value: any) => {\r\n if (value.data === null) {\r\n setInputs(null);\r\n } else {\r\n setInputs(value.data);\r\n }\r\n })\r\n .catch((error: any) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n\r\n const getPreData = async (id: number) => {\r\n setLoading(true);\r\n let request = await asyncGetPreData(id)\r\n .then((value: any) => {\r\n if (value.data === null) {\r\n setInputs(null);\r\n } else {\r\n setInputs(value.data);\r\n }\r\n })\r\n .catch((error: any) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (\r\n approvals.currentApproval.idTipoSolicitacao === ApprovalTypes.associacao\r\n ) {\r\n getAppData(approvals.currentApproval.idClienteApp);\r\n }\r\n\r\n if (\r\n approvals.currentApproval.idTipoSolicitacao === ApprovalTypes.cadastro &&\r\n approvals.currentApproval.status.id !== 2\r\n ) {\r\n setInputs({\r\n txCpfcnpj: \"\",\r\n nmCliente: \"\",\r\n txEmail: \"\",\r\n txCelular: \"\",\r\n txTelefone: \"\",\r\n tipoCliente: \"\",\r\n enderecos: [],\r\n });\r\n } else {\r\n getPreData(approvals.currentApproval.idClientePreCadastro);\r\n // getErpData(approvals.evaluation.erp);\r\n }\r\n\r\n if (\r\n approvals.currentApproval.idTipoSolicitacao === ApprovalTypes.alteração\r\n ) {\r\n getPreData(approvals.currentApproval.idClientePreCadastro);\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const numeroDocumento = inputs?.numeroDocumento\r\n ? inputs?.numeroDocumento\r\n : inputs?.txCpfCnpj;\r\n\r\n return !inputs ? (\r\n
\r\n ) : (\r\n <>\r\n {approvals.currentApproval.idTipoSolicitacao !==\r\n ApprovalTypes.associacao &&\r\n approvals.currentApproval.tipoAprovacao.id !== 2 &&\r\n approvals.currentApproval.status.id === 1 && (\r\n
\r\n \r\n \r\n {/* */}\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n <>\r\n
\r\n

Dados

\r\n
\r\n
\r\n \r\n \r\n \r\n {approvals.currentApproval.idTipoSolicitacao !==\r\n ApprovalTypes.associacao &&\r\n approvals.evaluation.app &&\r\n inputs?.txCpfCnpj !== numeroDocumento && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.nmCliente !== approvals.evaluation.app.nmCliente && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.txEmail !== approvals.evaluation.app.txEmail && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.txCelular !== approvals.evaluation.app.txCelular && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.txTelefone !== approvals.evaluation.app.txTelefone && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.nmFantasia !== approvals.evaluation.app.nmFantasia && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n
\r\n \r\n <>\r\n
\r\n

Endereço de Cadastro

\r\n
\r\n
\r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.txCep !==\r\n approvals.evaluation.app.enderecos[0]?.txCep && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.txLogradouro !==\r\n approvals.evaluation.app.enderecos[0]?.txLogradouro && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.txNumero !==\r\n approvals.evaluation.app.enderecos[0]?.txNumero && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.nmBairro !==\r\n approvals.evaluation.app.enderecos[0]?.nmBairro && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.nmCidade !==\r\n approvals.evaluation.app.enderecos[0]?.nmCidade && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.cdUf !==\r\n approvals.evaluation.app.enderecos[0]?.cdUf && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.txComplemento !==\r\n approvals.evaluation.app.enderecos[0]?.txComplemento && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[0]?.txPontoReferencia !==\r\n approvals.evaluation.app.enderecos[0]?.txPontoReferencia && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n
\r\n \r\n <>\r\n
\r\n

Endereço de Entrega

\r\n
\r\n
\r\n \r\n \r\n \r\n {approvals.currentApproval.idTipoSolicitacao ===\r\n ApprovalTypes.alteração &&\r\n approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.txCep !==\r\n approvals.evaluation.app.enderecos[1]?.txCep && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.txLogradouro !==\r\n approvals.evaluation.app.enderecos[1]?.txLogradouro && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.txNumero !==\r\n approvals.evaluation.app.enderecos[1]?.txNumero && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.nmBairro !==\r\n approvals.evaluation.app.enderecos[1]?.nmBairro && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.nmCidade !==\r\n approvals.evaluation.app.enderecos[1]?.nmCidade && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.cdUf !==\r\n approvals.evaluation.app.enderecos[1]?.cdUf && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.txComplemento !==\r\n approvals.evaluation.app.enderecos[1]?.txComplemento && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {approvals.evaluation.app &&\r\n inputs?.enderecos[1]?.txPontoReferencia !==\r\n approvals.evaluation.app.enderecos[1]?.txPontoReferencia && (\r\n \r\n Dado alterado\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApprovalApp;\r\n","import ApprovalserInfo from \"../../components/ApprovalUserInfo\";\r\nimport { TabView, TabPanel } from \"primereact/tabview\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getApprovalById } from \"../../store/approvals/approvals.actions\";\r\nimport { RootState } from \"../../store\";\r\nimport ApprovalApp from \"../../components/ApprovallFields/ApprovalApp\";\r\nimport ApprovalErp from \"../../components/ApprovallFields/ApprovalErp\";\r\nimport ApprovalConfirm from \"../../components/ApprovallFields/ApprovalConfirm\";\r\nimport { ApprovalTypes } from \"../../enums/ApprovalsTypes\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { cpfCnpjMask } from \"../../util/mask\";\r\nimport moment from \"moment\";\r\n\r\ninterface ApprovalEvaluationProps {\r\n match: any;\r\n navigation: any;\r\n}\r\n\r\nconst ApprovalEvaluation: React.FC = ({\r\n match,\r\n navigation,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n\r\n const { currentApproval } = useSelector(\r\n (state: RootState) => state.approvals\r\n );\r\n\r\n const approvals = useSelector((state: RootState) => state.approvals);\r\n\r\n useEffect(() => {\r\n dispatch(getApprovalById(match.params.id));\r\n }, [dispatch]);\r\n\r\n const getTitle = (approvalTypeId: number) => {\r\n switch (approvalTypeId) {\r\n case ApprovalTypes.cadastro:\r\n return \"Avaliação de Cadastro\";\r\n case ApprovalTypes.alteração:\r\n return \"Alteração de Dados de Estabelecimento\";\r\n case ApprovalTypes.associacao:\r\n return \"Associação\";\r\n case ApprovalTypes.desassociacao:\r\n return \"Desassociação\";\r\n default:\r\n return \"Título não informado\";\r\n }\r\n };\r\n\r\n const PanelBody = () => {\r\n return (\r\n setActiveIndex(e.index)}\r\n >\r\n \r\n \r\n \r\n {approvals.evaluation.erp !== null &&\r\n approvals.evaluation.erp !== \"\" &&\r\n approvals.currentApproval.idTipoSolicitacao !==\r\n ApprovalTypes.alteraçã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 const associationBody = () => {\r\n return (\r\n setActiveIndex(e.index)}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const desassociationBody = () => {\r\n return (\r\n \r\n
\r\n

Estabelecimento Desassociado

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n if (currentApproval) {\r\n return (\r\n
\r\n

{getTitle(currentApproval?.idTipoSolicitacao)}

\r\n \r\n {[ApprovalTypes.desassociacao].includes(\r\n currentApproval?.idTipoSolicitacao\r\n ) && desassociationBody()}\r\n {[ApprovalTypes.associacao].includes(\r\n currentApproval?.idTipoSolicitacao\r\n ) && associationBody()}\r\n {[ApprovalTypes.cadastro, ApprovalTypes.alteração].includes(\r\n currentApproval?.idTipoSolicitacao\r\n ) && PanelBody()}\r\n
\r\n );\r\n } else {\r\n return
;\r\n }\r\n};\r\n\r\nexport default ApprovalEvaluation;\r\n","import React from 'react';\r\nimport { Tag } from 'primereact/tag';\r\n\r\ninterface StatusTagProps {\r\n color: string;\r\n value: string;\r\n}\r\n\r\nconst StatusTag: React.FC = ({ color, value }) => {\r\n const styles = {\r\n background: 'none',\r\n color,\r\n border: `1px solid ${color}`,\r\n padding: '2px 20px',\r\n fontSize: 12,\r\n fontWeight: 500\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default StatusTag;\r\n","export enum StatusComodatos {\r\n solicitado = 1,\r\n reprovado,\r\n aprovado,\r\n aguardandoVisitaComercial,\r\n emElaboracaoContratual,\r\n aguardandoEntrega,\r\n entregue,\r\n cancelado,\r\n aguardandoContatoTelefonico,\r\n aguardandoVisitaTecnica,\r\n aguardandoTrocaDoProduto,\r\n concluido,\r\n contratoCancelado,\r\n}\r\n","import { Dropdown } from 'primereact/dropdown';\r\n\r\nexport interface SelectOptions {\r\n name: string;\r\n value: string | number;\r\n}\r\n\r\ninterface DefaultSelectProps {\r\n label: string;\r\n value: string | number;\r\n options: SelectOptions[];\r\n onChange: any;\r\n idItem?: string;\r\n showLabel?: boolean;\r\n disabled?: boolean;\r\n error?: string\r\n}\r\n\r\nconst DefaultSelect: React.FC = ({ label, value, onChange, options, idItem, showLabel = true, disabled, error = '' }) => {\r\n return (\r\n \r\n { showLabel && }\r\n onChange(e.target.value)}\r\n disabled={disabled}\r\n emptyMessage=\"Nenhum registro encontrado\"\r\n showClear\r\n />\r\n {error && {error}}\r\n \r\n )\r\n}\r\n\r\nexport default DefaultSelect\r\n","import { Button } from \"primereact/button\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport DefaultInput from \"../../../components/DefaultInput\";\r\nimport DefaultSelect from \"../../../components/DefaultSelect\";\r\nimport { RootState } from \"../../../store\";\r\nimport {\r\n getApprovalStatus,\r\n getApprovalTypes,\r\n seacrhApprovals,\r\n} from \"../../../store/approvals/approvals.actions\";\r\nimport { cpfCnpjMask, onlyNumbers } from \"../../../util/mask\";\r\nimport { COLORS } from \"../../../constants\";\r\n\r\nimport \"./styles.css\";\r\nconst ApprovalsFilter = () => {\r\n const dispatch = useDispatch();\r\n const [type, setType] = useState(null);\r\n const [status, setStatus] = useState(null);\r\n const [document, setDocument] = useState(\"\");\r\n\r\n const approvals = useSelector((state: RootState) => state.approvals);\r\n\r\n const documentModified = cpfCnpjMask(document);\r\n\r\n useEffect(() => {\r\n dispatch(getApprovalTypes());\r\n dispatch(getApprovalStatus());\r\n \r\n }, [dispatch]);\r\n\r\n const handleFilter = () => {\r\n dispatch(\r\n seacrhApprovals({ type, status, document: onlyNumbers(document) })\r\n );\r\n };\r\n\r\n const handleClickClean = () => {\r\n setType(\"\");\r\n setStatus(\"\");\r\n setDocument(\"#\");\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n setDocument(onlyNumbers(t))}\r\n disabled={false}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ApprovalsFilter;\r\n","import { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RootState } from '../../store';\r\nimport { getApprovals } from '../../store/approvals/approvals.actions';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport StatusTag from '../../components/StatusTag';\r\nimport { COLORS } from '../../constants';\r\nimport { StatusApprovals } from '../../enums/StatusApprovals';\r\nimport { cpfCnpjMask } from '../../util/mask';\r\nimport './styles.css'\r\nimport ApprovalsFilter from './ApprovalsFilter';\r\nimport { useHistory } from 'react-router';\r\nimport { ApprovalTypes } from '../../enums/ApprovalsTypes';\r\nimport ProgressLoad from '../../components/ProgressLoad';\r\n\r\nconst Approvals: React.FC = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const approvals = useSelector((state: RootState) => state.approvals)\r\n\r\n const {loading} = useSelector((state: RootState) => state.loading)\r\n\r\n useEffect(() => {\r\n dispatch(getApprovals());\r\n }, []);\r\n\r\n const statusTemplate = (e: any) => {\r\n let color: string = '';\r\n switch (e.idStatusSolicitacao) {\r\n case StatusApprovals.analise:\r\n color = COLORS.primaryOrange\r\n break\r\n case StatusApprovals.aprovado:\r\n color = COLORS.primaryGreen\r\n break\r\n case StatusApprovals.reprovado:\r\n color = 'red'\r\n break\r\n case StatusApprovals.desassociado:\r\n color = '#AA0061'\r\n break\r\n default:\r\n break;\r\n }\r\n return (\r\n \r\n )\r\n };\r\n\r\n const typeTemplate = (e: any) => {\r\n return ({ e.tipoAprovacao.dsTipoSolicitacaoCadastro })\r\n }\r\n\r\n const userTemplate = (e: any) => (\r\n { e.usuarioSolicitante.nmUsuario }\r\n )\r\n\r\n const emailTemplate = (e: any) => {\r\n if(e.idTipoSolicitacao === ApprovalTypes.cadastro){\r\n return { e.preCadastro.txEmail }\r\n }else{\r\n return { e.cliente.txEmail }\r\n }\r\n }\r\n\r\n const documentTemplate = (e: any) => {\r\n if(e.idTipoSolicitacao === ApprovalTypes.cadastro){\r\n return { cpfCnpjMask(e.preCadastro.txCpfCnpj) }\r\n }else{\r\n return { cpfCnpjMask(e.cliente.txCpfCnpj) }\r\n }\r\n }\r\n\r\n const nameTemplate = (e: any) => {\r\n if(e.idTipoSolicitacao === ApprovalTypes.cadastro){\r\n return { e.preCadastro.nmCliente }\r\n }else{\r\n return { e.cliente.nmCliente }\r\n }\r\n }\r\n\r\n const styles = {\r\n table: {\r\n backgroundColor: COLORS.white,\r\n fontSize: 12,\r\n border: '1px solid #E0E0E0',\r\n }\r\n }\r\n\r\n const handleRow = (row: any) => {\r\n history.push(`/approvals/evaluation/${row.data.id}`)\r\n }\r\n\r\n const headerStyle = {\r\n // textAlign: 'center',\r\n color: '#606060',\r\n cursor: 'default'\r\n }\r\n\r\n const columnStyle = {\r\n // textAlign: 'center',\r\n color: '#606060',\r\n cursor: 'pointer'\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Sol. de Cadastro (Clientes)

\r\n \r\n {loading ? \r\n
\r\n \r\n
\r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Approvals;\r\n","export enum ComodatosTypes {\r\n contratacao = 1,\r\n manutencao,\r\n cancelamento,\r\n}\r\n","import { Dispatch } from \"redux\";\r\nimport { SelectOptions } from \"../../components/DefaultSelect\";\r\nimport GuaracampAPI from \"../../services/GuaracampAPI\";\r\nimport { updateLoading } from \"../loading/loading.store\";\r\nimport {\r\n setCurrentComodato,\r\n updateComodatos,\r\n updateStatus,\r\n updateTypes,\r\n updateTypesById,\r\n} from \"./comodatos.store\";\r\n\r\nexport const getComodatos = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/solicitacaoComodato/pesquisa?pagina=1®istros=500\")\r\n .then((res: any) => {\r\n dispatch(updateComodatos(res.data.lista));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const putComodatos = async (data: any) => {\r\n let response = null;\r\n await GuaracampAPI.post(\"/solicitacaocomodato/analisar\", data)\r\n .then(async (res: any) => {\r\n response = res;\r\n })\r\n .catch((error) => {\r\n alert(error.response.data.erros[0].message);\r\n console.error({\r\n msg: \"Erro ao atualizar o comodato\",\r\n error: error.response.data,\r\n status: error.response.status,\r\n });\r\n });\r\n return response;\r\n};\r\n\r\nexport const getComodatoById = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(`/solicitacaoComodato/${id}`)\r\n .then((res: any) => {\r\n dispatch(setCurrentComodato(res.data));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const searchComodatos = (data: any) => {\r\n const type = data.type ? `&tipo=${data.type}` : \"\";\r\n const status = data.status ? `&status=${data.status}` : \"\";\r\n const document = data.document ? `&documento=${data.document}` : \"\";\r\n\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\r\n `/solicitacaoComodato/pesquisa?pagina=1®istros=500${type}${status}${document}`\r\n )\r\n .then((res: any) => {\r\n dispatch(updateComodatos(res.data.lista));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const getComodatoStatusByType = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\r\n `/statusSolicitacaoComodato/getPorIdTipoSolicitacaoComodato?idTipoSolicitacaoComodato=${id}`\r\n )\r\n .then(async (res: any) => {\r\n const selectOptions = (await res.data.map((v: any) => {\r\n return {\r\n name: v.dsStatusSolicitacaoComodato,\r\n value: v.id,\r\n };\r\n })) as SelectOptions[];\r\n dispatch(updateTypesById(selectOptions));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const getComodatoTypes = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/tipoSolicitacaoComodato\")\r\n .then(async (res: any) => {\r\n const selectOptions = (await res.data.map((v: any) => {\r\n return { name: v.dsTipoSolicitacaoComodato, value: v.id };\r\n })) as SelectOptions[];\r\n dispatch(updateTypes(selectOptions));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n\r\nexport const getComodatoStatus = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/statusSolicitacaoComodato\")\r\n .then(async (res: any) => {\r\n const selectOptions = (await res.data.map((v: any) => {\r\n return { name: v.dsStatusSolicitacaoComodato, value: v.id };\r\n })) as SelectOptions[];\r\n dispatch(updateStatus(selectOptions));\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n};\r\n","import { Button } from \"primereact/button\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport DefaultInput from \"../../../components/DefaultInput\";\r\nimport DefaultSelect from \"../../../components/DefaultSelect\";\r\nimport { RootState } from \"../../../store\";\r\nimport {\r\n getApprovalStatus,\r\n getApprovalTypes,\r\n seacrhApprovals,\r\n} from \"../../../store/approvals/approvals.actions\";\r\nimport { cpfCnpjMask, onlyNumbers } from \"../../../util/mask\";\r\nimport { COLORS } from \"../../../constants\";\r\n\r\nimport \"./styles.css\";\r\nimport {\r\n getComodatoStatus,\r\n getComodatoTypes,\r\n searchComodatos,\r\n} from \"../../../store/comodatos/comodatos.actions\";\r\nconst ComodatosFilter = () => {\r\n const dispatch = useDispatch();\r\n const [type, setType] = useState(null);\r\n const [status, setStatus] = useState(null);\r\n const [document, setDocument] = useState(\"\");\r\n\r\n const comodatos = useSelector((state: RootState) => state.comodatos);\r\n\r\n const documentModified = cpfCnpjMask(document);\r\n\r\n useEffect(() => {\r\n dispatch(getComodatoTypes());\r\n dispatch(getComodatoStatus());\r\n }, [dispatch]);\r\n\r\n const handleFilter = () => {\r\n dispatch(\r\n searchComodatos({ type, status, document: onlyNumbers(document) })\r\n );\r\n };\r\n\r\n const handleClickClean = () => {\r\n setType(\"\");\r\n setStatus(\"\");\r\n setDocument(\"#\");\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n setDocument(onlyNumbers(t))}\r\n disabled={false}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ComodatosFilter;\r\n","import { DataTable } from \"primereact/datatable\";\r\nimport React, { useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport ProgressLoad from \"../../components/ProgressLoad\";\r\nimport StatusTag from \"../../components/StatusTag\";\r\nimport { StatusComodatos } from \"../../enums/StatusComodatos\";\r\nimport { RootState } from \"../../store\";\r\nimport ComodatosFilter from \"./ComodatosFilter\";\r\nimport { COLORS } from \"../../constants\";\r\nimport { Column } from \"primereact/column\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { getComodatos } from \"../../store/comodatos/comodatos.actions\";\r\nimport { cpfCnpjMask } from \"../../util/mask\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst Comodatos: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const comodatos = useSelector((state: RootState) => state.comodatos);\r\n const history = useHistory();\r\n\r\n function getFormatDate(date = new Date(), dateFormat = \"dd/MM/yyyy\") {\r\n return format(new Date(date), dateFormat);\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(getComodatos());\r\n }, []);\r\n\r\n const typeTemplate = (e: any) => {\r\n return {e.tipoSolicitacao.dsTipoSolicitacaoComodato};\r\n };\r\n\r\n const dateTemplate = (e: any) => (\r\n {getFormatDate(e.dtSolicitacao)}\r\n );\r\n\r\n const documentNumberTemplate = (e: any) => (\r\n {cpfCnpjMask(e.cliente.txCpfCnpj)}\r\n );\r\n\r\n const nameTemplate = (e: any) => {e.cliente.nmCliente};\r\n\r\n const statusTemplate = (e: any) => {\r\n let color: string = \"\";\r\n switch (e.idStatusSolicitacaoComodato) {\r\n case StatusComodatos.solicitado ||\r\n StatusComodatos.aguardandoContatoTelefonico ||\r\n StatusComodatos.aguardandoEntrega ||\r\n StatusComodatos.aguardandoTrocaDoProduto ||\r\n StatusComodatos.aguardandoVisitaComercial ||\r\n StatusComodatos.aguardandoVisitaTecnica ||\r\n StatusComodatos.emElaboracaoContratual:\r\n color = COLORS.primaryOrange;\r\n break;\r\n case StatusComodatos.aprovado || StatusComodatos.entregue:\r\n color = COLORS.primaryGreen;\r\n break;\r\n case StatusComodatos.reprovado:\r\n color = \"red\";\r\n break;\r\n case StatusComodatos.contratoCancelado || StatusComodatos.cancelado:\r\n color = \"#AA0061\";\r\n break;\r\n default:\r\n color = COLORS.primaryOrange;\r\n break;\r\n }\r\n return (\r\n \r\n );\r\n };\r\n\r\n const handleRow = (row: any) => {\r\n history.push(`/comodatos/evaluation/${row.data.id}`);\r\n };\r\n\r\n const styles = {\r\n table: {\r\n backgroundColor: COLORS.white,\r\n fontSize: 12,\r\n border: \"1px solid #E0E0E0\",\r\n },\r\n };\r\n\r\n const headerStyle = {\r\n // textAlign: 'center',\r\n color: \"#606060\",\r\n cursor: \"default\",\r\n };\r\n\r\n const columnStyle = {\r\n // textAlign: 'center',\r\n color: \"#606060\",\r\n cursor: \"pointer\",\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Comodatos;\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { RootState } from \"../../store\";\r\nimport { cellMask } from \"../../util/mask\";\r\n\r\nconst ComodatoUserInfo = () => {\r\n const { currentComodato } = useSelector(\r\n (state: RootState) => state.comodatos\r\n );\r\n\r\n const styles = {\r\n actions: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n infoText: {\r\n margin: \"10px 0\",\r\n },\r\n };\r\n\r\n return (\r\n
\r\n {currentComodato && (\r\n
\r\n \r\n Nome Completo: \r\n {currentComodato?.cliente?.nmCliente}\r\n \r\n \r\n E-mail: \r\n {currentComodato?.cliente?.txEmail}\r\n \r\n \r\n Celular: \r\n {currentComodato?.cliente?.txCelular}\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ComodatoUserInfo;\r\n","import { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { InputTextarea } from \"primereact/inputtextarea\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { ToasterTypes } from \"../../../enums/ToasterTypes\";\r\nimport { RootState } from \"../../../store\";\r\nimport {\r\n getComodatoStatus,\r\n getComodatoStatusByType,\r\n putComodatos,\r\n} from \"../../../store/comodatos/comodatos.actions\";\r\nimport { updateToaster } from \"../../../store/helper/helper.store\";\r\nimport { cpfCnpjMask } from \"../../../util/mask\";\r\nimport DefaultSelect from \"../../DefaultSelect\";\r\nimport ProgressLoad from \"../../ProgressLoad\";\r\nimport { format } from \"date-fns\";\r\n\r\ninterface ComodatoProps {\r\n comodato?: any;\r\n}\r\n\r\nconst NewComodato: React.FC = ({ comodato }) => {\r\n const { currentComodato } = useSelector(\r\n (state: RootState) => state.comodatos\r\n );\r\n const comodatos = useSelector((state: RootState) => state.comodatos);\r\n\r\n const dispatch = useDispatch();\r\n const [status, setStatus] = useState(\r\n currentComodato?.idStatusSolicitacaoComodato\r\n );\r\n const [register, setRegister] = useState(currentComodato?.txRegistro);\r\n const history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(\r\n getComodatoStatusByType(currentComodato?.idTipoSolicitacaoComodato)\r\n );\r\n }, [dispatch, currentComodato?.idTipoSolicitacaoComodato]);\r\n\r\n useEffect(() => {\r\n setStatus(currentComodato?.idStatusSolicitacaoComodato);\r\n }, [setStatus, currentComodato?.idStatusSolicitacaoComodato]);\r\n\r\n function getFormatDate(date = new Date(), dateFormat = \"dd/MM/yyyy\") {\r\n return format(new Date(date), dateFormat);\r\n }\r\n\r\n useEffect(() => {\r\n setRegister(register);\r\n }, [setRegister]);\r\n\r\n const handlePutComodato = async () => {\r\n if (register === null) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: \"Número de registro obrigatório.\",\r\n })\r\n );\r\n return;\r\n }\r\n\r\n if (register.length < 30) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message:\r\n \"Obrigatório o número de registro ter no mínimo 30 caracteres.\",\r\n })\r\n );\r\n return;\r\n }\r\n\r\n const newComodato = {\r\n ...currentComodato,\r\n idStatusSolicitacaoComodato: status,\r\n txRegistro: register,\r\n };\r\n\r\n const response: any = await putComodatos(newComodato);\r\n\r\n if (response.status == 200) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Comodato alterado com sucesso\",\r\n })\r\n );\r\n }\r\n history.push(\"/comodatos\");\r\n };\r\n\r\n return (\r\n \r\n {loading && }\r\n {!loading && (\r\n <>\r\n <>\r\n
\r\n

Dados do Estabelecimento Solicitante

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Dados da Comodato Solicitado

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Processo de aprovação

\r\n
\r\n \r\n
\r\n \r\n \r\n setRegister(e.target.value)}\r\n minLength={30}\r\n maxLength={30}\r\n disabled={currentComodato?.status?.id === 8}\r\n />\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NewComodato;\r\n","import { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { InputTextarea } from \"primereact/inputtextarea\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { ToasterTypes } from \"../../../enums/ToasterTypes\";\r\nimport { RootState } from \"../../../store\";\r\nimport {\r\n getComodatoStatusByType,\r\n putComodatos,\r\n} from \"../../../store/comodatos/comodatos.actions\";\r\nimport { updateToaster } from \"../../../store/helper/helper.store\";\r\nimport { cpfCnpjMask } from \"../../../util/mask\";\r\nimport DefaultSelect from \"../../DefaultSelect\";\r\nimport ProgressLoad from \"../../ProgressLoad\";\r\nimport { format } from \"date-fns\";\r\n\r\ninterface ComodatoProps {\r\n comodato?: any;\r\n}\r\n\r\nconst MaintenanceComodato: React.FC = ({ comodato }) => {\r\n const { currentComodato } = useSelector(\r\n (state: RootState) => state.comodatos\r\n );\r\n const comodatos = useSelector((state: RootState) => state.comodatos);\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(false);\r\n const [status, setStatus] = useState(\r\n currentComodato?.idStatusSolicitacaoComodato\r\n );\r\n const history = useHistory();\r\n\r\n function getFormatDate(date = new Date(), dateFormat = \"dd/MM/yyyy\") {\r\n return format(new Date(date), dateFormat);\r\n }\r\n\r\n const handlePutComodato = async () => {\r\n const newComodato = {\r\n ...currentComodato,\r\n idStatusSolicitacaoComodato: status,\r\n };\r\n const response: any = await putComodatos(newComodato);\r\n if (response.status == 200) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Alteração realizada com sucesso\",\r\n })\r\n );\r\n history.push(\"/comodatos\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setStatus(currentComodato?.idStatusSolicitacaoComodato)\r\n }, [setStatus, currentComodato?.idStatusSolicitacaoComodato]); \r\n\r\n useEffect(() => {\r\n dispatch(\r\n getComodatoStatusByType(currentComodato?.idTipoSolicitacaoComodato)\r\n );\r\n }, [dispatch, currentComodato?.idTipoSolicitacaoComodato]);\r\n\r\n return (\r\n \r\n {loading && }\r\n {!loading && (\r\n <>\r\n <>\r\n
\r\n

Dados do Estabelecimento Solicitante

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Dados da solicitação de manutençã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 {currentComodato?.checklist?.map((item: any, index: number) => {\r\n return (\r\n
\r\n \r\n {item?.idTemplateChecklistComodatoNavigation?.txItemChecklist}\r\n \r\n \r\n {item?.inSituacao === true ? \"OK\" : \"NOK\"}\r\n \r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Processo de aprovaçã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\nexport default MaintenanceComodato;\r\n","import { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { InputTextarea } from \"primereact/inputtextarea\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { ToasterTypes } from \"../../../enums/ToasterTypes\";\r\nimport { RootState } from \"../../../store\";\r\nimport {\r\n getComodatoStatus,\r\n getComodatoStatusByType,\r\n putComodatos,\r\n} from \"../../../store/comodatos/comodatos.actions\";\r\nimport { updateToaster } from \"../../../store/helper/helper.store\";\r\nimport { cpfCnpjMask } from \"../../../util/mask\";\r\nimport DefaultSelect from \"../../DefaultSelect\";\r\nimport ProgressLoad from \"../../ProgressLoad\";\r\nimport { format } from \"date-fns\";\r\n\r\ninterface ComodatoProps {\r\n comodato?: any;\r\n}\r\n\r\nconst CancelComodato: React.FC = ({ comodato }) => {\r\n const { currentComodato } = useSelector(\r\n (state: RootState) => state.comodatos\r\n );\r\n const comodatos = useSelector((state: RootState) => state.comodatos);\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(false);\r\n const [status, setStatus] = useState(\r\n currentComodato?.idStatusSolicitacaoComodato\r\n );\r\n const history = useHistory();\r\n\r\n function getFormatDate(date = new Date(), dateFormat = \"dd/MM/yyyy\") {\r\n return format(new Date(date), dateFormat);\r\n }\r\n \r\n useEffect(() => {\r\n dispatch(\r\n getComodatoStatusByType(currentComodato?.idTipoSolicitacaoComodato)\r\n );\r\n }, [dispatch, currentComodato?.idTipoSolicitacaoComodato]);\r\n\r\n const handlePutComodato = async () => {\r\n const newComodato = {\r\n ...currentComodato,\r\n idStatusSolicitacaoComodato: status,\r\n };\r\n const response: any = await putComodatos(newComodato);\r\n if (response.status == 200) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Alteração realizada com sucesso\",\r\n })\r\n );\r\n history.push(\"/comodatos\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n {loading && }\r\n {!loading && (\r\n <>\r\n <>\r\n
\r\n

Dados do Estabelecimento Solicitante

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Dados da solicitação de cancelamento

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n <>\r\n
\r\n

Processo de aprovaçã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\nexport default CancelComodato;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport ComodatoUserInfo from \"../../components/ComodatoUserInfo\";\r\nimport { ComodatosTypes } from \"../../enums/ComodatosTypes\";\r\nimport { RootState } from \"../../store\";\r\nimport { TabView, TabPanel } from \"primereact/tabview\";\r\nimport NewComodato from \"../../components/ComodatoFields/NewComodato\";\r\nimport MaintenanceComodato from \"../../components/ComodatoFields/MaintenanceComodato\";\r\nimport CancelComodato from \"../../components/ComodatoFields/CancelComodato\";\r\nimport { getComodatoById } from \"../../store/comodatos/comodatos.actions\";\r\nimport ProgressLoad from \"../../components/ProgressLoad\";\r\n\r\ninterface ComodatoEvaluationProps {\r\n match: any;\r\n}\r\n\r\nconst ComodatosEvaluation: React.FC = ({ match }) => {\r\n const dispatch = useDispatch();\r\n const { currentComodato } = useSelector(\r\n (state: RootState) => state.comodatos\r\n );\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(getComodatoById(match.params.id));\r\n }, [dispatch]);\r\n\r\n const getTitle = (comodatoTypeId: number) => {\r\n switch (comodatoTypeId) {\r\n case ComodatosTypes.contratacao:\r\n return \"Avaliação de Novo Contrato\";\r\n case ComodatosTypes.manutencao:\r\n return \"Alteração de Solicitação de Manutenção\";\r\n case ComodatosTypes.cancelamento:\r\n return \"Alteração de Solicitação de Cancelamento\";\r\n default:\r\n return \"Título não informado\";\r\n }\r\n };\r\n\r\n // const PanelBody = () => {\r\n // return (\r\n // \r\n // \r\n // {/* {ComodatosTypes.novo && } */}\r\n // {/* {ComodatosTypes.manutencao && } */}\r\n // {/* {ComodatosTypes.cancelamento && } */}\r\n // \r\n // );\r\n // };\r\n\r\n return (\r\n
\r\n {loading && }\r\n {!loading && (\r\n <>\r\n

\r\n {getTitle(currentComodato?.idTipoSolicitacaoComodato)}\r\n

\r\n \r\n {currentComodato?.idTipoSolicitacaoComodato === 1 && }\r\n {currentComodato?.idTipoSolicitacaoComodato === 2 && (\r\n \r\n )}\r\n {currentComodato?.idTipoSolicitacaoComodato === 3 && (\r\n \r\n )}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ComodatosEvaluation;\r\n","import React from \"react\";\r\n\r\nconst Home: React.FC = () => {\r\n return (\r\n
\r\n )\r\n};\r\n\r\nexport default Home;\r\n","import GuaracampAPI from \"../../services/GuaracampAPI\";\r\nimport { login, setUserEmail } from \"./token.service\";\r\n\r\ninterface SiginProps{\r\n email: string;\r\n senha: string;\r\n app: boolean;\r\n}\r\n\r\nexport const asyncSignIn = async ({email, senha, app}: SiginProps) => {\r\n try {\r\n const response: any = await GuaracampAPI.post('/Seguranca/signin', { email, senha, app })\r\n login(response.data.data.token)\r\n setUserEmail(response.data.data.email)\r\n return response\r\n } catch (error) {\r\n throw error\r\n }\r\n}\r\n\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { Redirect } from \"react-router\";\r\nimport { asyncSignIn } from \"../../store/auth/auth.actions\";\r\nimport {\r\n isAuthenticated,\r\n login,\r\n setIdUsuario,\r\n setUserEmail,\r\n} from \"../../store/auth/token.service\";\r\n\r\nimport headerImg from \"../../assets/images/logo-guaracamp.png\";\r\n\r\nimport \"./styles.css\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Button } from \"primereact/button\";\r\nimport { RootState } from \"../../store\";\r\nimport { Password } from \"primereact/password\";\r\nimport { updateToaster } from \"../../store/helper/helper.store\";\r\nimport { ToasterTypes } from \"../../enums/ToasterTypes\";\r\nimport ProgressLoad from \"../../components/ProgressLoad\";\r\nimport { updateLoading } from \"../../store/loading/loading.store\";\r\nimport { updateUserAuth } from \"../../store/auth/auth.store\";\r\nimport Oval from \"react-loader-spinner/dist/loader/Oval\";\r\nimport GuaracampAPI from \"../../services/GuaracampAPI\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst Login: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const [loginUser, setLogin] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [spanEmailError, setSpanEmailError] = useState(false);\r\n const [spanPasswordError, setSpanPasswordError] = useState(false);\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n\r\n useEffect(() => {\r\n dispatch(updateLoading(false));\r\n }, [dispatch]);\r\n\r\n const handleLogin = async () => {\r\n if (loginUser === \"\") {\r\n setSpanEmailError(true);\r\n setSpanPasswordError(false);\r\n } else if (password === \"\") {\r\n setSpanPasswordError(true);\r\n setSpanEmailError(false);\r\n } else {\r\n dispatch(updateLoading(true));\r\n setSpanEmailError(false);\r\n setSpanPasswordError(false);\r\n\r\n const result: any = await asyncSignIn({\r\n email: loginUser,\r\n senha: password,\r\n app: false,\r\n })\r\n .then((value: any) => {\r\n login(value.data.data.token);\r\n setUserEmail(value.data.data.email);\r\n setIdUsuario(value.data.data.idUsuario);\r\n dispatch(updateUserAuth(value.data.data));\r\n window.location.href = \"/\";\r\n })\r\n .catch((error: any) => {\r\n dispatch(updateLoading(true));\r\n if (error.response.data.errors?.email?.length > 0) {\r\n if (error.response.data.errors?.email) {\r\n dispatch(updateLoading(false));\r\n for (let errorMessage of error.response.data.errors?.email) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: errorMessage,\r\n })\r\n );\r\n }\r\n } else {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: \"Insira seu e-mail para realizar o acesso.\",\r\n })\r\n );\r\n }\r\n } else if (error.response.data.errors?.senha?.length > 0) {\r\n if (error.response.data.errors?.senha) {\r\n dispatch(updateLoading(false));\r\n for (let errorMessage of error.response.data.errors?.senha) {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: errorMessage,\r\n })\r\n );\r\n }\r\n } else {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: \"Insira sua senha para realizar o acesso.\",\r\n })\r\n );\r\n }\r\n } else {\r\n dispatch(updateLoading(false));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0]?.message,\r\n })\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n return isAuthenticated() ? (\r\n \r\n ) : (\r\n
\r\n
\r\n

Administrativo

\r\n
\r\n
\r\n
\r\n \"Logo\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n setLogin(e.target.value)}\r\n className=\"input-login\"\r\n style={{ marginBottom: \"0px\" }}\r\n />\r\n {spanEmailError && (\r\n O e-mail é obrigatório.\r\n )}\r\n
\r\n
\r\n setPassword(e.target.value)}\r\n className=\"input-login\"\r\n feedback={false}\r\n style={{ marginBottom: \"0px\" }}\r\n />\r\n {spanPasswordError && (\r\n Senha requerida.\r\n )}\r\n
\r\n\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Login;\r\n","import { useEffect } from \"react\";\r\n\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport { Button } from \"primereact/button\";\r\nimport { useState } from \"react\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\n// import '../styles.css'\r\nimport CheckboxDefault from \"../../../../components/CheckboxDefault\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { ModulesProps } from \"../../../../store/admin/admin.store\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../../store\";\r\nimport { asyncPostProfile } from \"../../../../store/admin/admin.actions\";\r\nimport { StateProps } from \"../../../../enums\";\r\n\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { updateLoading } from \"../../../../store/loading/loading.store\";\r\n\r\nconst ProfileCreate = () => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [dsPerfil, setDsPerfil] = useState(\"\");\r\n const [modules, setModules] = useState([]);\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n const [errors, setErrors] = useState({} as any);\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n\r\n useEffect(() => {\r\n setModules(admin.modulos);\r\n }, [admin.modulos]);\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n\r\n try {\r\n const profileModules: any = [];\r\n modules.map((module) => {\r\n if (module.checked)\r\n profileModules.push({\r\n idModulo: module.idItem,\r\n });\r\n return 0;\r\n });\r\n const profile = {\r\n dsPerfil: dsPerfil,\r\n modulos: profileModules,\r\n };\r\n const schema = Yup.object().shape({\r\n dsPerfil: Yup.string().required(\"Descrição obrigatória.\"),\r\n modulos: Yup.array().min(1, \"Defina uma ou mais permissões.\"),\r\n });\r\n\r\n await schema.validate(profile, {\r\n abortEarly: false,\r\n });\r\n dispatch(asyncPostProfile(profile));\r\n setModules(admin.modulos);\r\n setDsPerfil(\"\");\r\n } catch (error) {\r\n if (error instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(error));\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n setVisible(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n const handleCheckboxes = (event: any) => {\r\n const index = modules.findIndex((chk) => chk.idItem === event.target.value);\r\n const newArr = [...modules];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n setModules(newArr);\r\n };\r\n\r\n const handleCancel = () => {\r\n setDsPerfil(\"\");\r\n setModules(admin.modulos);\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n return (\r\n
\r\n setVisible(true)}\r\n className=\"sidebarv2-open-button\"\r\n color=\"#AA0061\"\r\n />\r\n \r\n
\r\n \r\n \r\n Cadastrar Perfil\r\n

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

\r\n Defina as permissões do usuário:\r\n

\r\n
\r\n {modules.map((module, i) => (\r\n \r\n ))}\r\n {errors.modulos && (\r\n \r\n {errors.modulos}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProfileCreate;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"./style.css\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\n\r\nimport Filter from \"../../../components/Filter\";\r\nimport CardList from \"../../../components/CardList\";\r\nimport {\r\n asyncDeleteProfile,\r\n asyncGetProfiles,\r\n asyncGetUserById,\r\n asyncSearchProfile,\r\n} from \"../../../store/admin/admin.actions\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport ProfileCreate from \"./ProfileCreate\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\nimport { updateLoading } from \"../../../store/loading/loading.store\";\r\n\r\nexport interface ModulosProps {\r\n idModulo: number;\r\n}\r\n\r\nconst Profiles: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [description, setDescription] = useState(\"\");\r\n const [user, setUser] = useState();\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n\r\n const [newDescription, setNewDescription] = useState(\"\");\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n confirmDialog({\r\n message: \"Você quer deletar este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDelete(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetProfiles());\r\n }, [dispatch]);\r\n\r\n const passInputs = [\r\n {\r\n type: \"text\",\r\n label: \"Descrição\",\r\n value: description,\r\n onChange: setDescription,\r\n },\r\n ];\r\n\r\n const passInputsSideBar = [\r\n {\r\n type: \"text\",\r\n label: \"Descrição\",\r\n value: newDescription,\r\n onChange: setNewDescription,\r\n },\r\n ];\r\n\r\n //para pesquisar\r\n const handleClickFilter = () => {\r\n if (description !== \"\") {\r\n dispatch(updateLoading(true));\r\n dispatch(asyncSearchProfile(description));\r\n } else {\r\n dispatch(updateLoading(true));\r\n dispatch(asyncGetProfiles());\r\n }\r\n };\r\n\r\n const handleDelete = (id: number) => {\r\n dispatch(asyncDeleteProfile(id));\r\n };\r\n\r\n const handleClickClean = () => {\r\n dispatch(updateLoading(true));\r\n setDescription(\"\");\r\n dispatch(asyncGetProfiles());\r\n };\r\n\r\n const idUsuario = Number(localStorage.getItem(\"@USER_ID_GUARACAMP\"));\r\n\r\n const getUser = async () => {\r\n const response = await asyncGetUserById(idUsuario);\r\n setUser(response);\r\n };\r\n\r\n useEffect(() => {\r\n if (idUsuario) {\r\n getUser();\r\n }\r\n }, []);\r\n\r\n const administrativePerfil = user?.perfis.find(\r\n (perfil: any) => perfil.idPerfil === 74\r\n );\r\n\r\n return (\r\n
\r\n

Perfis (grupos)

\r\n \r\n \r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : admin.profiles.length > 0 ? (\r\n admin.profiles.map((profile, i) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Profiles;\r\n","import { Dropdown } from 'primereact/dropdown';\r\n\r\nexport interface SelectOptions {\r\n name: string;\r\n value: string | number;\r\n}\r\n\r\ninterface DefaultSelectProps {\r\n name?: string;\r\n label: string;\r\n value: string | number;\r\n options: SelectOptions[];\r\n onChange: any;\r\n idItem?: string;\r\n showLabel?: boolean;\r\n disabled?: boolean;\r\n error?: string;\r\n}\r\n\r\nconst DefaultSelectPromotion: React.FC = ({ name,label, value, onChange, options, idItem, showLabel = true, disabled, error = '', }) => {\r\n return (\r\n \r\n { showLabel && }\r\n \r\n {error !== undefined && error !== '' && {error}}\r\n \r\n )\r\n}\r\n\r\nexport default DefaultSelectPromotion\r\n","import { Checkbox } from \"primereact/checkbox\";\r\nimport { PromotionItensProps } from \"../../../../store/comercial/comercial.store\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { SelectOptions } from \"../../../DefaultSelect\";\r\nimport DefaultSelectPromotion from \"../../../DefaultSelectPromotion\";\r\nimport NumberFormat from \"react-number-format\";\r\n\r\ninterface ItensListProps {\r\n view?: boolean;\r\n // inputs: any[];\r\n checkboxes?: PromotionItensProps;\r\n cod?: number;\r\n idProduto?: number;\r\n handleDelete?: (id: any) => void;\r\n handleCheckboxes: (e: any) => void;\r\n handleSelect: (e: any) => void;\r\n handleAmountDiscount: (e: any) => void;\r\n handleQuantity: (e: any) => void;\r\n itens: PromotionItensProps[];\r\n errors?: any;\r\n}\r\n\r\nconst ItensListPromotion = ({\r\n view,\r\n handleCheckboxes,\r\n handleSelect,\r\n handleAmountDiscount,\r\n handleQuantity,\r\n itens,\r\n errors,\r\n}: ItensListProps) => {\r\n const options: SelectOptions[] = [\r\n {\r\n name: \"Porcentagem\",\r\n value: 1,\r\n },\r\n {\r\n name: \"Valor\",\r\n value: 2,\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {itens?.map((item, i) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {errors[\"allItens[\" + i + \"].quantidade\"] && (\r\n \r\n {errors[\"allItens[\" + i + \"].qtItemPromocao\"]}\r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {errors[\"allItens[\" + i + \"].idTipoDesconto\"] && (\r\n \r\n {errors[\"allItens[\" + i + \"].idTipoDesconto\"]}\r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {errors[\"allItens[\" + i + \"].vlItem\"] && (\r\n \r\n {errors[\"allItens[\" + i + \"].vlItem\"]}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default ItensListPromotion;\r\n","/* Deletar está pasta, agora o caminho está na util/images*/\r\n\r\nconst getBase64 = (file:any):any =>{\r\n return new Promise((resolve, reject)=>{\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = function () {\r\n resolve(reader.result)\r\n };\r\n reader.onerror = function (error) {\r\n reject(error);\r\n };\r\n })\r\n}\r\n\r\nexport default getBase64","import { Dispatch } from \"redux\";\r\nimport { ToasterTypes } from \"../../enums/ToasterTypes\";\r\nimport GuaracampAPI from \"../../services/GuaracampAPI\";\r\nimport { updateToaster } from \"../helper/helper.store\";\r\nimport { updateLoading } from \"../loading/loading.store\";\r\nimport {\r\n addJustification,\r\n addPromotion,\r\n ClientesAppProps,\r\n deletePromotion,\r\n PromotionItensProps,\r\n PromotionsAbrangenciaClienteAppProps,\r\n PromotionsAbrangenciaTipoEstabelecimentoProps,\r\n updateAbrangenciaClienteApp,\r\n updateAbrangenciaTipoEstabelecimento,\r\n updateClientesApp,\r\n updateProducts,\r\n updatePromotion,\r\n updatePromotions,\r\n} from \"./comercial.store\";\r\n\r\n// Promotion\r\nexport const asyncGetPromotions = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/promocao\")\r\n .then((res) => {\r\n dispatch(updatePromotions(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetProducts = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/produto\")\r\n .then((res: any) => {\r\n const result: PromotionItensProps[] = [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idProduto: r.id,\r\n dsProduto: r.dsProduto,\r\n checked: false,\r\n qtItemPromocao: r.qtItemPromocao,\r\n idTipoDesconto: r.idTipoDesconto,\r\n vlItemPromocao: r.vlItemPromocao,\r\n });\r\n });\r\n dispatch(updateProducts(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n // .finally(() => {\r\n // dispatch(updateLoading(false));\r\n // });\r\n };\r\n};\r\n\r\nexport const asyncPostPromotion = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/promocao\", data)\r\n .then((res: any) => {\r\n \r\n dispatch(addPromotion(res.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Promoção criada com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetPromotionById = async (id: number) => {\r\n let response = null;\r\n await GuaracampAPI.get(`/promocao/${id}`)\r\n .then((res) => {\r\n response = res.data;\r\n })\r\n .catch((error) => {\r\n \r\n });\r\n return response;\r\n};\r\n\r\nexport const asyncUpdatePromotion = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/promocao\", data)\r\n .then((res: any) => {\r\n dispatch(updatePromotion(res.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Promoção atualizada com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncDeletePromotion = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.delete(`/promocao/${id}`)\r\n .then((res) => {\r\n dispatch(deletePromotion(id));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Promoção deletada com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetPromotionsAbrangenciaTipoEstabelecimento = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/tipoestabelecimento\")\r\n .then((res: any) => {\r\n const result: PromotionsAbrangenciaTipoEstabelecimentoProps[] = [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idTipoEstabelecimento: r.id,\r\n dsTipoEstabelecimento: r.dsTipoEstabelecimento,\r\n checked: r.checked,\r\n });\r\n });\r\n dispatch(updateAbrangenciaTipoEstabelecimento(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n // .finally(() => {\r\n // dispatch(updateLoading(false));\r\n // });\r\n };\r\n};\r\n\r\nexport const asyncGetPromotionsAbrangenciaClienteApp = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/clientes/app\")\r\n .then((res: any) => {\r\n const result: PromotionsAbrangenciaClienteAppProps[] = [];\r\n res.data.value.map((r: any) => {\r\n result.push({\r\n idClientAPP: r.id,\r\n nmCliente: r.nmCliente,\r\n });\r\n });\r\n dispatch(updateAbrangenciaClienteApp(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n // .finally(() => {\r\n // dispatch(updateLoading(false));\r\n // });\r\n };\r\n};\r\n\r\nexport const asyncGetClientesApps = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/clientes/app\")\r\n .then((res: any) => {\r\n const result: ClientesAppProps[] = [];\r\n res.data.value.map((r: any) => {\r\n result.push({\r\n idClienteApp: r.id,\r\n nmCliente: r.nmCliente,\r\n });\r\n });\r\n dispatch(updateClientesApp(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n // .finally(() => {\r\n // dispatch(updateLoading(false));\r\n // });\r\n };\r\n};\r\n\r\n// Notificações\r\nexport const asyncPostNotification = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n \r\n GuaracampAPI.post(\"/notificacao\", data)\r\n .then((res: any) => {\r\n \r\n dispatch(addJustification(res.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Notificação enviada com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n","import { Checkbox } from 'primereact/checkbox';\r\nimport { PromotionsAbrangenciaTipoEstabelecimentoProps } from '../../../../store/comercial/comercial.store';\r\n\r\n\r\ninterface EstablishmentsTypesPromotionProps {\r\n view?: boolean;\r\n checkboxes?: PromotionsAbrangenciaTipoEstabelecimentoProps;\r\n cod?: number;\r\n id?: number;\r\n handleDelete?: (id: any) => void;\r\n handleCheckboxes: (e: any) => void;\r\n establishments: PromotionsAbrangenciaTipoEstabelecimentoProps[];\r\n}\r\n\r\nconst EstablishmentsTypesPromotion = ({\r\n view,\r\n handleCheckboxes,\r\n establishments,\r\n}: EstablishmentsTypesPromotionProps) => {\r\n return (\r\n <>\r\n {establishments?.map((itens, i) => {\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\nexport default EstablishmentsTypesPromotion;\r\n","import { Button } from \"primereact/button\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport ItensListPromotion from \"../../../../components/Comercial/Promotion/ItensList\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport getBase64 from \"../../../../ConvertBase64Img\";\r\nimport { RootState } from \"../../../../store\";\r\nimport {\r\n asyncGetPromotionById,\r\n asyncUpdatePromotion,\r\n} from \"../../../../store/comercial/comercial.actions\";\r\n\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport {\r\n ClientesAppProps,\r\n PromotionItensProps,\r\n} from \"../../../../store/comercial/comercial.store\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport EstablishmentsTypesPromotion from \"../../../../components/Comercial/Promotion/AbrangenciaEstablishmentList\";\r\nimport Select from \"react-select\";\r\n\r\ninterface PromotionEditProps {\r\n id: number;\r\n}\r\n\r\nexport type SelectProps = {\r\n label: string;\r\n value: number;\r\n};\r\n\r\nconst categories = [\r\n { name: \"Todos\", value: 0 },\r\n { name: \"Tipo de estabelecimento\", value: 1 },\r\n { name: \"Cliente\", value: 3 },\r\n // { name: \"Localização\", value: 3 },\r\n];\r\n\r\nconst PromotionEdit: React.FC = ({ id }) => {\r\n const dispatch = useDispatch();\r\n\r\n const [visible, setVisible] = useState(false);\r\n const [dsPromocao, setDsPromocao] = useState(\"\");\r\n const [dtValidadeDe, setDtValidadeDe] = useState(\"\");\r\n const [dtValidadeAte, setDtValidadeAte] = useState(\"\");\r\n const [inAtivo, setInAtivo] = useState();\r\n const [promotion, setPromotion] = useState(null);\r\n const [txImagemPromocao, setTxImagemPromocao] = useState(\"\");\r\n const [errors, setErrors] = useState({} as any);\r\n const [updateItens, setUpdateItens] = useState([]);\r\n const [step, setStep] = useState(1);\r\n const [selectedCategory, setSelectedCategory] = useState(categories[0]);\r\n const [allClients, setAllClients] = useState([]);\r\n const [clientSelected, setClientSelected] = useState(\"\");\r\n const [filteredClients, setFilteredClients] = useState(\r\n []\r\n );\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const comercial = useSelector((state: RootState) => state.comercial);\r\n\r\n const getPromotion = async () => {\r\n const response: any = await asyncGetPromotionById(id);\r\n const checkboxesProdutos = markCheckboxes(response);\r\n const checkboxesTiposEstabelecimento =\r\n markCheckboxesTiposEstabelecimentos(response);\r\n\r\n checkboxesProdutos.abrangenciaTipoEstabelecimento =\r\n checkboxesTiposEstabelecimento.abrangenciaTipoEstabelecimento;\r\n\r\n if (response?.idTipoAbrangencia === null) {\r\n setSelectedCategory(categories[0]);\r\n } else if (response?.idTipoAbrangencia === 1) {\r\n setSelectedCategory(categories[response?.idTipoAbrangencia]);\r\n } else {\r\n setSelectedCategory(categories[response?.idTipoAbrangencia - 1]);\r\n }\r\n\r\n setFilteredClients(response?.abrangenciaClienteApp);\r\n\r\n setTxImagemPromocao(response?.txImagemPromocao);\r\n setPromotion(checkboxesProdutos);\r\n setVisible(true);\r\n };\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n\r\n confirmDialog({\r\n message: \"Você quer remover este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDeleteClient(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDeleteClient = (id: number) => {\r\n const removingClient = filteredClients.filter((client) => {\r\n return client?.idClienteApp !== id;\r\n });\r\n setFilteredClients(removingClient);\r\n };\r\n\r\n const handleAddToFilteredClients = () => {\r\n const clientsFiltered = [...filteredClients];\r\n\r\n const clientExist = clientsFiltered.findIndex(\r\n (client) => client.idClienteApp === clientSelected.value\r\n );\r\n\r\n if (clientExist < 0) {\r\n clientsFiltered.push({\r\n idClienteApp: clientSelected.value,\r\n nmCliente: clientSelected.label,\r\n });\r\n } else {\r\n return;\r\n }\r\n\r\n setFilteredClients(clientsFiltered);\r\n };\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n accept: \"image/*\",\r\n onDrop: (acceptedFiles) => {\r\n setFile(acceptedFiles);\r\n },\r\n });\r\n\r\n const setFile = async (file: any) => {\r\n const imgBase64Convert = await getBase64(file[0]);\r\n setTxImagemPromocao(imgBase64Convert);\r\n };\r\n\r\n const deleteImage = () => {\r\n setTxImagemPromocao(\"\");\r\n };\r\n\r\n const handleCancelAccept = () => {\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n const handleCancelReject = () => {\r\n setVisible(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n confirmDialog({\r\n message: \"Você tem certeza que deseja fechar sem salvar a edição?\",\r\n header: \"Confirmação de edição de dados\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: handleCancelAccept,\r\n reject: handleCancelReject,\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n style: { width: \"60%\" },\r\n });\r\n };\r\n\r\n const handleCheckboxes = (event: any) => {\r\n const newArr = { ...promotion };\r\n const index = newArr.itens.findIndex(\r\n (chk: any) => chk.idProduto == event.target.value\r\n );\r\n\r\n newArr.itens[index] = {\r\n ...newArr.itens[index],\r\n checked: !newArr.itens[index].checked,\r\n };\r\n\r\n if (newArr.itens[index].checked === false) {\r\n newArr.itens[index] = {\r\n ...newArr.itens[index],\r\n qtItemPromocao: \"\",\r\n idTipoDesconto: \"\",\r\n vlItemPromocao: \"\",\r\n };\r\n }\r\n\r\n setPromotion(newArr);\r\n };\r\n\r\n const handleSelect = (e: any) => {\r\n const index = promotion.itens.findIndex(\r\n (item: any) => item.idProduto == parseInt(e.target.id)\r\n );\r\n\r\n let promo = { ...promotion };\r\n const newArr = [...promotion.itens];\r\n newArr[index] = { ...newArr[index], idTipoDesconto: e.target.value };\r\n\r\n promo.itens = newArr;\r\n\r\n setPromotion(promo);\r\n };\r\n\r\n const handleAmountDiscount = (e: any) => {\r\n const index = promotion.itens.findIndex(\r\n (item: any) => item.idProduto == e.target.id\r\n );\r\n\r\n let promo = { ...promotion };\r\n const newArr = [...promotion.itens];\r\n newArr[index] = {\r\n ...newArr[index],\r\n vlItemPromocao: parseInt(e.target.value),\r\n };\r\n\r\n promo.itens = newArr;\r\n\r\n setPromotion(promo);\r\n };\r\n\r\n const handleQuantity = (e: any) => {\r\n const index = promotion.itens.findIndex(\r\n (item: any) => item.idProduto == e.target.id\r\n );\r\n let promo = { ...promotion };\r\n const newArr = [...promotion.itens];\r\n newArr[index] = { ...newArr[index], qtItemPromocao: e.target.value };\r\n\r\n promo.itens = newArr;\r\n\r\n setPromotion(promo);\r\n };\r\n\r\n const markCheckboxesTiposEstabelecimentos = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [\r\n ...comercial.promotionsAbrangenciaTiposEstabelecimentosList,\r\n ];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (\r\n let j = 0;\r\n j <= response?.abrangenciaTipoEstabelecimento?.length;\r\n j++\r\n ) {\r\n if (\r\n result[i]?.idTipoEstabelecimento ===\r\n response?.abrangenciaTipoEstabelecimento[j]?.idTipoEstabelecimento\r\n ) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n response.abrangenciaTipoEstabelecimento = result;\r\n\r\n return response;\r\n };\r\n\r\n const handleCheckboxesTiposEstabelecimento = (event: any) => {\r\n const newArr = { ...promotion };\r\n const index = newArr.abrangenciaTipoEstabelecimento.findIndex(\r\n (chk: any) => chk.idTipoEstabelecimento == event.target.value\r\n );\r\n\r\n newArr.abrangenciaTipoEstabelecimento[index] = {\r\n ...newArr.abrangenciaTipoEstabelecimento[index],\r\n checked: !newArr.abrangenciaTipoEstabelecimento[index].checked,\r\n };\r\n\r\n setPromotion(newArr);\r\n };\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as any);\r\n\r\n try {\r\n const listaProdutosPromocao: any = [];\r\n const listaTiposEstabelecimentosPromotion: any = [];\r\n\r\n if (selectedCategory.value === 1) {\r\n promotion.abrangenciaTipoEstabelecimento.map((c: any) => {\r\n if (c.checked) {\r\n listaTiposEstabelecimentosPromotion.push({\r\n idTipoEstabelecimento: c.idTipoEstabelecimento,\r\n dsTipoEstabelecimento: c.dsTipoEstabelecimento,\r\n });\r\n }\r\n });\r\n }\r\n\r\n promotion.itens.map((p: any) => {\r\n if (p.checked) {\r\n listaProdutosPromocao.push({\r\n idProduto: p.idProduto,\r\n dsPromocao: p.dsPromocao,\r\n qtItemPromocao: Number(p.qtItemPromocao),\r\n vlItemPromocao: Number(p.vlItemPromocao),\r\n idTipoDesconto: p.idTipoDesconto,\r\n checked: p.checked,\r\n });\r\n }\r\n });\r\n\r\n const PromotionEdit = {\r\n id: promotion?.id,\r\n dsPromocao: promotion?.dsPromocao,\r\n dtValidadeDe: promotion?.dtValidadeDe,\r\n dtValidadeAte: promotion?.dtValidadeAte,\r\n inAtivo: promotion?.inAtivo,\r\n txImagemPromocao: promotion?.txImagemPromocao,\r\n itens: listaProdutosPromocao,\r\n allItens: promotion?.itens,\r\n idTipoAbrangencia:\r\n selectedCategory.value === 0 ? null : selectedCategory.value,\r\n abrangenciaTipoEstabelecimento:\r\n selectedCategory.value === 1\r\n ? listaTiposEstabelecimentosPromotion\r\n : [],\r\n abrangenciaClienteApp:\r\n selectedCategory.value === 3 ? filteredClients : [],\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n dsPromocao: Yup.string().required(\"Descrição obrigatória.\"),\r\n dtValidadeDe: Yup.string().required(\r\n \"Data de início da promoção obrigatória.\"\r\n ),\r\n dtValidadeAte: Yup.string().required(\r\n \"Data de término da promoção obrigatória.\"\r\n ),\r\n txImagemPromocao: Yup.string().required(\"Imagem da promoção obrigatória.\"),\r\n itens: Yup.array().min(\r\n 1,\r\n \"Defina um ou mais produtos. Quantidade do produto (maior que 0), tipo de desconto e valor/percentual de desconto (maior que 0) obrigatórios.\"\r\n ),\r\n allItens: Yup.array()\r\n .min(\r\n 1,\r\n \"Defina um ou mais produtos. Quantidade do produto (maior que 0), tipo de desconto e valor/percentual de desconto (maior que 0) obrigatórios.\"\r\n )\r\n .of(\r\n Yup.object().shape({\r\n [\"checked\"]: Yup.boolean(),\r\n [\"qtItemPromocao\"]: Yup.number().when(\"checked\", (checked: any) => {\r\n if (checked) {\r\n return Yup.number()\r\n .typeError(\"É obrigatorio.\")\r\n .required(\"Obrigatório.\")\r\n .min(1, \"Deve ser maior que 0.\");\r\n } else {\r\n return Yup.string();\r\n }\r\n }),\r\n\r\n [\"vlItemPromocao\"]: Yup.number().when(\"checked\", (checked: any) => {\r\n if (checked) {\r\n return Yup.number()\r\n .typeError(\"É obrigatorio.\")\r\n .required(\"Obrigatório.\")\r\n .min(1, \"Deve ser maior que 0.\");\r\n } else {\r\n return Yup.string();\r\n }\r\n }),\r\n\r\n [\"idTipoDesconto\"]: Yup.string().when(\"checked\", {\r\n is: true,\r\n then: Yup.string()\r\n .required(\"Obrigatório.\")\r\n .typeError(\"É obrigatorio.\"),\r\n }),\r\n })\r\n ),\r\n });\r\n\r\n await schema.validate(PromotionEdit, {\r\n abortEarly: false,\r\n });\r\n delete PromotionEdit.allItens;\r\n dispatch(asyncUpdatePromotion(PromotionEdit));\r\n setVisible(false);\r\n setStep(1);\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n\r\n return;\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = { ...result, dsPromocao: dsPromocao };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dsPromocao]);\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = { ...result, dtValidadeDe: dtValidadeDe };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dtValidadeDe]);\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = { ...result, dtValidadeAte: dtValidadeAte };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dtValidadeAte]);\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = { ...result, inAtivo: inAtivo };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [inAtivo]);\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = { ...result, txImagemPromocao: txImagemPromocao };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [txImagemPromocao]);\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = { ...result, idTipoAbrangecia: selectedCategory?.value };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedCategory?.value]);\r\n\r\n useEffect(() => {\r\n setAllClients(\r\n comercial.clientesAppList.map((client) => ({\r\n value: client?.idClienteApp,\r\n label: client?.nmCliente,\r\n }))\r\n );\r\n }, [comercial.clientesAppList]);\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = {\r\n ...result,\r\n abrangenciaClienteApp: filteredClients,\r\n };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [filteredClients]);\r\n\r\n const markCheckboxes = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...comercial.productsList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (let j = 0; j <= response?.itens?.length; j++) {\r\n if (result[i]?.idProduto === response?.itens[j]?.idProduto) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n qtItemPromocao: response?.itens[j]?.qtItemPromocao,\r\n idTipoDesconto: response?.itens[j]?.idTipoDesconto,\r\n vlItemPromocao: response?.itens[j]?.vlItemPromocao,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n response.itens = result;\r\n return response;\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n\r\n \r\n Editar Promoção\r\n

\r\n {step === 1 ? (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"promotion-buttons-active\"\r\n >\r\n Promoção\r\n \r\n
\r\n
\r\n {selectedCategory.value === 0 ? (\r\n setStep(2)}\r\n className=\"promotion-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"promotion-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n setInAtivo(e.checked)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Imagem

\r\n
\r\n {txImagemPromocao ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n
\r\n \r\n {errors.txImagemPromocao}\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n

Itens

\r\n
\r\n

Produto

\r\n

\r\n Quantidade\r\n

\r\n

\r\n Tipo de desconto\r\n

\r\n

\r\n Valor/Percentual\r\n

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

\r\n Prod\r\n

\r\n

\r\n Quant\r\n

\r\n

\r\n Tipo Desc\r\n

\r\n

\r\n V/P\r\n

\r\n
\r\n
\r\n
\r\n {promotion &&\r\n (loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n ))}\r\n
\r\n
\r\n {errors.itens && (\r\n \r\n {errors.itens}\r\n \r\n )}\r\n

\r\n Abrangência\r\n

\r\n
\r\n {categories.map((category) => {\r\n return (\r\n
\r\n setSelectedCategory(e.value)}\r\n checked={selectedCategory?.value === category.value}\r\n disabled={false}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"promotion-buttons-noactive\"\r\n >\r\n Promoção\r\n \r\n
\r\n
\r\n setStep(2)}\r\n className=\"promotion-buttons-active\"\r\n >\r\n Abrangência\r\n \r\n
\r\n
\r\n\r\n {selectedCategory.value === 1 && (\r\n
\r\n

Tipos de Estabelecimento

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {selectedCategory.value === 3 && (\r\n
\r\n

Clientes disponíveis

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n setClientSelected(text as SelectProps);\r\n }}\r\n noOptionsMessage={() =>\r\n \"Não foi encontrado nenhum registro.\"\r\n }\r\n />\r\n\r\n {clientSelected !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n

\r\n Clientes Selecionados\r\n

\r\n
\r\n {filteredClients.length > 0 ? (\r\n filteredClients.map((client) => {\r\n return (\r\n \r\n {client?.clienteApp?.nmCliente || client?.nmCliente}\r\n\r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n

\r\n Nenhum cliente foi adicionado.\r\n

\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {/* {selectedCategory.value === 4 && (\r\n
\r\n

Localização

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n // \r\n
\r\n
\r\n
\r\n

UF

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Cidade

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Bairro

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n

Locais selecionados

\r\n Bairro, cidade, UF\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )} */}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PromotionEdit;\r\n","import { Button } from \"primereact/button\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport ItensListPromotion from \"../../../../components/Comercial/Promotion/ItensList\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { RootState } from \"../../../../store\";\r\nimport { asyncGetPromotionById } from \"../../../../store/comercial/comercial.actions\";\r\nimport { ClientesAppProps } from \"../../../../store/comercial/comercial.store\";\r\nimport Select from \"react-select\";\r\nimport EstablishmentsTypesPromotion from \"../../../../components/Comercial/Promotion/AbrangenciaEstablishmentList\";\r\n\r\ninterface PromotionViewProps {\r\n id: number;\r\n}\r\n\r\nconst categories = [\r\n { name: \"Todos\", value: 0 },\r\n { name: \"Tipo de estabelecimento\", value: 1 },\r\n { name: \"Cliente\", value: 3 },\r\n // { name: \"Localização\", value: 3 },\r\n];\r\n\r\nexport type SelectProps = {\r\n label: string;\r\n value: number;\r\n};\r\n\r\nconst PromotionView: React.FC = ({ id }) => {\r\n const [visible, setVisible] = useState(false);\r\n const [dsPromocao, setDsPromocao] = useState(\"\");\r\n const [dtValidadeDe, setDtValidadeDe] = useState(\"\");\r\n const [dtValidadeAte, setDtValidadeAte] = useState(\"\");\r\n const [inAtivo, setInAtivo] = useState(false);\r\n const [promotion, setPromotion] = useState();\r\n const [txImagemPromocao, setTxImagemPromocao] = useState(\"\");\r\n const [errors, setErrors] = useState({} as any);\r\n const [step, setStep] = useState(1);\r\n const [selectedCategory, setSelectedCategory] = useState(categories[0]);\r\n const [allClients, setAllClients] = useState([]);\r\n const [clientSelected, setClientSelected] = useState(\"\");\r\n const [filteredClients, setFilteredClients] = useState(\r\n []\r\n );\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n\r\n const comercial = useSelector((state: RootState) => state.comercial);\r\n\r\n const getPromotion = async () => {\r\n const response: any = await asyncGetPromotionById(id);\r\n const checkboxesProdutos = markCheckboxes(response);\r\n const checkboxesTiposEstabelecimento =\r\n markCheckboxesTiposEstabelecimentos(response);\r\n\r\n checkboxesProdutos.abrangenciaTipoEstabelecimento =\r\n checkboxesTiposEstabelecimento.abrangenciaTipoEstabelecimento;\r\n\r\n if (response?.idTipoAbrangencia === null) {\r\n setSelectedCategory(categories[0]);\r\n } else if (response?.idTipoAbrangencia === 1) {\r\n setSelectedCategory(categories[response?.idTipoAbrangencia]);\r\n } else {\r\n setSelectedCategory(categories[response?.idTipoAbrangencia - 1]);\r\n }\r\n\r\n setFilteredClients(response?.abrangenciaClienteApp);\r\n setTxImagemPromocao(response?.txImagemPromocao);\r\n setPromotion(checkboxesProdutos);\r\n setVisible(true);\r\n };\r\n\r\n const handleCheckboxes = (event: any) => {\r\n const newArr = { ...promotion };\r\n const index = newArr.itens.findIndex(\r\n (chk: any) => chk.idProduto == event.target.value\r\n );\r\n\r\n newArr.itens[index] = {\r\n ...newArr.itens[index],\r\n checked: !newArr.itens[index].checked,\r\n };\r\n\r\n setPromotion(newArr);\r\n };\r\n\r\n const handleSelect = (e: any) => {\r\n const index = promotion.itens.findIndex(\r\n (item: any) => item.idProduto == parseInt(e.target.id)\r\n );\r\n\r\n let promo = { ...promotion };\r\n const newArr = [...promotion.itens];\r\n newArr[index] = { ...newArr[index], idTipoDesconto: e.target.value };\r\n\r\n promo.itens = newArr;\r\n\r\n setPromotion(promo);\r\n };\r\n\r\n const handleAmountDiscount = (e: any) => {\r\n const index = promotion.itens.findIndex(\r\n (item: any) => item.idProduto == e.target.id\r\n );\r\n\r\n let promo = { ...promotion };\r\n const newArr = [...promotion.itens];\r\n newArr[index] = {\r\n ...newArr[index],\r\n vlItemPromocao: parseInt(e.target.value),\r\n };\r\n\r\n promo.itens = newArr;\r\n\r\n setPromotion(promo);\r\n };\r\n\r\n const handleQuantity = (e: any) => {\r\n const index = promotion.itens.findIndex(\r\n (item: any) => item.idProduto == e.target.id\r\n );\r\n let promo = { ...promotion };\r\n const newArr = [...promotion.itens];\r\n newArr[index] = { ...newArr[index], qtItemPromocao: e.target.value };\r\n\r\n promo.itens = newArr;\r\n\r\n setPromotion(promo);\r\n };\r\n\r\n const handleCheckboxesTiposEstabelecimento = (event: any) => {\r\n const newArr = { ...promotion };\r\n const index = newArr.abrangenciaTipoEstabelecimento.findIndex(\r\n (chk: any) => chk.idTipoEstabelecimento == event.target.value\r\n );\r\n\r\n newArr.abrangenciaTipoEstabelecimento[index] = {\r\n ...newArr.abrangenciaTipoEstabelecimento[index],\r\n checked: !newArr.abrangenciaTipoEstabelecimento[index].checked,\r\n };\r\n\r\n setPromotion(newArr);\r\n };\r\n\r\n const markCheckboxesTiposEstabelecimentos = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [\r\n ...comercial.promotionsAbrangenciaTiposEstabelecimentosList,\r\n ];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (\r\n let j = 0;\r\n j <= response?.abrangenciaTipoEstabelecimento?.length;\r\n j++\r\n ) {\r\n if (\r\n result[i]?.idTipoEstabelecimento ===\r\n response?.abrangenciaTipoEstabelecimento[j]?.idTipoEstabelecimento\r\n ) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n response.abrangenciaTipoEstabelecimento = result;\r\n\r\n return response;\r\n };\r\n\r\n const markCheckboxes = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...comercial.productsList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (let j = 0; j <= response?.itens?.length; j++) {\r\n if (result[i]?.idProduto === response?.itens[j]?.idProduto) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n qtItemPromocao: response?.itens[j]?.qtItemPromocao,\r\n idTipoDesconto: response?.itens[j]?.idTipoDesconto,\r\n vlItemPromocao: response?.itens[j]?.vlItemPromocao,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n response.itens = result;\r\n return response;\r\n };\r\n\r\n useEffect(() => {\r\n if (promotion) {\r\n let result = promotion;\r\n result = {\r\n ...result,\r\n abrangenciaClienteApp: filteredClients,\r\n };\r\n setPromotion(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [filteredClients]);\r\n\r\n return (\r\n
\r\n \r\n\r\n setVisible(false)}\r\n >\r\n
\r\n setVisible(false)}\r\n />\r\n \r\n Visualizar Promoção\r\n

\r\n {step === 1 ? (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"promotion-buttons-active\"\r\n >\r\n Promoção\r\n \r\n
\r\n
\r\n {selectedCategory.value === 0 ? (\r\n setStep(2)}\r\n className=\"promotion-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"promotion-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n setInAtivo(e.checked)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Imagem

\r\n {txImagemPromocao ? (\r\n
\r\n \"Imagem\r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n
\r\n \r\n\r\n

Itens

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

Produto

\r\n

Quantidade

\r\n

Tipo de desconto

\r\n

Valor/Percentual

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

\r\n Prod\r\n

\r\n

\r\n Quant\r\n

\r\n

\r\n Tipo Desc\r\n

\r\n

\r\n V/P\r\n

\r\n
\r\n\r\n
\r\n
\r\n {promotion &&\r\n (loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n ))}\r\n
\r\n
\r\n

\r\n Abrangência\r\n

\r\n
\r\n {categories.map((category) => {\r\n return (\r\n
\r\n setSelectedCategory(e.value)}\r\n checked={selectedCategory.value === category.value}\r\n disabled={true}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"promotion-buttons-noactive\"\r\n >\r\n Promoção\r\n \r\n
\r\n
\r\n setStep(2)}\r\n className=\"promotion-buttons-active\"\r\n >\r\n Abrangência\r\n \r\n
\r\n
\r\n\r\n {selectedCategory.value === 1 && (\r\n
\r\n

Tipos de Estabelecimento

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {selectedCategory.value === 3 && (\r\n
\r\n

Clientes disponíveis

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n setClientSelected(text as SelectProps);\r\n }}\r\n noOptionsMessage={() =>\r\n \"Não foi encontrado nenhum registro.\"\r\n }\r\n isOptionDisabled={(allClients) =>\r\n allClients.disabled\r\n }\r\n />\r\n\r\n {clientSelected !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n

\r\n Clientes Selecionados\r\n

\r\n
\r\n {filteredClients.length > 0 ? (\r\n filteredClients.map((client) => {\r\n return (\r\n \r\n {client?.clienteApp?.nmCliente || client?.nmCliente}\r\n\r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n

\r\n Nenhum cliente foi adicionado.\r\n

\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {/* {selectedCategory.value === 4 && (\r\n
\r\n

Localização

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n // \r\n
\r\n
\r\n
\r\n

UF

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Cidade

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Bairro

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n

Locais selecionados

\r\n Bairro, cidade, UF\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )} */}\r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PromotionView;\r\n","import { Button } from 'primereact/button';\r\nimport './styles.css';\r\nimport PromotionEdit from '../../../../pages/Comercial/Promotion/PromotionEdit';\r\nimport PromotionView from '../../../../pages/Comercial/Promotion/PromotionView';\r\n\r\ninterface CardListProps {\r\n id: number;\r\n cdPromocao: string;\r\n dsPromocao: string;\r\n inAtivo: boolean;\r\n inputs: any[];\r\n handleDelete: (id: any) => void;\r\n}\r\n\r\nconst CardListPromotion = ({\r\n id,\r\n cdPromocao,\r\n dsPromocao,\r\n inAtivo = true,\r\n handleDelete,\r\n}: CardListProps) => {\r\n return (\r\n
\r\n
\r\n

{cdPromocao}

\r\n

{dsPromocao}

\r\n\r\n
\r\n {inAtivo === true ? 'Ativo' : 'Inativo'}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CardListPromotion;\r\n","import { Button } from \"primereact/button\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { RootState } from \"../../../../store\";\r\nimport ItensListPromotion from \"../../../../components/Comercial/Promotion/ItensList\";\r\nimport { asyncPostPromotion } from \"../../../../store/comercial/comercial.actions\";\r\nimport {\r\n ClientesAppProps,\r\n PromotionItensProps,\r\n PromotionsAbrangenciaTipoEstabelecimentoProps,\r\n} from \"../../../../store/comercial/comercial.store\";\r\nimport getBase64 from \"../../../../ConvertBase64Img\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport EstablishmentsTypesPromotion from \"../../../../components/Comercial/Promotion/AbrangenciaEstablishmentList\";\r\nimport Select from \"react-select\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\n\r\nexport type SelectProps = {\r\n label: string;\r\n value: number;\r\n};\r\n\r\nconst categories = [\r\n { name: \"Todos\", value: 0 },\r\n { name: \"Tipo de estabelecimento\", value: 1 },\r\n { name: \"Cliente\", value: 3 },\r\n // { name: \"Localização\", value: 3 },\r\n];\r\n\r\nconst PromotionCreate: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [dsPromocao, setDsPromocao] = useState(\"\");\r\n const [dtValidadeDe, setDtValidadeDe] = useState(\"\");\r\n const [dtValidadeAte, setDtValidadeAte] = useState(\"\");\r\n const [inAtivo, setInAtivo] = useState(false);\r\n const [updateItens, setUpdateItens] = useState([]);\r\n const [txImagemPromocao, setTxImagemPromocao] = useState(\"\");\r\n const [errors, setErrors] = useState({} as any);\r\n const [selectedCategory, setSelectedCategory] = useState(categories[0]);\r\n const [step, setStep] = useState(1);\r\n const [selectUF, setSelectUF] = useState(\"\");\r\n const [\r\n updateAbrangenciaTipoEstabelecimentoPromotions,\r\n setUpdateAbrangenciaTipoEstabelecimentoPromotions,\r\n ] = useState([]);\r\n const [clientSelected, setClientSelected] = useState(\"\");\r\n const [allClients, setAllClients] = useState([]);\r\n const [filteredClients, setFilteredClients] = useState(\r\n []\r\n );\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const comercial = useSelector((state: RootState) => state.comercial);\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n\r\n confirmDialog({\r\n message: \"Você quer remover este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDeleteClient(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDeleteClient = (id: number) => {\r\n const removingClient = filteredClients.filter((client) => {\r\n return client?.idClienteApp !== id;\r\n });\r\n setFilteredClients(removingClient);\r\n };\r\n\r\n const handleAddToFilteredClients = () => {\r\n const clientsFiltered = [...filteredClients];\r\n\r\n const clientExist = clientsFiltered.findIndex(\r\n (client) => client.idClienteApp === clientSelected.value\r\n );\r\n\r\n if (clientExist < 0) {\r\n clientsFiltered.push({\r\n idClienteApp: clientSelected.value,\r\n nmCliente: clientSelected.label,\r\n });\r\n } else {\r\n return;\r\n }\r\n\r\n setFilteredClients(clientsFiltered);\r\n };\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n accept: \"image/*\",\r\n onDrop: (acceptedFiles) => {\r\n setFile(acceptedFiles);\r\n },\r\n });\r\n\r\n const setFile = async (file: any) => {\r\n const imgBase64Convert = await getBase64(file[0]);\r\n\r\n setTxImagemPromocao(imgBase64Convert);\r\n };\r\n\r\n const deleteImage = () => {\r\n setTxImagemPromocao(\"\");\r\n };\r\n\r\n const handleCheckboxes = (event: any) => {\r\n const index = updateItens.findIndex(\r\n (chk) => chk.idProduto == event.target.value\r\n );\r\n const newArr = [...updateItens];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n\r\n if (newArr[index].checked === false) {\r\n newArr[index] = {\r\n ...newArr[index],\r\n qtItemPromocao: \"\",\r\n idTipoDesconto: \"\",\r\n vlItemPromocao: \"\",\r\n };\r\n }\r\n\r\n setUpdateItens(newArr);\r\n };\r\n\r\n const handleSelect = (e: any) => {\r\n const index = updateItens.findIndex(\r\n (item) => item.idProduto == parseInt(e.target.id)\r\n );\r\n const newArr = [...updateItens];\r\n newArr[index] = { ...newArr[index], idTipoDesconto: e.target.value };\r\n\r\n setUpdateItens(newArr);\r\n };\r\n\r\n const handleAmountDiscount = (e: any) => {\r\n const index = updateItens.findIndex(\r\n (item) => item.idProduto == e.target.id\r\n );\r\n\r\n const newArr = [...updateItens];\r\n newArr[index] = {\r\n ...newArr[index],\r\n vlItemPromocao: Math.abs(parseInt(e.target.value)),\r\n };\r\n\r\n setUpdateItens(newArr);\r\n };\r\n\r\n const handleQuantity = (e: any) => {\r\n const index = updateItens.findIndex(\r\n (item) => item.idProduto == e.target.id\r\n );\r\n\r\n const newArr = [...updateItens];\r\n newArr[index] = {\r\n ...newArr[index],\r\n qtItemPromocao: Math.abs(e.target.value),\r\n };\r\n\r\n setUpdateItens(newArr);\r\n };\r\n\r\n const handleCheckboxesEstabelecimentos = (event: any) => {\r\n const index = updateAbrangenciaTipoEstabelecimentoPromotions.findIndex(\r\n (chk) => chk.idTipoEstabelecimento == event.target.value\r\n );\r\n const newArr = [...updateAbrangenciaTipoEstabelecimentoPromotions];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n\r\n setUpdateAbrangenciaTipoEstabelecimentoPromotions(newArr);\r\n };\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as any);\r\n\r\n try {\r\n const filteredItens = updateItens.filter((item) => {\r\n return item.checked;\r\n });\r\n\r\n const filteredAbrangenciaTipoEstabelecimento =\r\n updateAbrangenciaTipoEstabelecimentoPromotions.filter((item) => {\r\n return item.checked;\r\n });\r\n\r\n const promotion = {\r\n dsPromocao: dsPromocao,\r\n dtValidadeDe: dtValidadeDe,\r\n dtValidadeAte: dtValidadeAte,\r\n inAtivo: inAtivo,\r\n txImagemPromocao: txImagemPromocao,\r\n itens: filteredItens,\r\n allItens: updateItens,\r\n idTipoAbrangencia:\r\n selectedCategory.value === 0 ? null : selectedCategory.value,\r\n abrangenciaTipoEstabelecimento:\r\n selectedCategory.value === 1\r\n ? filteredAbrangenciaTipoEstabelecimento\r\n : [],\r\n abrangenciaClienteApp:\r\n selectedCategory.value === 3 ? filteredClients : [],\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n dsPromocao: Yup.string().required(\"Descrição obrigatória.\"),\r\n dtValidadeDe: Yup.string().required(\r\n \"Data de início da promoção obrigatória.\"\r\n ),\r\n dtValidadeAte: Yup.string().required(\r\n \"Data de término da promoção obrigatória.\"\r\n ),\r\n txImagemPromocao: Yup.string().required(\r\n \"Imagem da promoção obrigatória.\"\r\n ),\r\n itens: Yup.array().min(\r\n 1,\r\n \"Defina um ou mais produtos. Quantidade do produto (maior que 0), tipo de desconto e valor/percentual de desconto (maior que 0) obrigatórios.\"\r\n ),\r\n allItens: Yup.array()\r\n .min(\r\n 1,\r\n \"Defina um ou mais produtos. Quantidade do produto (maior que 0), tipo de desconto e valor/percentual de desconto (maior que 0) obrigatórios.\"\r\n )\r\n .of(\r\n Yup.object().shape({\r\n [\"checked\"]: Yup.boolean(),\r\n [\"qtItemPromocao\"]: Yup.number().when(\r\n \"checked\",\r\n (checked: any) => {\r\n if (checked) {\r\n return Yup.number()\r\n .typeError(\"É obrigatorio.\")\r\n .required(\"Obrigatório.\")\r\n .min(1, \"Deve ser maior que 0.\");\r\n } else {\r\n return Yup.string();\r\n }\r\n }\r\n ),\r\n\r\n [\"vlItemPromocao\"]: Yup.number().when(\r\n \"checked\",\r\n (checked: any) => {\r\n if (checked) {\r\n return Yup.number()\r\n .typeError(\"É obrigatorio.\")\r\n .required(\"Obrigatório.\")\r\n .min(1, \"Deve ser maior que 0.\");\r\n } else {\r\n return Yup.string();\r\n }\r\n }\r\n ),\r\n\r\n [\"idTipoDesconto\"]: Yup.string().when(\"checked\", {\r\n is: true,\r\n then: Yup.string()\r\n .required(\"Obrigatório.\")\r\n .typeError(\"É obrigatorio.\"),\r\n }),\r\n })\r\n ),\r\n });\r\n\r\n await schema.validate(promotion, {\r\n abortEarly: false,\r\n });\r\n\r\n // @ts-expect-error\r\n delete promotion.allItens;\r\n dispatch(asyncPostPromotion(promotion));\r\n setStep(1);\r\n setDsPromocao(\"\");\r\n setDtValidadeDe(\"\");\r\n setDtValidadeAte(\"\");\r\n setTxImagemPromocao(\"\");\r\n setInAtivo(false);\r\n setUpdateItens(comercial.productsList);\r\n setSelectedCategory(categories[0]);\r\n setUpdateAbrangenciaTipoEstabelecimentoPromotions(\r\n comercial.promotionsAbrangenciaTiposEstabelecimentosList\r\n );\r\n setClientSelected(\"\");\r\n setFilteredClients([]);\r\n setVisible(false);\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n return;\r\n }\r\n }\r\n };\r\n\r\n const handleCancel = () => {\r\n setStep(1);\r\n setDsPromocao(\"\");\r\n setDtValidadeDe(\"\");\r\n setDtValidadeAte(\"\");\r\n setInAtivo(false);\r\n setTxImagemPromocao(\"\");\r\n setUpdateItens(comercial.productsList);\r\n setVisible(false);\r\n setErrors(\"\");\r\n setClientSelected(\"\");\r\n setSelectedCategory(categories[0]);\r\n setUpdateAbrangenciaTipoEstabelecimentoPromotions(\r\n comercial.promotionsAbrangenciaTiposEstabelecimentosList\r\n );\r\n setClientSelected(\"\");\r\n setFilteredClients([]);\r\n };\r\n\r\n useEffect(() => {\r\n setUpdateItens(comercial.productsList);\r\n setUpdateAbrangenciaTipoEstabelecimentoPromotions(\r\n comercial.promotionsAbrangenciaTiposEstabelecimentosList\r\n );\r\n setAllClients(\r\n comercial.clientesAppList.map((client) => ({\r\n value: client?.idClienteApp,\r\n label: client?.nmCliente,\r\n }))\r\n );\r\n }, [comercial.productsList]);\r\n\r\n return (\r\n
\r\n setVisible(true)}\r\n className=\"sidebarv2-open-button\"\r\n color=\"#AA0061\"\r\n />\r\n\r\n \r\n
\r\n \r\n \r\n Cadastrar Promoção\r\n

\r\n {step === 1 ? (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"promotion-buttons-active\"\r\n >\r\n Promoção\r\n \r\n
\r\n
\r\n {selectedCategory.value === 0 ? (\r\n setStep(2)}\r\n className=\"promotion-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"promotion-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n setInAtivo(e.checked)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Imagem

\r\n
\r\n {txImagemPromocao ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n
\r\n \r\n {errors.imagem}\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n

Itens

\r\n
\r\n

Produto

\r\n

\r\n Quantidade\r\n

\r\n

\r\n Tipo de desconto\r\n

\r\n

\r\n Valor/Percentual\r\n

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

\r\n Prod\r\n

\r\n

\r\n Quant\r\n

\r\n

\r\n Tipo Desc\r\n

\r\n

\r\n V/P\r\n

\r\n
\r\n\r\n
\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n {errors.itens && (\r\n \r\n {errors.itens}\r\n \r\n )}\r\n

\r\n Abrangência\r\n

\r\n
\r\n {categories.map((category) => {\r\n return (\r\n
\r\n setSelectedCategory(e.value)}\r\n checked={selectedCategory.value === category.value}\r\n disabled={false}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"promotion-buttons-noactive\"\r\n >\r\n Promoção\r\n \r\n
\r\n
\r\n setStep(2)}\r\n className=\"promotion-buttons-active\"\r\n >\r\n Abrangência\r\n \r\n
\r\n
\r\n\r\n {selectedCategory.value === 1 && (\r\n
\r\n

Tipos de Estabelecimento

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {selectedCategory.value === 3 && (\r\n
\r\n

Clientes disponíveis

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n setClientSelected(text as SelectProps);\r\n }}\r\n noOptionsMessage={() =>\r\n \"Não foi encontrado nenhum registro.\"\r\n }\r\n />\r\n\r\n {clientSelected !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n

\r\n Clientes Selecionados\r\n

\r\n
\r\n {filteredClients.length > 0 ? (\r\n filteredClients.map((client) => {\r\n return (\r\n \r\n

{client?.nmCliente}

\r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n

\r\n Nenhum cliente foi adicionado.\r\n

\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n {/* {selectedCategory.value === 4 && (\r\n
\r\n

Localização

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n // \r\n
\r\n
\r\n
\r\n

UF

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Cidade

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Bairro

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n

Locais selecionados

\r\n Bairro, cidade, UF\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )} */}\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PromotionCreate;\r\n","import { confirmDialog } from \"primereact/confirmdialog\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport CardListPromotion from \"../../../components/Comercial/Promotion/CardList\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\nimport { RootState } from \"../../../store\";\r\nimport {\r\n asyncDeletePromotion,\r\n asyncGetClientesApps,\r\n asyncGetProducts,\r\n asyncGetPromotions,\r\n asyncGetPromotionsAbrangenciaClienteApp,\r\n asyncGetPromotionsAbrangenciaTipoEstabelecimento,\r\n} from \"../../../store/comercial/comercial.actions\";\r\nimport PromotionCreate from \"./PromotionCreate\";\r\nimport \"./styles.css\";\r\n\r\nconst Promotion: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [description, setDescription] = useState(\"\");\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const comercial = useSelector((state: RootState) => state.comercial);\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n confirmDialog({\r\n message: \"Você quer deletar este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDelete(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDelete = (id: number) => {\r\n if (id) dispatch(asyncDeletePromotion(id));\r\n };\r\n\r\n const inputsSideBar = [\r\n {\r\n type: \"text\",\r\n label: \"Descrição\",\r\n value: description,\r\n onChange: setDescription,\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetPromotions());\r\n dispatch(asyncGetProducts());\r\n dispatch(asyncGetClientesApps());\r\n dispatch(asyncGetPromotionsAbrangenciaTipoEstabelecimento());\r\n dispatch(asyncGetPromotionsAbrangenciaClienteApp());\r\n }, []);\r\n\r\n return (\r\n
\r\n

Promoções

\r\n \r\n\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : comercial.promotions.length > 0 ? (\r\n comercial.promotions.map((promotion, i) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Promotion;\r\n","import { Editor } from \"primereact/editor\";\r\n\r\ninterface DefaultInputProps {\r\n value: string;\r\n onTextChange: any;\r\n error?: string;\r\n}\r\n\r\n const DefaultEditor: React.FC = ({ value, onTextChange, error = '',}) => {\r\n return (\r\n \r\n \r\n {error && {error}}\r\n \r\n ) \r\n}\r\n\r\n\r\nexport default DefaultEditor\r\n","import React, { useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport \"./styles.css\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\nimport DefaultTextarea from \"../../../components/DefaultTextArea\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport { asyncPostNotification } from \"../../../store/comercial/comercial.actions\";\r\nimport DefaultEditor from \"../../../components/DefaultEditor\";\r\n\r\nconst Notifications: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [notificationTitle, setNotificationTitle] = useState(\"\");\r\n const [notificationText, setNotificationText] = useState(\"\");\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n\r\n const comercial = useSelector((state: RootState) => state.comercial);\r\n\r\n const handleCancelSendNotification = () => {\r\n setNotificationTitle('')\r\n setNotificationText('')\r\n };\r\n\r\n const handleSendNotification = async () => {\r\n setButtonLoading(true);\r\n\r\n try {\r\n const email = await localStorage.getItem(\"@USER_EMAIL_GUARACAMP\");\r\n\r\n const notification = {\r\n origem: \"admin/manual\",\r\n usuarioCriacao: email,\r\n assunto: notificationTitle,\r\n mensagem: notificationText,\r\n email: false,\r\n sms: false,\r\n push: false,\r\n notas: true,\r\n NotasRemetente: email,\r\n };\r\n\r\n dispatch(asyncPostNotification(notification));\r\n setNotificationTitle(\"\");\r\n setNotificationText(\"\");\r\n } catch {\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n }, 200);\r\n }\r\n };\r\n\r\n const handleNotification = () => {\r\n confirmDialog({\r\n header: \"Tem certeza que deseja enviar essa notificação?\",\r\n message:\r\n \"Após a confirmação, o envio não poderá ser cancelado e a notificação será enviada para todos usuários do aplicativo de vendas do cliente.\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: handleSendNotification,\r\n reject: handleCancelSendNotification,\r\n acceptLabel: \"Confirmar\",\r\n rejectLabel: \"Cancelar\",\r\n style: { width: \"50%\" },\r\n });\r\n };\r\n\r\n return (\r\n
\r\n

Notificações

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

Assunto

\r\n setNotificationTitle(e.htmlValue)} /> \r\n
\r\n\r\n
\r\n

Mensagem

\r\n setNotificationText(e.htmlValue)} /> \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Notifications;\r\n","import \"./style.css\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport {\r\n addCardsUpload,\r\n updateCardsPositionDestiny,\r\n updateCardsPositionOrigin,\r\n} from \"../../../store/marketing/marketing.store\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\n\r\ninterface CardUploadImgProps {\r\n txImagemBase64: string;\r\n txUrl: string;\r\n setFile: (acceptedFiles: any, id: number, txUrl: string) => void;\r\n onClickTrash: (id: number, txUrl: string) => void;\r\n id: number;\r\n}\r\n\r\nconst CardUploadImg: React.FC = ({\r\n txImagemBase64,\r\n txUrl,\r\n id,\r\n setFile,\r\n onClickTrash,\r\n}) => {\r\n const dispatch = useDispatch();\r\n\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n accept: \"image/*\",\r\n onDrop: (acceptedFiles) => {\r\n setFile(acceptedFiles, id, txUrl);\r\n },\r\n });\r\n\r\n const onDragDrop = {\r\n onDragEnter: (e: any) => {\r\n dispatch(updateCardsPositionDestiny(e.target.id));\r\n },\r\n onDragStart: (e: any) => {\r\n dispatch(updateCardsPositionOrigin(e.target.id));\r\n },\r\n onDragEnd: (e: any) => {\r\n // Copia lista de imagens\r\n let copy = [...marketing.cardsUpload];\r\n\r\n // Pega os index de origin e destino\r\n const indexOrigin = copy.findIndex(\r\n (item) => String(item.id) === marketing.cardPosition.origin\r\n );\r\n const indexDestiny = copy.findIndex(\r\n (item) => String(item.id) === marketing.cardPosition.destiny\r\n );\r\n\r\n // Faz a troca de imagens\r\n copy[indexOrigin] = {\r\n ...copy[indexOrigin],\r\n txImagemBase64: marketing.cardsUpload[indexDestiny].txImagemBase64,\r\n };\r\n copy[indexDestiny] = {\r\n ...copy[indexDestiny],\r\n txImagemBase64: marketing.cardsUpload[indexOrigin].txImagemBase64,\r\n };\r\n\r\n dispatch(addCardsUpload(copy));\r\n },\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

{txUrl}

\r\n
\r\n {txImagemBase64 ? (\r\n \r\n \r\n onClickTrash(id, txUrl)}\r\n style={{ cursor: \"pointer\" }}\r\n />\r\n
\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default CardUploadImg;\r\n","import { Dispatch } from \"redux\";\r\nimport { ToasterTypes } from \"../../enums/ToasterTypes\";\r\nimport GuaracampAPI from \"../../services/GuaracampAPI\";\r\nimport { updateToaster } from \"../helper/helper.store\";\r\nimport {\r\n updateCardsUpload,\r\n addCardsUpload,\r\n updateSelectOptionsTiposProduto,\r\n updateSelectOptionsGrupos,\r\n updateSelectOptionsSubGrupos,\r\n updateSelectOptionsClasses,\r\n updateSelectOptionsSabores,\r\n updateCardsImages,\r\n updateCupons,\r\n addCupom,\r\n deleteCupom,\r\n CuponsProductsProps,\r\n CuponsCategoriasProps,\r\n updateProducts,\r\n updateCategories,\r\n updateFeatured,\r\n updateCupom,\r\n updateAbrangenciaTipoEstabelecimento,\r\n updateAbrangenciaClienteApp,\r\n AbrangenciaTipoEstabelecimentoProps,\r\n CuponsAbrangenciaClienteAppProps,\r\n updateClientesApp,\r\n ClientesAppProps,\r\n updateAcumuloDePontos,\r\n updateProgramaDePontos,\r\n updateMerchandising,\r\n ProgramaDePontosAbrangenciaTipoEstabelecimentoProps,\r\n updateResgateTipoEstabelecimento,\r\n updateMerchandisingTipoEstabelecimento,\r\n} from \"./marketing.store\";\r\n\r\nimport { updateLoading } from \"../loading/loading.store\";\r\n\r\nexport interface newCardSaveImagesProduct {\r\n id: number;\r\n imagem: string;\r\n}\r\n\r\nexport interface newCardSavePutFeatured {\r\n id: number;\r\n inDestaque: boolean;\r\n}\r\n\r\nexport interface newCardSavePutPointsAccumulation {\r\n descricao: string;\r\n vlItem: number;\r\n qtPonto: number;\r\n idProduto: number;\r\n idTipoPontoRegraPontuacao: number;\r\n id: number;\r\n}\r\n\r\nexport interface newCardSavePutProgramPoints {\r\n id: number;\r\n idProduto: number;\r\n descricao: string;\r\n imagem: string;\r\n qtPontoResgate: number;\r\n qtMaxItemPedido: number;\r\n inAtivo: boolean;\r\n pontoRegraResgateTipoEstabelecimento: PontoRegraResgateTipoEstabelecimentoProps[];\r\n}\r\n\r\nexport interface PontoRegraResgateTipoEstabelecimentoProps {\r\n idTipoEstabelecimento: number;\r\n dsTipoEstabelecimento: string;\r\n checked: boolean;\r\n}\r\n\r\nexport interface newCardSavePutMerchandising {\r\n id: number;\r\n idProduto: number;\r\n descricao: string;\r\n imagem: string;\r\n qtMinDiaResgate: any | null;\r\n qtMaxPedido: any | null;\r\n inAtivo: boolean;\r\n matMerchanTipoEstabelecimento: MerchandisingAbrangenciaTipoEstabelecimentoProps[];\r\n}\r\n\r\nexport interface MerchandisingAbrangenciaTipoEstabelecimentoProps {\r\n idTipoEstabelecimento: number;\r\n dsTipoEstabelecimento: string;\r\n checked: boolean;\r\n}\r\n\r\nexport const asyncGetCardsUpload = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/imagens/carrossel\")\r\n .then((res) => {\r\n dispatch(updateCardsUpload(res.data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPostCardsUpload = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/imagens/carrossel/lista\", data)\r\n .then((res: any) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Imagens salvas com sucesso.\",\r\n })\r\n );\r\n dispatch(addCardsUpload(data));\r\n dispatch(updateLoading(false));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\n// Get para os Select:\r\nexport const asyncGetTiposProduto = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/tipoproduto\")\r\n .then((res: any) => {\r\n // ordenar\r\n const resultOrder = res.data.sort((a: any, b: any) => {\r\n return a.dsTipoProduto > b.dsTipoProduto\r\n ? 1\r\n : b.dsTipoProduto > a.dsTipoProduto\r\n ? -1\r\n : 0;\r\n });\r\n\r\n dispatch(updateSelectOptionsTiposProduto(resultOrder));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetGrupos = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/grupoproduto\")\r\n .then((res: any) => {\r\n const resultOrder = res.data.sort((a: any, b: any) => {\r\n return a.dsGrupoProduto > b.dsGrupoProduto\r\n ? 1\r\n : b.dsGrupoProduto > a.dsGrupoProduto\r\n ? -1\r\n : 0;\r\n });\r\n\r\n dispatch(updateSelectOptionsGrupos(resultOrder));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetSubGrupos = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/subgrupoproduto\")\r\n .then((res: any) => {\r\n const resultOrder = res.data.sort((a: any, b: any) => {\r\n return a.dsSubgrupoProduto > b.dsSubgrupoProduto\r\n ? 1\r\n : b.dsSubgrupoProduto > a.dsSubgrupoProduto\r\n ? -1\r\n : 0;\r\n });\r\n\r\n dispatch(updateSelectOptionsSubGrupos(resultOrder));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetClasses = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/classeproduto\")\r\n .then((res: any) => {\r\n const resultOrder = res.data.sort((a: any, b: any) => {\r\n return a.dsClasseProduto > b.dsClasseProduto\r\n ? 1\r\n : b.dsClasseProduto > a.dsClasseProduto\r\n ? -1\r\n : 0;\r\n });\r\n\r\n dispatch(updateSelectOptionsClasses(resultOrder));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetSabores = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/saborproduto\")\r\n .then((res: any) => {\r\n const resultOrder = res.data.sort((a: any, b: any) => {\r\n return a.dsSaborProduto > b.dsSaborProduto\r\n ? 1\r\n : b.dsSaborProduto > a.dsSaborProduto\r\n ? -1\r\n : 0;\r\n });\r\n\r\n dispatch(updateSelectOptionsSabores(resultOrder));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n/* Images */\r\nexport const asyncClearFilterProducts = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"produto/admin/filtro\")\r\n .then((res: any) => {\r\n dispatch(updateCardsImages(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetFilterProduct = (\r\n idTipoProduto: number,\r\n idGrupoProduto: number,\r\n idSubgrupoProduto: number,\r\n idClasseProduto: number,\r\n idSaborProduto: number\r\n) => {\r\n const tipo = idTipoProduto ? `&tipo=${idTipoProduto}` : \"\";\r\n const grupo = idGrupoProduto ? `&grupo=${idGrupoProduto}` : \"\";\r\n const subGrupo = idSubgrupoProduto ? `&subgrupo=${idSubgrupoProduto}` : \"\";\r\n const classe = idClasseProduto ? `&classe=${idClasseProduto}` : \"\";\r\n const sabor = idSaborProduto ? `&sabor=${idSaborProduto}` : \"\";\r\n\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\r\n `produto/admin/filtro?${tipo}${grupo}${subGrupo}${classe}${sabor}`\r\n )\r\n .then((res: any) => {\r\n const resultOrder = res.data.sort((a: any, b: any) => {\r\n return a.dsProduto > b.dsProduto\r\n ? 1\r\n : b.dsProduto > a.dsProduto\r\n ? -1\r\n : 0;\r\n });\r\n dispatch(updateCardsImages(resultOrder));\r\n dispatch(updateAcumuloDePontos(resultOrder));\r\n dispatch(updateProgramaDePontos(resultOrder));\r\n dispatch(updateMerchandising(resultOrder));\r\n dispatch(updateFeatured(resultOrder));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPutImagesProducts = (\r\n arraySave: newCardSaveImagesProduct[]\r\n) => {\r\n return async (dispatch: any) => {\r\n await GuaracampAPI.put(\"/produto/imagens\", arraySave)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Imagens salvas com sucesso.\",\r\n })\r\n );\r\n dispatch(updateLoading(false));\r\n return res.data;\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\n// cupons\r\nexport const asyncGetCupons = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"/cupom\")\r\n .then((res) => {\r\n dispatch(updateCupons(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPostCupom = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.post(\"/cupom\", data)\r\n .then((res: any) => {\r\n dispatch(addCupom(res.data.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Cupom criado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncDeleteCupom = (id: number) => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.delete(`/cupom/${id}`)\r\n .then((res) => {\r\n dispatch(deleteCupom(id));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Cupom deletado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetCupomById = async (id: number) => {\r\n let response = null;\r\n await GuaracampAPI.get(`/cupom/${id}`)\r\n .then((res) => {\r\n response = res.data;\r\n })\r\n .catch((error) => {});\r\n\r\n return response;\r\n};\r\n\r\nexport const asyncGetProducts = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/produto\")\r\n .then((res: any) => {\r\n const result: CuponsProductsProps[] = [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idProduto: r.id,\r\n dsProduto: r.dsProduto,\r\n checked: false,\r\n });\r\n });\r\n dispatch(updateProducts(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetCuponsProducts = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/produto\")\r\n .then((res: any) => {\r\n const result: CuponsProductsProps[] = [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idProduto: r.id,\r\n dsProduto: r.dsProduto,\r\n checked: r.checked,\r\n });\r\n });\r\n dispatch(updateProducts(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetCuponsCategories = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/categoriaproduto\")\r\n .then((res: any) => {\r\n const result: CuponsCategoriasProps[] = [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idCategoriaProduto: r.id,\r\n dsCategoriaProduto: r.dsCategoriaProduto,\r\n checked: r.checked,\r\n });\r\n });\r\n dispatch(updateCategories(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetAbrangenciaTipoEstabelecimento = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/tipoestabelecimento\")\r\n .then((res: any) => {\r\n const result: AbrangenciaTipoEstabelecimentoProps[] = [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idTipoEstabelecimento: r.id,\r\n dsTipoEstabelecimento: r.dsTipoEstabelecimento,\r\n checked: r.checked,\r\n });\r\n });\r\n dispatch(updateAbrangenciaTipoEstabelecimento(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetClientesApps = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/clientes/app\")\r\n .then((res: any) => {\r\n const result: ClientesAppProps[] = [];\r\n res.data.value.map((r: any) => {\r\n result.push({\r\n idClienteApp: r.id,\r\n nmCliente: r.nmCliente,\r\n });\r\n });\r\n dispatch(updateClientesApp(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetCuponsAbrangenciaClienteApp = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/clientes/app\")\r\n .then((res: any) => {\r\n const result: CuponsAbrangenciaClienteAppProps[] = [];\r\n res.data.value.map((r: any) => {\r\n result.push({\r\n idClienteApp: r.id,\r\n nmCliente: r.nmCliente,\r\n });\r\n });\r\n dispatch(updateAbrangenciaClienteApp(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\nexport const asyncUpdateCupom = (data: any) => {\r\n return (dispatch: Dispatch) => {\r\n\r\n GuaracampAPI.post(\"/cupom\", data)\r\n .then((res: any) => {\r\n dispatch(updateCupom(res.data.data));\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Cupom atualizado com sucesso.\",\r\n })\r\n );\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\n/* featured */\r\nexport const asyncPutFeatured = (arraySave: newCardSavePutFeatured[]) => {\r\n return async (dispatch: any) => {\r\n await GuaracampAPI.put(\"/produto/destaques\", arraySave)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Destaques salvos com sucesso.\",\r\n })\r\n );\r\n dispatch(updateLoading(false));\r\n return res.data;\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\n// acumulo de pontos\r\nexport const asyncPutPointsAccumulation = (\r\n arrayPointsAccumulation: newCardSavePutPointsAccumulation[]\r\n) => {\r\n return async (dispatch: any) => {\r\n await GuaracampAPI.put(\"/pontos/acumulo/admin\", arrayPointsAccumulation)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Regras de acúmulo de pontos salvas com sucesso.\",\r\n })\r\n );\r\n dispatch(updateLoading(false));\r\n return res.data;\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncClearFilterAcumulation = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"produto/admin/acumulopontos\")\r\n .then((res: any) => {\r\n dispatch(updateAcumuloDePontos(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetPointsAccumulation = (\r\n idTipo: number,\r\n idGrupoProduto: number,\r\n idSubGrupoProduto: number,\r\n idClasseProduto: number,\r\n idSaborProduto: number\r\n) => {\r\n const tipo = idTipo ? `&tipo=${idTipo}` : \"\";\r\n const grupo = idGrupoProduto ? `&grupo=${idGrupoProduto}` : \"\";\r\n const subGrupo = idSubGrupoProduto ? `&subgrupo=${idSubGrupoProduto}` : \"\";\r\n const classe = idClasseProduto ? `&classe=${idClasseProduto}` : \"\";\r\n const sabor = idSaborProduto ? `&sabor=${idSaborProduto}` : \"\";\r\n\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\r\n `/produto/admin/acumulopontos?${tipo}${grupo}${subGrupo}${classe}${sabor}`\r\n )\r\n .then((res: any) => {\r\n dispatch(updateAcumuloDePontos(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\n// programa de pontos\r\n\r\nexport const asyncClearFilterPointsAcumulation = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"produto/admin/resgatepontos\")\r\n .then((res: any) => {\r\n dispatch(updateProgramaDePontos(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetProgramPoints = (\r\n idTipo: number,\r\n idGrupoProduto: number,\r\n idSubGrupoProduto: number,\r\n idClasseProduto: number,\r\n idSaborProduto: number\r\n) => {\r\n const tipo = idTipo ? `&tipo=${idTipo}` : \"\";\r\n const grupo = idGrupoProduto ? `&grupo=${idGrupoProduto}` : \"\";\r\n const subGrupo = idSubGrupoProduto ? `&subgrupo=${idSubGrupoProduto}` : \"\";\r\n const classe = idClasseProduto ? `&classe=${idClasseProduto}` : \"\";\r\n const sabor = idSaborProduto ? `&sabor=${idSaborProduto}` : \"\";\r\n\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\r\n `/produto/admin/resgatepontos?${tipo}${grupo}${subGrupo}${classe}${sabor}`\r\n )\r\n .then((res: any) => {\r\n dispatch(updateProgramaDePontos(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPutProgramPoints = (\r\n arrayProgramPoints: newCardSavePutProgramPoints[]\r\n) => {\r\n return async (dispatch: any) => {\r\n await GuaracampAPI.put(\"/pontos/resgate/admin\", arrayProgramPoints)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Regras de programa de pontos salvas com sucesso.\",\r\n })\r\n );\r\n dispatch(updateLoading(false));\r\n return res.data;\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetAbrangenciaProgramaDePontos = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/tipoestabelecimento\")\r\n .then((res: any) => {\r\n const result: ProgramaDePontosAbrangenciaTipoEstabelecimentoProps[] =\r\n [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idTipoEstabelecimento: r.id,\r\n dsTipoEstabelecimento: r.dsTipoEstabelecimento,\r\n checked: r.checked,\r\n });\r\n });\r\n dispatch(updateResgateTipoEstabelecimento(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n\r\n// merchandising\r\nexport const asyncClearFilterMerchandising = () => {\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\"produto/admin/matmerchan\")\r\n .then((res: any) => {\r\n dispatch(updateMerchandising(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetMerchandising = (\r\n idTipo: number,\r\n idGrupo: number,\r\n idSubGrupo: number,\r\n idClasse: number,\r\n idSabor: number\r\n) => {\r\n const tipo = idTipo ? `&tipo=${idTipo}` : \"\";\r\n const grupo = idGrupo ? `&grupo=${idGrupo}` : \"\";\r\n const subGrupo = idSubGrupo ? `&subgrupo=${idSubGrupo}` : \"\";\r\n const classe = idClasse ? `&classe=${idClasse}` : \"\";\r\n const sabor = idSabor ? `&sabor=${idSabor}` : \"\";\r\n\r\n return (dispatch: any) => {\r\n GuaracampAPI.get(\r\n `/produto/admin/matmerchan?${tipo}${grupo}${subGrupo}${classe}${sabor}`\r\n )\r\n .then((res: any) => {\r\n console.log(res.data);\r\n dispatch(updateMerchandising(res.data));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncPutMerchandising = (\r\n arrayMerchandising: newCardSavePutMerchandising[]\r\n) => {\r\n return async (dispatch: any) => {\r\n await GuaracampAPI.put(\"/matmerchan/admin\", arrayMerchandising)\r\n .then((res) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.success,\r\n title: \"Sucesso\",\r\n message: \"Regras de merchandising salvas com sucesso.\",\r\n })\r\n );\r\n dispatch(updateLoading(false));\r\n return res.data;\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Erro\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n dispatch(updateLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const asyncGetAbrangenciaMerchandising = () => {\r\n return (dispatch: Dispatch) => {\r\n GuaracampAPI.get(\"/tipoestabelecimento\")\r\n .then((res: any) => {\r\n const result: MerchandisingAbrangenciaTipoEstabelecimentoProps[] = [];\r\n res.data.map((r: any) => {\r\n result.push({\r\n idTipoEstabelecimento: r.id,\r\n dsTipoEstabelecimento: r.dsTipoEstabelecimento,\r\n checked: r.checked,\r\n });\r\n });\r\n dispatch(updateMerchandisingTipoEstabelecimento(result));\r\n })\r\n .catch((error) => {\r\n dispatch(\r\n updateToaster({\r\n type: ToasterTypes.error,\r\n title: \"Error\",\r\n message: error.response.data.erros[0].message,\r\n })\r\n );\r\n });\r\n };\r\n};\r\n","export default function getBase64(file:any):any{\r\n return new Promise((resolve, reject)=>{\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = function () {\r\n resolve(reader.result)\r\n };\r\n reader.onerror = function (error) {\r\n reject(error);\r\n };\r\n })\r\n}","import { useEffect } from \"react\";\r\nimport \"./style.css\";\r\nimport { COLORS } from \"../../../constants\";\r\n\r\nimport { Button } from \"primereact/button\";\r\n\r\nimport CardUploadImg from \"../../../components/Uploads/CardUploadImg\";\r\n\r\n//Usando Redux\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport {\r\n modifiedCardUpload,\r\n trashCardUpload,\r\n} from \"../../../store/marketing/marketing.store\";\r\nimport { RootState } from \"../../../store\";\r\n\r\nimport {\r\n asyncGetCardsUpload,\r\n asyncPostCardsUpload,\r\n} from \"../../../store/marketing/marketing.actions\";\r\nimport getBase64 from \"../../../util/images\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\nimport { updateLoading } from \"../../../store/loading/loading.store\";\r\n\r\nconst BannerCarrossel: React.FC = () => {\r\n const dispatch = useDispatch();\r\n\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n\r\n useEffect(() => {\r\n dispatch(updateLoading(true));\r\n dispatch(asyncGetCardsUpload());\r\n }, [dispatch]);\r\n\r\n const setFile = async (file: string, id: number, url: string) => {\r\n const imgBase64Convert = await getBase64(file[0]);\r\n\r\n const copyData = {\r\n id: id,\r\n txUrl: url,\r\n txImagemBase64: imgBase64Convert,\r\n };\r\n\r\n dispatch(modifiedCardUpload(copyData));\r\n };\r\n\r\n const onClickTrash = (id: number, url: string) => {\r\n const copyData = {\r\n id: id,\r\n txUrl: url,\r\n txImagemBase64: \"\",\r\n };\r\n dispatch(trashCardUpload(copyData));\r\n };\r\n\r\n const handleSubmit = () => {\r\n if (marketing.cardsUpload.length > 0 && !loading) {\r\n dispatch(updateLoading(true));\r\n dispatch(asyncPostCardsUpload(marketing.cardsUpload));\r\n }\r\n };\r\n\r\n return (\r\n
\r\n

Banner Carrossel

\r\n
\r\n

\r\n Arraste as imagens para definir a ordem de exibição{\" \"}\r\n \r\n

\r\n
\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : marketing.cardsUpload.length > 0 ? (\r\n \r\n {marketing.cardsUpload.map((cardUpload) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BannerCarrossel;\r\n","import { Checkbox } from 'primereact/checkbox';\r\nimport { CuponsProductsProps } from '../../../store/marketing/marketing.store';\r\n\r\n\r\ninterface ProductsListProps {\r\n view?: boolean;\r\n checkboxes?: CuponsProductsProps;\r\n cod?: number;\r\n idProduto?: number;\r\n handleDelete?: (id: any) => void;\r\n handleCheckboxes: (e: any) => void;\r\n itens: CuponsProductsProps[];\r\n}\r\n\r\nconst ProductListCupons = ({\r\n view,\r\n handleCheckboxes,\r\n itens,\r\n}: ProductsListProps) => {\r\n return (\r\n <>\r\n {itens?.map((itens, i) => {\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\nexport default ProductListCupons;\r\n","import { Checkbox } from 'primereact/checkbox';\r\nimport {\r\n CuponsCategoriasProps,\r\n} from '../../../store/marketing/marketing.store';\r\n\r\n\r\ninterface ItensListProps {\r\n view?: boolean;\r\n checkboxes?: CuponsCategoriasProps;\r\n cod?: number;\r\n idProduto?: number;\r\n handleDelete?: (id: any) => void;\r\n handleCheckboxes: (e: any) => void;\r\n itens: CuponsCategoriasProps[];\r\n}\r\n\r\nconst CategoryListCupons = ({\r\n view,\r\n handleCheckboxes,\r\n itens,\r\n}: ItensListProps) => {\r\n return (\r\n <>\r\n {itens?.map((itens, i) => {\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\nexport default CategoryListCupons;\r\n","import { Checkbox } from \"primereact/checkbox\";\r\nimport { AbrangenciaTipoEstabelecimentoProps } from \"../../../store/marketing/marketing.store\";\r\n\r\ninterface EstablishmentsTypesCuponsProps {\r\n view?: boolean;\r\n checkboxes?: AbrangenciaTipoEstabelecimentoProps;\r\n cod?: number;\r\n id?: number;\r\n handleDelete?: (id: any) => void;\r\n handleCheckboxes: (e: any) => void;\r\n establishments: AbrangenciaTipoEstabelecimentoProps[];\r\n}\r\n\r\nconst EstablishmentsTypesCupons = ({\r\n view,\r\n handleCheckboxes,\r\n establishments,\r\n}: EstablishmentsTypesCuponsProps) => {\r\n\r\n return (\r\n <>\r\n {establishments?.map((itens, i) => {\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\nexport default EstablishmentsTypesCupons;\r\n","import { Button } from \"primereact/button\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { AutoComplete } from \"primereact/autocomplete\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport DefaultSelect, {\r\n SelectOptions,\r\n} from \"../../../../components/DefaultSelect\";\r\nimport { RootState } from \"../../../../store\";\r\nimport {\r\n asyncGetCupomById,\r\n asyncUpdateCupom,\r\n} from \"../../../../store/marketing/marketing.actions\";\r\nimport ItensListCupons from \"../../../../components/Marketing/ProductsList\";\r\nimport CategoryListCupons from \"../../../../components/Marketing/CategoriesList\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\nimport { StateProps } from \"../../../../enums\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport EstablishmentsTypesCupons from \"../../../../components/Marketing/AbrangenciaEstablishmentList\";\r\nimport Select from \"react-select\";\r\nimport { ClientesAppProps } from \"../../../../store/marketing/marketing.store\";\r\n\r\ninterface CuponsEditProps {\r\n id: number;\r\n}\r\n\r\nconst categories = [\r\n { name: \"Por pedido\", value: 1 },\r\n { name: \"Por categoria\", value: 2 },\r\n { name: \"Por produto\", value: 3 },\r\n];\r\n\r\nconst categoriesCoverage = [\r\n { name: \"Todos\", value: 0 },\r\n { name: \"Tipo de estabelecimento\", value: 1 },\r\n { name: \"Cliente\", value: 3 },\r\n // { name: \"Localização\", value: 4 },\r\n];\r\n\r\nexport type SelectProps = {\r\n label: string;\r\n value: number;\r\n};\r\n\r\nconst CuponsEdit = ({ id }: CuponsEditProps) => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [step, setStep] = useState(1);\r\n const [dsCupom, setDsCupom] = useState(\"\");\r\n const [cdCupom, setCdCupom] = useState(\"\");\r\n const [dtValidadeDe, setDtValidadeDe] = useState(\"\");\r\n const [dtValidadeAte, setDtValidadeAte] = useState(\"\");\r\n const [vlCupom, setVlCupom] = useState(\"\");\r\n const [idTipoDesconto, setIdTipoDesconto] = useState(\"\");\r\n const [inAtivo, setInAtivo] = useState();\r\n const [inVisivel, setInVisivel] = useState();\r\n const [qtLiberada, setQtLiberada] = useState(\"\");\r\n const [qtUtilizada, setQtUtilizada] = useState(\"\");\r\n const [cupom, setCupom] = useState(null);\r\n const [errors, setErrors] = useState({} as any);\r\n const [selectedCategory, setSelectedCategory] = useState(categories[0]);\r\n const [selectedCategoryCoverage, setSelectedCategoryCoverage] = useState(\r\n categoriesCoverage[0]\r\n );\r\n const [clientApp, setClientApp] = useState(\"\");\r\n const [allClients, setAllClients] = useState([]);\r\n const [clientSelected, setClientSelected] = useState(\"\");\r\n const [filteredClients, setFilteredClients] = useState(\r\n []\r\n );\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const options: SelectOptions[] = [\r\n {\r\n name: \"Valor\",\r\n value: 2,\r\n },\r\n {\r\n name: \"Porcentagem\",\r\n value: 1,\r\n },\r\n ];\r\n\r\n const getCupom = async () => {\r\n const response: any = await asyncGetCupomById(id);\r\n const checkboxesProdutos = markCheckboxesProducts(response);\r\n const checkboxesCategorias = markCheckboxesCategories(response);\r\n const checkboxesTiposEstabelecimento =\r\n markCheckboxesTiposEstabelecimentos(response);\r\n\r\n checkboxesProdutos.categorias = checkboxesCategorias.categorias;\r\n checkboxesProdutos.abrangenciaTipoEstabelecimento =\r\n checkboxesTiposEstabelecimento.abrangenciaTipoEstabelecimento;\r\n\r\n setSelectedCategory(categories[response?.idTipoAplicacao - 1]);\r\n\r\n if (response?.idTipoAbrangencia === null) {\r\n setSelectedCategoryCoverage(categoriesCoverage[0]);\r\n } else if (response?.idTipoAbrangencia === 1) {\r\n setSelectedCategoryCoverage(\r\n categoriesCoverage[response?.idTipoAbrangencia]\r\n );\r\n } else {\r\n setSelectedCategoryCoverage(\r\n categoriesCoverage[response?.idTipoAbrangencia - 1]\r\n );\r\n }\r\n\r\n setFilteredClients(response?.abrangenciaClienteApp);\r\n\r\n setCupom(checkboxesProdutos);\r\n setVisible(true);\r\n };\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n\r\n confirmDialog({\r\n message: \"Você quer remover este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDeleteClient(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDeleteClient = (id: number) => {\r\n const removingClient = filteredClients.filter((client) => {\r\n return client?.idClienteApp !== id;\r\n });\r\n\r\n setFilteredClients(removingClient);\r\n };\r\n\r\n const handleAddToFilteredClients = () => {\r\n const clientsFiltered = [...filteredClients];\r\n const clientExist = clientsFiltered.findIndex(\r\n (client) => client.idClienteApp === clientSelected.value\r\n );\r\n\r\n if (clientExist < 0) {\r\n clientsFiltered.push({\r\n idClienteApp: clientSelected.value,\r\n nmCliente: clientSelected.label,\r\n });\r\n } else {\r\n return;\r\n }\r\n\r\n setFilteredClients(clientsFiltered);\r\n };\r\n\r\n const handleCheckboxesProduto = (event: any) => {\r\n const newArr = { ...cupom };\r\n const index = newArr.itens.findIndex((chk: any) => {\r\n return chk.idProduto == event.target.value;\r\n });\r\n\r\n newArr.itens[index] = {\r\n ...newArr.itens[index],\r\n checked: !newArr.itens[index].checked,\r\n };\r\n\r\n setCupom(newArr);\r\n };\r\n\r\n const handleCheckboxesCategoria = (event: any) => {\r\n const newArr = { ...cupom };\r\n const index = newArr.categorias.findIndex(\r\n (chk: any) => chk.idCategoriaProduto == event.target.value\r\n );\r\n\r\n newArr.categorias[index] = {\r\n ...newArr.categorias[index],\r\n checked: !newArr.categorias[index].checked,\r\n };\r\n\r\n setCupom(newArr);\r\n };\r\n\r\n const handleCheckboxesTiposEstabelecimento = (event: any) => {\r\n const newArr = { ...cupom };\r\n const index = newArr.abrangenciaTipoEstabelecimento.findIndex(\r\n (chk: any) => chk.idTipoEstabelecimento == event.target.value\r\n );\r\n\r\n newArr.abrangenciaTipoEstabelecimento[index] = {\r\n ...newArr.abrangenciaTipoEstabelecimento[index],\r\n checked: !newArr.abrangenciaTipoEstabelecimento[index].checked,\r\n };\r\n\r\n setCupom(newArr);\r\n };\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n\r\n try {\r\n const listaProdutosCupom: any = [];\r\n const listaCategoriasCupom: any = [];\r\n const listaTiposEstabelecimentosCupom: any = [];\r\n\r\n if (selectedCategory.value === 2) {\r\n cupom.categorias.map((c: any) => {\r\n if (c.checked) {\r\n listaCategoriasCupom.push({\r\n idCategoriaProduto: c.idCategoriaProduto,\r\n dsCategoriaProduto: c.dsCategoriaProduto,\r\n });\r\n }\r\n });\r\n } else if (selectedCategory.value === 3) {\r\n cupom.itens.map((p: any) => {\r\n if (p.checked) {\r\n listaProdutosCupom.push({\r\n idProduto: p.idProduto,\r\n dsProduto: p.dsProduto,\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (selectedCategoryCoverage.value === 1) {\r\n cupom.abrangenciaTipoEstabelecimento.map((c: any) => {\r\n if (c.checked) {\r\n listaTiposEstabelecimentosCupom.push({\r\n idTipoEstabelecimento: c.idTipoEstabelecimento,\r\n dsTipoEstabelecimento: c.dsTipoEstabelecimento,\r\n });\r\n }\r\n });\r\n }\r\n\r\n const CupomEdit = {\r\n id: cupom?.id,\r\n cdCupom: cupom?.cdCupom,\r\n dsCupom: cupom?.dsCupom,\r\n dtValidadeDe: cupom?.dtValidadeDe,\r\n dtValidadeAte: cupom?.dtValidadeAte,\r\n qtLiberada: cupom?.qtLiberada,\r\n qtUtilizada: cupom?.qtUtilizada,\r\n inAtivo: cupom?.inAtivo,\r\n inVisivel: cupom?.inVisivel,\r\n idTipoDesconto: cupom?.idTipoDesconto,\r\n vlCupom: cupom?.vlCupom,\r\n idTipoAplicacao: cupom?.idTipoAplicacao,\r\n idTipoAbrangencia: cupom?.idTipoAbrangencia,\r\n itens: listaProdutosCupom,\r\n categorias: listaCategoriasCupom,\r\n abrangenciaTipoEstabelecimento:\r\n selectedCategoryCoverage.value === 1\r\n ? listaTiposEstabelecimentosCupom\r\n : [],\r\n abrangenciaClienteApp:\r\n selectedCategoryCoverage.value === 3 ? filteredClients : [],\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n cdCupom: Yup.string().required(\"Código do cupom obrigatório.\"),\r\n dsCupom: Yup.string().required(\"Descrição do cupom obrigatório.\"),\r\n dtValidadeDe: Yup.string().required(\r\n \"Data de início do cupom obrigatório.\"\r\n ),\r\n dtValidadeAte: Yup.string().required(\r\n \"Data de encerramento do cupom obrigatório.\"\r\n ),\r\n idTipoDesconto: Yup.string().required(\r\n \"Tipo de desconto do cupom obrigatório.\"\r\n ),\r\n vlCupom: Yup.number()\r\n .typeError(\"Valor de desconto do cupom obrigatório.\")\r\n .min(1, \"O valor deve ser maior que 0.\"),\r\n // itens: Yup.object().required('Obrigatório pelo menos um item no cupom.'),\r\n // categorias: Yup.object().required('Obrigatório pelo menos uma categoria no cupom.'),\r\n });\r\n\r\n await schema.validate(cupom, {\r\n abortEarly: false,\r\n });\r\n\r\n dispatch(asyncUpdateCupom(CupomEdit));\r\n setStep(1);\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n setVisible(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, cdCupom: cdCupom };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [cdCupom]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, dsCupom: dsCupom };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dsCupom]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, dtValidadeDe: dtValidadeDe };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dtValidadeDe]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, dtValidadeAte: dtValidadeAte };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dtValidadeAte]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, inAtivo: inAtivo };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [inAtivo]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, inVisivel: inVisivel };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [inVisivel]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, idTipoDesconto: idTipoDesconto };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [idTipoDesconto]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, vlCupom: vlCupom };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [vlCupom]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, qtLiberada: qtLiberada };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [qtLiberada]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, qtUtilizada: qtUtilizada };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [qtUtilizada]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = { ...result, idTipoAplicacao: selectedCategory?.value };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedCategory?.value]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = {\r\n ...result,\r\n idTipoAbrangencia: selectedCategoryCoverage?.value,\r\n };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedCategoryCoverage?.value]);\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = {\r\n ...result,\r\n abrangenciaClienteApp: filteredClients,\r\n };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [filteredClients]);\r\n\r\n useEffect(() => {\r\n setAllClients(\r\n marketing.clientesAppList.map((client) => ({\r\n value: client?.idClienteApp,\r\n label: client?.nmCliente,\r\n }))\r\n );\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [marketing.clientesAppList]);\r\n\r\n const markCheckboxesProducts = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...marketing.cuponsProductsList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (let j = 0; j <= response?.itens?.length; j++) {\r\n if (result[i]?.idProduto === response?.itens[j]?.idProduto) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n response.itens = result;\r\n\r\n return response;\r\n };\r\n\r\n const markCheckboxesCategories = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...marketing.cuponsCategoriesList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (let j = 0; j <= response?.categorias?.length; j++) {\r\n if (result[i]?.idCategoriaProduto === response?.categorias[j]?.idCategoriaProduto) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n response.categorias = result;\r\n\r\n return response;\r\n };\r\n\r\n const markCheckboxesTiposEstabelecimentos = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...marketing.abrangenciaTiposEstabelecimentosList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (\r\n let j = 0;\r\n j <= response?.abrangenciaTipoEstabelecimento?.length;\r\n j++\r\n ) {\r\n if (\r\n result[i]?.idTipoEstabelecimento ===\r\n response?.abrangenciaTipoEstabelecimento[j]?.idTipoEstabelecimento\r\n ) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n response.abrangenciaTipoEstabelecimento = result;\r\n\r\n return response;\r\n };\r\n\r\n const handleCancelAccept = () => {\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n const handleCancelReject = () => {\r\n setVisible(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n confirmDialog({\r\n message: \"Você tem certeza que deseja fechar sem salvar a edição?\",\r\n header: \"Confirmação de edição de dados\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: handleCancelAccept,\r\n reject: handleCancelReject,\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n style: { width: \"60%\" },\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n Editar Cupom\r\n

\r\n\r\n {step === 1 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n {selectedCategory?.value === 1 ? (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Aplicação\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Aplicação\r\n \r\n )}\r\n
\r\n
\r\n {selectedCategoryCoverage?.value === 0 ? (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n 0}\r\n maxLength={15}\r\n error={errors.cdCupom}\r\n />\r\n 0}\r\n maxLength={30}\r\n error={errors.dsCupom}\r\n />\r\n
\r\n
\r\n 0}\r\n error={errors.dtValidadeDe}\r\n />\r\n 0}\r\n min={cupom?.dtValidadeDe}\r\n error={errors.dtValidadeAte}\r\n />\r\n
\r\n
\r\n 0}\r\n />\r\n
\r\n 0}\r\n error={errors.vlCupom}\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n setInAtivo(e.checked)}\r\n />\r\n \r\n
\r\n\r\n
\r\n setInVisivel(e.checked)}\r\n />\r\n \r\n
\r\n
\r\n

Aplicação

\r\n
\r\n {categories.map((category) => {\r\n return (\r\n
\r\n setSelectedCategory(e.value)}\r\n checked={selectedCategory?.value === category.value}\r\n disabled={cupom?.qtUtilizada > 0}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n

Abrangência

\r\n
\r\n {categoriesCoverage.map((category) => {\r\n return (\r\n
\r\n setSelectedCategoryCoverage(e.value)}\r\n checked={\r\n selectedCategoryCoverage?.value === category.value\r\n }\r\n disabled={cupom?.qtUtilizada > 0}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {step === 2 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n setStep(2)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Aplicação\r\n \r\n
\r\n
\r\n {selectedCategoryCoverage.value == null ? (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n\r\n {selectedCategory.value === 2 && (\r\n
\r\n

Categorias

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n {selectedCategory.value === 3 && (\r\n
\r\n

Produtos

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {step === 3 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n {selectedCategory.value === 1 ? (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Aplicação\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Aplicação\r\n \r\n )}\r\n
\r\n
\r\n setStep(3)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Abrangência\r\n \r\n
\r\n
\r\n\r\n {selectedCategoryCoverage.value === 1 && (\r\n
\r\n

Tipos de Estabelecimento

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {selectedCategoryCoverage.value === 3 && (\r\n
\r\n

Clientes disponíveis

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n setClientSelected(text as SelectProps);\r\n }}\r\n noOptionsMessage={() =>\r\n \"Não foi encontrado nenhum registro.\"\r\n }\r\n />\r\n {clientSelected !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n

\r\n Clientes Selecionados\r\n

\r\n
\r\n {filteredClients.length > 0 ? (\r\n filteredClients.map((client) => {\r\n return (\r\n \r\n

\r\n {client?.clienteApp?.nmCliente || client?.nmCliente}\r\n

\r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n

\r\n Nenhum cliente foi adicionado.\r\n

\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {/* {selectedCategoryCoverage.value === 4 && (\r\n
\r\n

Localização

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n // \r\n
\r\n
\r\n
\r\n

UF

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Cidade

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Bairro

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n \r\n
\r\n \r\n
\r\n

Locais selecionados

\r\n Bairro, cidade, UF\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )} */}\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CuponsEdit;\r\n","import { Button } from \"primereact/button\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport DefaultSelect, {\r\n SelectOptions,\r\n} from \"../../../../components/DefaultSelect\";\r\nimport { RootState } from \"../../../../store\";\r\nimport { asyncGetCupomById } from \"../../../../store/marketing/marketing.actions\";\r\nimport ItensListCupons from \"../../../../components/Marketing/ProductsList\";\r\nimport CategoryListCupons from \"../../../../components/Marketing/CategoriesList\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\nimport EstablishmentsTypesCupons from \"../../../../components/Marketing/AbrangenciaEstablishmentList\";\r\nimport { ClientesAppProps } from \"../../../../store/marketing/marketing.store\";\r\nimport Select from \"react-select\";\r\n\r\ninterface CuponsViewProps {\r\n id: number;\r\n}\r\n\r\nconst categories = [\r\n { name: \"Por pedido\", value: 1 },\r\n { name: \"Por categoria\", value: 2 },\r\n { name: \"Por produto\", value: 3 },\r\n];\r\n\r\nconst categoriesCoverage = [\r\n { name: \"Todos\", value: 0 },\r\n { name: \"Tipo de estabelecimento\", value: 1 },\r\n { name: \"Cliente\", value: 3 },\r\n // { name: \"Localização\", value: 4 },\r\n];\r\n\r\nexport type SelectProps = {\r\n label: string;\r\n value: number;\r\n};\r\n\r\nconst CuponsView = ({ id }: CuponsViewProps) => {\r\n const [visible, setVisible] = useState(false);\r\n const [step, setStep] = useState(1);\r\n const [dsCupom, setDsCupom] = useState(\"\");\r\n const [cdCupom, setCdCupom] = useState(\"\");\r\n const [dtValidadeDe, setDtValidadeDe] = useState(\"\");\r\n const [dtValidadeAte, setDtValidadeAte] = useState(\"\");\r\n const [vlCupom, setVlCupom] = useState(\"\");\r\n const [qtLiberada, setQtLiberada] = useState(\"\");\r\n const [qtUtilizada, setQtUtilizada] = useState(\"\");\r\n const [idTipoDesconto, setIdTipoDesconto] = useState(\"\");\r\n const [inAtivo, setInAtivo] = useState(false);\r\n const [inVisivel, setInVisivel] = useState(false);\r\n const [cupom, setCupom] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [selectedCategory, setSelectedCategory] = useState(categories[0]);\r\n const [selectedCategoryCoverage, setSelectedCategoryCoverage] = useState(\r\n categoriesCoverage[0]\r\n );\r\n\r\n const [allClients, setAllClients] = useState([]);\r\n const [clientSelected, setClientSelected] = useState(\"\");\r\n const [filteredClients, setFilteredClients] = useState(\r\n []\r\n );\r\n\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const options: SelectOptions[] = [\r\n {\r\n name: \"Valor\",\r\n value: 2,\r\n },\r\n {\r\n name: \"Porcentagem\",\r\n value: 1,\r\n },\r\n ];\r\n\r\n const getCupom = async () => {\r\n setLoading(true);\r\n try {\r\n const response: any = await asyncGetCupomById(id);\r\n const checkboxesProdutos = markCheckboxesProducts(response);\r\n const checkboxesCategorias = markCheckboxesCategories(response);\r\n const checkboxesTiposEstabelecimento =\r\n markCheckboxesTiposEstabelecimentos(response);\r\n\r\n checkboxesProdutos.categorias = checkboxesCategorias.categorias;\r\n checkboxesProdutos.abrangenciaTipoEstabelecimento =\r\n checkboxesTiposEstabelecimento.abrangenciaTipoEstabelecimento;\r\n\r\n setSelectedCategory(categories[response?.idTipoAplicacao - 1]);\r\n\r\n if (response?.idTipoAbrangencia === null) {\r\n setSelectedCategoryCoverage(categoriesCoverage[0]);\r\n } else if (response?.idTipoAbrangencia === 1) {\r\n setSelectedCategoryCoverage(\r\n categoriesCoverage[response?.idTipoAbrangencia]\r\n );\r\n } else {\r\n setSelectedCategoryCoverage(\r\n categoriesCoverage[response?.idTipoAbrangencia - 1]\r\n );\r\n }\r\n\r\n setFilteredClients(response?.abrangenciaClienteApp);\r\n\r\n setCupom(checkboxesProdutos);\r\n } catch {\r\n } finally {\r\n setTimeout(() => {\r\n setLoading(false);\r\n }, 2000);\r\n setVisible(true);\r\n }\r\n };\r\n\r\n const handleCheckboxesProduto = (event: any) => {\r\n const newArr = { ...cupom };\r\n const index = newArr.itens.findIndex((chk: any) => {\r\n return chk.idProduto == event.target.value;\r\n });\r\n\r\n newArr.itens[index] = {\r\n ...newArr.itens[index],\r\n checked: !newArr.itens[index].checked,\r\n };\r\n\r\n setCupom(newArr);\r\n };\r\n\r\n const handleCheckboxesCategoria = (event: any) => {\r\n const newArr = { ...cupom };\r\n const index = newArr.categorias.findIndex(\r\n (chk: any) => chk.idCategoriaProduto == event.target.value\r\n );\r\n\r\n newArr.categorias[index] = {\r\n ...newArr.categorias[index],\r\n checked: !newArr.categorias[index].checked,\r\n };\r\n\r\n setCupom(newArr);\r\n };\r\n\r\n const handleCheckboxesTiposEstabelecimento = (event: any) => {\r\n const newArr = { ...cupom };\r\n const index = newArr.abrangenciaTipoEstabelecimento.findIndex(\r\n (chk: any) => chk.idTipoEstabelecimento == event.target.value\r\n );\r\n\r\n newArr.abrangenciaTipoEstabelecimento[index] = {\r\n ...newArr.abrangenciaTipoEstabelecimento[index],\r\n checked: !newArr.abrangenciaTipoEstabelecimento[index].checked,\r\n };\r\n\r\n setCupom(newArr);\r\n };\r\n\r\n const markCheckboxesProducts = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...marketing.cuponsProductsList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (let j = 0; j <= response?.itens?.length; j++) {\r\n if (result[i]?.idProduto === response?.itens[j]?.idProduto) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n response.itens = result;\r\n\r\n return response;\r\n };\r\n\r\n const markCheckboxesCategories = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...marketing.cuponsCategoriesList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (let j = 0; j <= response?.categorias?.length; j++) {\r\n if (result[i]?.idCategoriaProduto === response?.categorias[j]?.idCategoriaProduto) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n response.categorias = result;\r\n\r\n return response;\r\n };\r\n\r\n const markCheckboxesTiposEstabelecimentos = (r: any) => {\r\n let response = { ...r };\r\n if (!response) {\r\n return;\r\n }\r\n\r\n const result = [...marketing.abrangenciaTiposEstabelecimentosList];\r\n for (let i = 0; i <= result.length; i++) {\r\n for (\r\n let j = 0;\r\n j <= response?.abrangenciaTipoEstabelecimento?.length;\r\n j++\r\n ) {\r\n if (\r\n result[i]?.idTipoEstabelecimento ===\r\n response?.abrangenciaTipoEstabelecimento[j]?.idTipoEstabelecimento\r\n ) {\r\n if (result[i]) {\r\n result[i] = {\r\n ...result[i],\r\n checked: true,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n response.abrangenciaTipoEstabelecimento = result;\r\n\r\n return response;\r\n };\r\n\r\n useEffect(() => {\r\n if (cupom) {\r\n let result = cupom;\r\n result = {\r\n ...result,\r\n abrangenciaClienteApp: filteredClients,\r\n };\r\n setCupom(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [filteredClients]);\r\n\r\n return (\r\n
\r\n \r\n\r\n setVisible(false)}\r\n >\r\n
\r\n setVisible(false)}\r\n />\r\n \r\n Visualizar Cupom\r\n

\r\n\r\n {step === 1 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n {selectedCategory.value === 1 ? (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Aplicação\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Aplicação\r\n \r\n )}\r\n
\r\n
\r\n {selectedCategoryCoverage.value == 0 ? (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n setIdTipoDesconto(e.target.value)}\r\n idItem=\"desconto\"\r\n value={cupom?.idTipoDesconto}\r\n disabled={true}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n setInAtivo(e.checked)}\r\n disabled={true}\r\n />\r\n \r\n
\r\n\r\n
\r\n setInVisivel(e.checked)}\r\n disabled={true}\r\n />\r\n \r\n
\r\n
\r\n

Aplicação

\r\n
\r\n {categories.map((category) => {\r\n return (\r\n
\r\n setSelectedCategory(e.value)}\r\n checked={selectedCategory.value === category.value}\r\n disabled={true}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n

Abrangência

\r\n
\r\n {categoriesCoverage.map((category) => {\r\n return (\r\n
\r\n setSelectedCategoryCoverage(e.value)}\r\n checked={\r\n selectedCategoryCoverage.value === category.value\r\n }\r\n disabled={true}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {step === 2 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n setStep(2)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Aplicação\r\n \r\n
\r\n
\r\n {selectedCategoryCoverage.value == 0 ? (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n\r\n {selectedCategory.value === 1 && (\r\n
\r\n

Pedidos

\r\n
\r\n

\r\n O cupom será gerado no pedido que está sendo realizado no\r\n carrinho.\r\n

\r\n
\r\n
\r\n )}\r\n {selectedCategory.value === 2 && (\r\n
\r\n

Categorias

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n {selectedCategory.value === 3 && (\r\n
\r\n

Produtos

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n {step === 3 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n {selectedCategory.value === 1 ? (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Aplicação\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Aplicação\r\n \r\n )}\r\n
\r\n
\r\n setStep(3)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Abrangência\r\n \r\n
\r\n
\r\n\r\n {selectedCategoryCoverage.value === 1 && (\r\n
\r\n

Tipos de Estabelecimento

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {selectedCategoryCoverage.value === 3 && (\r\n
\r\n

Clientes disponíveis

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n setClientSelected(text as SelectProps);\r\n }}\r\n noOptionsMessage={() =>\r\n \"Não foi encontrado nenhum registro.\"\r\n }\r\n isOptionDisabled={(allClients) =>\r\n allClients.disabled\r\n }\r\n />\r\n {clientSelected !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n

\r\n Clientes Selecionados\r\n

\r\n
\r\n {filteredClients.length > 0 ? (\r\n filteredClients.map((client) => {\r\n return (\r\n \r\n

\r\n {client?.clienteApp?.nmCliente || client?.nmCliente}\r\n

\r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n

\r\n Nenhum cliente foi adicionado.\r\n

\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {/* {selectedCategoryCoverage.value === 4 && (\r\n
\r\n

Localização

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n // \r\n
\r\n
\r\n
\r\n

UF

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Cidade

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n
\r\n

Bairro

\r\n setSelectUF(e.value)} className=\"localization-selects\"/>\r\n
\r\n \r\n
\r\n \r\n
\r\n

Locais selecionados

\r\n Bairro, cidade, UF\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )} */}\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CuponsView;\r\n","import { Button } from 'primereact/button';\r\nimport CuponsEdit from '../../../pages/Marketing/Cupons/CuponsEdit';\r\nimport CuponsView from '../../../pages/Marketing/Cupons/CuponsView';\r\nimport './styles.css';\r\n// import PromotionCreate from '../../../../pages/Comercial/Promotion/PromotionCreate';\r\n// import PromotionEdit from '../../../../pages/Comercial/Promotion/PromotionEdit';\r\n// import PromotionView from '../../../../pages/Comercial/Promotion/PromotionView';\r\n\r\ninterface CardListProps {\r\n id: number;\r\n cdCupom: string;\r\n dsCupom: string;\r\n inAtivo: boolean;\r\n inputs: any[];\r\n handleDelete: (id: any) => void;\r\n}\r\n\r\nconst CardListCupons = ({\r\n id,\r\n cdCupom,\r\n dsCupom,\r\n inAtivo = true,\r\n handleDelete,\r\n}: CardListProps) => {\r\n return (\r\n
\r\n
\r\n

{cdCupom}

\r\n

{dsCupom}

\r\n
\r\n {inAtivo === true ? 'Ativo' : 'Inativo'}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CardListCupons;\r\n","import { Button } from \"primereact/button\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport DefaultInput from \"../../../../components/DefaultInput\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport DefaultSelect, {\r\n SelectOptions,\r\n} from \"../../../../components/DefaultSelect\";\r\nimport {\r\n ClientesAppProps,\r\n CuponsAbrangenciaClienteAppProps,\r\n AbrangenciaTipoEstabelecimentoProps,\r\n CuponsCategoriasProps,\r\n CuponsProductsProps,\r\n} from \"../../../../store/marketing/marketing.store\";\r\nimport { RootState } from \"../../../../store\";\r\nimport { asyncPostCupom } from \"../../../../store/marketing/marketing.actions\";\r\nimport ItensListCupons from \"../../../../components/Marketing/ProductsList\";\r\nimport CategoryListCupons from \"../../../../components/Marketing/CategoriesList\";\r\nimport ProgressLoad from \"../../../../components/ProgressLoad\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { StateProps } from \"../../../../enums\";\r\nimport EstablishmentsTypesCupons from \"../../../../components/Marketing/AbrangenciaEstablishmentList\";\r\nimport Select from \"react-select\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\n\r\ninterface Props {\r\n view?: boolean;\r\n id?: number;\r\n clientesApps?: ClientesAppProps[];\r\n}\r\n\r\nexport type SelectProps = {\r\n label: string;\r\n value: number;\r\n};\r\n\r\nconst categories = [\r\n { name: \"Por pedido\", value: 1 },\r\n { name: \"Por categoria\", value: 2 },\r\n { name: \"Por produto\", value: 3 },\r\n];\r\n\r\nconst categoriesCoverage = [\r\n { name: \"Todos\", value: 0 },\r\n { name: \"Tipo de estabelecimento\", value: 1 },\r\n { name: \"Cliente\", value: 3 },\r\n // { name: 'Localização', value: 4 },\r\n];\r\n\r\nconst CuponsCreate = ({ view }: Props) => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [updateProductsCupons, setUpdateProductsCupons] = useState<\r\n CuponsProductsProps[]\r\n >([]);\r\n const [updateCategoriesCupons, setUpdateCategoriesCupons] = useState<\r\n CuponsCategoriasProps[]\r\n >([]);\r\n const [\r\n updateAbrangenciaTipoEstabelecimentoCupons,\r\n setUpdateAbrangenciaTipoEstabelecimentoCupons,\r\n ] = useState([]);\r\n const [\r\n updateAbrangenciaAppClientCupons,\r\n setUpdateAbrangenciaAppClientCupons,\r\n ] = useState([]);\r\n const [step, setStep] = useState(1);\r\n const [dsCupom, setDsCupom] = useState(\"\");\r\n const [cdCupom, setCdCupom] = useState(\"\");\r\n const [dtValidadeDe, setDtValidadeDe] = useState(\"\");\r\n const [dtValidadeAte, setDtValidadeAte] = useState(\"\");\r\n const [vlCupom, setVlCupom] = useState(\"\");\r\n const [idTipoDesconto, setIdTipoDesconto] = useState(\"\");\r\n const [inAtivo, setInAtivo] = useState(false);\r\n const [inVisivel, setInVisivel] = useState(false);\r\n const [qtLiberada, setQtLiberada] = useState(\"\");\r\n const [qtUtilizada, setQtUtilizada] = useState(\"\");\r\n const [errors, setErrors] = useState({} as any);\r\n const [selectedCategory, setSelectedCategory] = useState(categories[0]);\r\n const [selectedCategoryCoverage, setSelectedCategoryCoverage] = useState(\r\n categoriesCoverage[0]\r\n );\r\n const [allClients, setAllClients] = useState([]);\r\n const [clientSelected, setClientSelected] = useState(\"\");\r\n const [filteredClients, setFilteredClients] = useState(\r\n []\r\n );\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n confirmDialog({\r\n message: \"Você quer remover este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDeleteClient(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDeleteClient = (id: number) => {\r\n const removingClient = filteredClients.filter((client) => {\r\n return client?.idClienteApp !== id;\r\n });\r\n setFilteredClients(removingClient);\r\n };\r\n\r\n const handleAddToFilteredClients = () => {\r\n const clientsFiltered = [...filteredClients];\r\n\r\n const clientExist = clientsFiltered.findIndex(\r\n (client) => client.idClienteApp === clientSelected.value\r\n );\r\n\r\n if (clientExist < 0) {\r\n clientsFiltered.push({\r\n idClienteApp: clientSelected.value,\r\n nmCliente: clientSelected.label,\r\n });\r\n } else {\r\n return;\r\n }\r\n\r\n setFilteredClients(clientsFiltered);\r\n };\r\n\r\n const handleCancel = () => {\r\n setStep(1);\r\n setCdCupom(\"\");\r\n setDsCupom(\"\");\r\n setDtValidadeDe(\"\");\r\n setDtValidadeAte(\"\");\r\n setIdTipoDesconto(\"\");\r\n setVlCupom(\"\");\r\n setQtLiberada(\"0\");\r\n setQtUtilizada(\"\");\r\n setInAtivo(false);\r\n setSelectedCategory(categories[0]);\r\n setSelectedCategoryCoverage(categoriesCoverage[0]);\r\n setInVisivel(false);\r\n setVisible(false);\r\n setUpdateCategoriesCupons(marketing.cuponsCategoriesList);\r\n setUpdateProductsCupons(marketing.cuponsProductsList);\r\n setUpdateAbrangenciaTipoEstabelecimentoCupons(\r\n marketing.abrangenciaTiposEstabelecimentosList\r\n );\r\n setUpdateAbrangenciaAppClientCupons(\r\n marketing.cuponsAbrangenciaClienteAppList\r\n );\r\n setClientSelected(\"\");\r\n setErrors(\"\");\r\n };\r\n\r\n const options: SelectOptions[] = [\r\n {\r\n name: \"Valor\",\r\n value: 2,\r\n },\r\n {\r\n name: \"Porcentagem\",\r\n value: 1,\r\n },\r\n ];\r\n\r\n const handleCheckboxesProduto = (event: any) => {\r\n const index = updateProductsCupons.findIndex(\r\n (chk) => chk.idProduto == event.target.value\r\n );\r\n const newArr = [...updateProductsCupons];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n\r\n setUpdateProductsCupons(newArr);\r\n };\r\n\r\n const handleCheckboxesCategoria = (event: any) => {\r\n const index = updateCategoriesCupons.findIndex(\r\n (chk) => chk.idCategoriaProduto == event.target.value\r\n );\r\n const newArr = [...updateCategoriesCupons];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n\r\n setUpdateCategoriesCupons(newArr);\r\n };\r\n\r\n const handleCheckboxesEstabelecimentos = (event: any) => {\r\n const index = updateAbrangenciaTipoEstabelecimentoCupons.findIndex(\r\n (chk) => chk.idTipoEstabelecimento == event.target.value\r\n );\r\n const newArr = [...updateAbrangenciaTipoEstabelecimentoCupons];\r\n newArr[index] = { ...newArr[index], checked: !newArr[index].checked };\r\n\r\n setUpdateAbrangenciaTipoEstabelecimentoCupons(newArr);\r\n };\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n\r\n try {\r\n const filteredProducts = updateProductsCupons.filter((item) => {\r\n return item.checked;\r\n });\r\n\r\n const filteredCategories = updateCategoriesCupons.filter((item) => {\r\n return item.checked;\r\n });\r\n\r\n const filteredAbrangenciaTipoEstabelecimento =\r\n updateAbrangenciaTipoEstabelecimentoCupons.filter((item) => {\r\n return item.checked;\r\n });\r\n\r\n const cupom = {\r\n cdCupom: cdCupom,\r\n dsCupom: dsCupom,\r\n dtValidadeDe: dtValidadeDe,\r\n dtValidadeAte: dtValidadeAte,\r\n inAtivo: inAtivo,\r\n inVisivel: inVisivel,\r\n idTipoDesconto: idTipoDesconto,\r\n qtLiberada: qtLiberada,\r\n qtUtilizada: qtUtilizada == '' ? 0 : qtUtilizada,\r\n vlCupom: vlCupom,\r\n idTipoAplicacao: selectedCategory.value,\r\n idTipoAbrangencia:\r\n selectedCategoryCoverage.value === 0\r\n ? null\r\n : selectedCategoryCoverage.value,\r\n itens: selectedCategory.value === 3 ? filteredProducts : [],\r\n categorias: selectedCategory.value === 2 ? filteredCategories : [],\r\n abrangenciaTipoEstabelecimento:\r\n selectedCategoryCoverage.value === 1\r\n ? filteredAbrangenciaTipoEstabelecimento\r\n : [],\r\n abrangenciaClienteApp:\r\n selectedCategoryCoverage.value === 3 ? filteredClients : [],\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n cdCupom: Yup.string().required(\"Código do cupom obrigatório.\"),\r\n dsCupom: Yup.string().required(\"Descrição do cupom obrigatório.\"),\r\n dtValidadeDe: Yup.string().required(\r\n \"Data de início do cupom obrigatório.\"\r\n ),\r\n dtValidadeAte: Yup.string().required(\r\n \"Data de encerramento do cupom obrigatório.\"\r\n ),\r\n idTipoDesconto: Yup.string().required(\r\n \"Tipo de desconto do cupom obrigatório.\"\r\n ),\r\n vlCupom: Yup.number()\r\n .typeError(\"Valor de desconto do cupom obrigatório.\")\r\n .min(1, \"O valor deve ser maior que 0.\"),\r\n // itens: Yup.object().required('Obrigatório pelo menos um item no cupom.'),\r\n // categorias: Yup.object().required('Obrigatório pelo menos uma categoria no cupom.'),\r\n qtLiberada: Yup.string().required(\r\n \"Quantidade Liberada é obrigatória.\"\r\n ),\r\n });\r\n\r\n await schema.validate(cupom, {\r\n abortEarly: false,\r\n });\r\n\r\n dispatch(asyncPostCupom(cupom));\r\n\r\n setStep(1);\r\n setCdCupom(\"\");\r\n setDsCupom(\"\");\r\n setDtValidadeDe(\"\");\r\n setDtValidadeAte(\"\");\r\n setIdTipoDesconto(\"\");\r\n setVlCupom(\"\");\r\n setQtLiberada(\"\");\r\n setQtUtilizada(\"0\");\r\n setInAtivo(false);\r\n setInVisivel(false);\r\n setSelectedCategory(categories[0]);\r\n setSelectedCategoryCoverage(categories[0]);\r\n setUpdateCategoriesCupons(marketing.cuponsCategoriesList);\r\n setUpdateProductsCupons(marketing.cuponsProductsList);\r\n setUpdateAbrangenciaTipoEstabelecimentoCupons(\r\n marketing.abrangenciaTiposEstabelecimentosList\r\n );\r\n setUpdateAbrangenciaTipoEstabelecimentoCupons(\r\n marketing.abrangenciaTiposEstabelecimentosList\r\n );\r\n setFilteredClients([]);\r\n setClientSelected(\"\");\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n setVisible(false);\r\n }, 2000);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setUpdateProductsCupons(marketing.cuponsProductsList);\r\n setUpdateCategoriesCupons(marketing.cuponsCategoriesList);\r\n setUpdateAbrangenciaTipoEstabelecimentoCupons(\r\n marketing.abrangenciaTiposEstabelecimentosList\r\n );\r\n setAllClients(\r\n marketing.clientesAppList.map((client) => ({\r\n value: client?.idClienteApp,\r\n label: client?.nmCliente,\r\n }))\r\n );\r\n }, [\r\n marketing.cuponsProductsList,\r\n marketing.cuponsCategoriesList,\r\n marketing.abrangenciaTiposEstabelecimentosList,\r\n marketing.clientesAppList,\r\n ]);\r\n\r\n return (\r\n
\r\n setVisible(true)}\r\n className=\"sidebarv2-open-button\"\r\n color=\"#AA0061\"\r\n />\r\n\r\n \r\n
\r\n \r\n \r\n Cadastrar Cupom\r\n

\r\n\r\n {step === 1 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n {selectedCategory.value === 1 ? (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Aplicação\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Aplicação\r\n \r\n )}\r\n
\r\n
\r\n {selectedCategoryCoverage.value === 0 ? (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n setInAtivo(e.checked)}\r\n />\r\n \r\n
\r\n\r\n
\r\n setInVisivel(e.checked)}\r\n />\r\n \r\n
\r\n
\r\n\r\n

Aplicação

\r\n
\r\n {categories.map((category) => {\r\n return (\r\n
\r\n setSelectedCategory(e.value)}\r\n checked={selectedCategory.value === category.value}\r\n disabled={false}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n

Abrangência

\r\n
\r\n {categoriesCoverage.map((category) => {\r\n return (\r\n
\r\n setSelectedCategoryCoverage(e.value)}\r\n checked={\r\n selectedCategoryCoverage.value === category.value\r\n }\r\n disabled={false}\r\n className=\"radiobutton-style\"\r\n />\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {step === 2 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n setStep(2)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Aplicação\r\n \r\n
\r\n
\r\n {selectedCategoryCoverage.value === 0 ? (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Abrangência\r\n \r\n ) : (\r\n setStep(3)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Abrangência\r\n \r\n )}\r\n
\r\n
\r\n\r\n {selectedCategory.value === 2 && (\r\n
\r\n

Categorias

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n {selectedCategory.value === 3 && (\r\n
\r\n

Produtos

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {step === 3 && (\r\n
\r\n
\r\n
\r\n setStep(1)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Cupom\r\n \r\n
\r\n
\r\n {selectedCategory.value === 1 ? (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n disabled\r\n >\r\n Aplicação\r\n \r\n ) : (\r\n setStep(2)}\r\n className=\"cupons-buttons-noactive\"\r\n >\r\n Aplicação\r\n \r\n )}\r\n
\r\n
\r\n setStep(3)}\r\n className=\"cupons-buttons-active\"\r\n >\r\n Abrangência\r\n \r\n
\r\n
\r\n\r\n {selectedCategoryCoverage.value === 1 && (\r\n
\r\n

Tipos de Estabelecimento

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {selectedCategoryCoverage.value === 3 && (\r\n
\r\n

Clientes disponíveis

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n setClientSelected(text as SelectProps);\r\n }}\r\n noOptionsMessage={() =>\r\n \"Não foi encontrado nenhum registro.\"\r\n }\r\n />\r\n {clientSelected !== \"\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n

\r\n Clientes Selecionados\r\n

\r\n
\r\n {filteredClients.length > 0 ? (\r\n filteredClients.map((client) => {\r\n return (\r\n \r\n

{client?.nmCliente}

\r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n

\r\n Nenhum cliente foi adicionado.\r\n

\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {/* {selectedCategoryCoverage.value === 4 && (\r\n
\r\n

Localização

\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n // \r\n
\r\n
\r\n
\r\n

UF

\r\n setSelectUF(e.value)} className='localization-selects'/>\r\n
\r\n
\r\n

Cidade

\r\n setSelectUF(e.value)} className='localization-selects'/>\r\n
\r\n
\r\n

Bairro

\r\n setSelectUF(e.value)} className='localization-selects'/>\r\n
\r\n \r\n
\r\n \r\n
\r\n

Locais selecionados

\r\n Bairro, cidade, UF\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )} */}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CuponsCreate;\r\n\r\n// autocomplete do prime\r\n// const [allClients, setAllClients] = useState([]);\r\n// const [clienteSelected, setClienteSelected] = useState(null);\r\n// const searchClient = (e: { query: string }) => {\r\n// let filterClient;\r\n// if (!e.query.trim().length) {\r\n// filterClient = [...allClients];\r\n// } else {\r\n// filterClient = allClients.filter((client: any) => {\r\n// return client.nome.toLowerCase().startsWith(e.query.toLowerCase());\r\n// });\r\n// }\r\n\r\n// setFilteredClients(filterClient);\r\n// };\r\n\r\n// setAllClients(marketing.clientesAppList);\r\n// setFilteredClients(marketing.clientesAppList);\r\n\r\n{\r\n /* setClienteSelected(e.value)}\r\n /> */\r\n}\r\n","import { confirmDialog } from \"primereact/confirmdialog\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport CardListCupons from \"../../../components/Marketing/CardListCupons\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\nimport { RootState } from \"../../../store\";\r\n\r\nimport {\r\n asyncDeleteCupom,\r\n asyncGetClientesApps,\r\n asyncGetCupons,\r\n asyncGetAbrangenciaTipoEstabelecimento,\r\n asyncGetCuponsCategories,\r\n asyncGetCuponsProducts,\r\n} from \"../../../store/marketing/marketing.actions\";\r\nimport CuponsCreate from \"./CuponsCreate\";\r\nimport \"./styles.css\";\r\n\r\nconst Cupons: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [description, setDescription] = useState(\"\");\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n confirmDialog({\r\n message: \"Você quer deletar este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDelete(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDelete = (id: number) => {\r\n if (id) dispatch(asyncDeleteCupom(id));\r\n // accept()\r\n };\r\n\r\n const inputsSideBar = [\r\n {\r\n type: \"text\",\r\n label: \"Descrição\",\r\n value: description,\r\n onChange: setDescription,\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetCupons());\r\n dispatch(asyncGetCuponsProducts());\r\n dispatch(asyncGetClientesApps());\r\n dispatch(asyncGetCuponsCategories());\r\n dispatch(asyncGetAbrangenciaTipoEstabelecimento());\r\n }, [dispatch]);\r\n\r\n return (\r\n
\r\n

Cupons de Desconto

\r\n \r\n\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : marketing.cupons.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n marketing.cupons.map((cupons, i) => (\r\n \r\n ))\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Cupons;\r\n","import { useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Image } from \"primereact/image\";\r\nimport { useDropzone } from \"react-dropzone\";\r\n\r\nimport \"./style.css\";\r\nimport { COLORS } from \"../../../constants\";\r\n\r\ninterface CardListProps {\r\n name: string;\r\n src: string;\r\n idCard: number;\r\n handleDelete: (idCard: any) => void;\r\n setFile: (acceptedFiles: any, idCard: number) => void;\r\n}\r\n\r\nconst CardImages = ({\r\n name,\r\n src,\r\n idCard,\r\n handleDelete,\r\n setFile,\r\n}: CardListProps) => {\r\n const [useStyleZindex, setUseStyleZindex] = useState(\"\");\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n accept: \"image/*\",\r\n onDrop: (acceptedFiles) => {\r\n setFile(acceptedFiles, idCard);\r\n },\r\n });\r\n\r\n const onShowImg = () => {\r\n setUseStyleZindex(\"p-image-mask\");\r\n };\r\n const onHideImg = () => {\r\n setUseStyleZindex(\"\");\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

{name}

\r\n
\r\n {src ? (\r\n \r\n ) : (\r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n {src ? (\r\n handleDelete(idCard)}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CardImages;\r\n","import { useEffect, useState } from \"react\";\r\nimport \"./style.css\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { Button } from \"primereact/button\";\r\nimport { DataScroller } from \"primereact/datascroller\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\n\r\nimport CardImages from \"../../../components/Marketing/CardImages\";\r\nimport { COLORS } from \"../../../constants\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\n\r\nimport {\r\n asyncGetTiposProduto,\r\n asyncGetGrupos,\r\n asyncGetSubGrupos,\r\n asyncGetClasses,\r\n asyncGetSabores,\r\n asyncGetFilterProduct,\r\n asyncPutImagesProducts,\r\n newCardSaveImagesProduct,\r\n asyncClearFilterProducts,\r\n} from \"../../../store/marketing/marketing.actions\";\r\nimport {\r\n modifiedCardImages,\r\n deleteImageCard,\r\n updateCardsImages,\r\n} from \"../../../store/marketing/marketing.store\";\r\nimport getBase64 from \"../../../util/images\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\n\r\nimport { updateLoading } from \"../../../store/loading/loading.store\";\r\n\r\nconst Images: React.FC = () => {\r\n const dispatch = useDispatch();\r\n\r\n const [selectTipo, setSelectTipo] = useState(\"\");\r\n const [selectGrupo, setSelectGrupo] = useState(\"\");\r\n const [selectSubGrupo, setSelectSubGrupo] = useState(\"\");\r\n const [selectClasse, setSelectClasse] = useState(\"\");\r\n const [selectSabor, setSelectSabor] = useState(\"\");\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n\r\n const [txImagemProduto, setTxImagemProduto] = useState(\"\");\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetTiposProduto());\r\n dispatch(asyncGetGrupos());\r\n dispatch(asyncGetSubGrupos());\r\n dispatch(asyncGetClasses());\r\n dispatch(asyncGetSabores());\r\n dispatch(\r\n asyncGetFilterProduct(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n }, [dispatch]);\r\n\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const handdleSubmitSelect = () => {\r\n dispatch(\r\n asyncGetFilterProduct(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n };\r\n\r\n const deleteConfirm = (e: any) => {\r\n confirmDialog({\r\n message: \"Deseja apagar essa imagem?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDelete(e),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDelete = (idCard: number) => {\r\n dispatch(deleteImageCard(idCard));\r\n };\r\n\r\n const setFile = async (file: any, idCard: number) => {\r\n const imgBase64Convert = await getBase64(file[0]);\r\n\r\n const infoData = {\r\n id: idCard,\r\n txImagemProduto: imgBase64Convert,\r\n };\r\n\r\n dispatch(modifiedCardImages(infoData));\r\n };\r\n\r\n const itemTemplate = () => {\r\n return (\r\n <>\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : marketing.cardsImages.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n marketing.cardsImages.map((card) => (\r\n \r\n ))\r\n )}\r\n \r\n );\r\n };\r\n\r\n const handdleClickSave = () => {\r\n if (marketing.cardsImages.length > 0 && !loading) {\r\n const arraySave: newCardSaveImagesProduct[] = [];\r\n\r\n dispatch(updateLoading(true));\r\n console.log(\"marketing.cardsImages\", marketing.cardsImages);\r\n for (let card of marketing.cardsImages) {\r\n arraySave.push({\r\n id: card.id,\r\n imagem: card.txImagemProduto,\r\n });\r\n }\r\n\r\n if (arraySave.length > 0 && !loading) {\r\n dispatch(asyncPutImagesProducts(arraySave));\r\n // console.log(arraySave);\r\n }\r\n }\r\n };\r\n\r\n const handdleClear = () => {\r\n dispatch(updateLoading(true));\r\n setSelectTipo(\"\");\r\n setSelectGrupo(\"\");\r\n setSelectSubGrupo(\"\");\r\n setSelectClasse(\"\");\r\n setSelectSabor(\"\");\r\n dispatch(updateCardsImages(\"\"));\r\n dispatch(asyncClearFilterProducts());\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

Imagens de Produtos

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

Tipo

\r\n setSelectTipo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Grupo

\r\n setSelectGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

SubGrupo

\r\n setSelectSubGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Classe

\r\n setSelectClasse(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Sabor

\r\n setSelectSabor(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n {marketing.cardsImages.length === 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Images;\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport { Button } from \"primereact/button\";\r\nimport { useState } from \"react\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n asyncGetTopicById,\r\n asyncUpdateTopic,\r\n} from \"../../../../store/admin/admin.actions\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { StateProps } from \"../../../../enums\";\r\nimport DefaultTextarea from \"../../../../components/DefaultTextArea\";\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport DefaultEditor from \"../../../../components/DefaultEditor\";\r\n\r\ninterface TopicEditProps {\r\n id: number;\r\n}\r\n\r\nconst HelpEdit = ({ id }: TopicEditProps) => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [question, setQuestion] = useState(\"\");\r\n const [answer, setAnswer] = useState(\"\");\r\n const [topic, setTopic] = useState(null);\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n const [errors, setErrors] = useState({} as any);\r\n\r\n const getTopic = async () => {\r\n const response: any = await asyncGetTopicById(id);\r\n setTopic(response);\r\n\r\n setVisible(true);\r\n };\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n\r\n try {\r\n const TopicEdit = {\r\n id: topic?.id,\r\n txPergunta: topic?.txPergunta,\r\n txResposta: topic?.txResposta,\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n txPergunta: Yup.string().required(\"Pergunta obrigatória.\"),\r\n txResposta: Yup.string().required(\"Resposta obrigatória.\"),\r\n });\r\n\r\n await schema.validate(topic, {\r\n abortEarly: false,\r\n });\r\n\r\n dispatch(asyncUpdateTopic(TopicEdit));\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n setVisible(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (topic) {\r\n let result = topic;\r\n result = { ...result, txPergunta: question };\r\n setTopic(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [question]);\r\n\r\n useEffect(() => {\r\n if (topic) {\r\n let result = topic;\r\n result = { ...result, txResposta: answer };\r\n setTopic(result);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [answer]);\r\n\r\n const handleCancelAccept = () => {\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n const handleCancelReject = () => {\r\n setVisible(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n confirmDialog({\r\n message: \"Você tem certeza que deseja fechar sem salvar a edição?\",\r\n header: \"Confirmação de edição de dados\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: handleCancelAccept,\r\n reject: handleCancelReject,\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n style: { width: \"60%\" },\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Editar Tópico\r\n

\r\n
\r\n

Pergunta

\r\n setQuestion(e.htmlValue)} error={errors.txPergunta} /> \r\n

Resposta

\r\n setQuestion(e.htmlValue)} error={errors.txPergunta} /> \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default HelpEdit;\r\n","import { InputTextarea } from \"primereact/inputtextarea\"\r\n\r\ninterface DefaultInputProps {\r\n value: string;\r\n onChange: React.Dispatch>\r\n disabled: boolean;\r\n error?: string;\r\n}\r\n\r\n const DefaultTextarea: React.FC = ({ value, onChange, disabled, error = '',}) => {\r\n return (\r\n \r\n onChange(e.target.value)} disabled={disabled} autoResize/>\r\n {error && {error}}\r\n \r\n ) \r\n}\r\n\r\n\r\nexport default DefaultTextarea\r\n","import React from 'react';\r\nimport { Sidebar } from 'primereact/sidebar';\r\nimport { Button } from 'primereact/button';\r\nimport { useState } from 'react';\r\nimport { COLORS } from '../../../../constants';\r\nimport { asyncGetTopicById } from '../../../../store/admin/admin.actions';\r\nimport DefaultTextarea from '../../../../components/DefaultTextArea';\r\n\r\ninterface TopicEditProps {\r\n id: number;\r\n}\r\n\r\nconst HelpView = ({ id }: TopicEditProps) => {\r\n const [visible, setVisible] = useState(false);\r\n const [question, setQuestion] = useState('');\r\n const [answer, setAnswer] = useState('');\r\n const [topic, setTopic] = useState(null);\r\n\r\n const getTopic = async () => {\r\n const response: any = await asyncGetTopicById(id);\r\n setTopic(response);\r\n\r\n setVisible(true);\r\n };\r\n\r\n return (\r\n
\r\n \r\n setVisible(false)}\r\n >\r\n
\r\n setVisible(false)}\r\n />\r\n \r\n Visualizar Tópico\r\n

\r\n
\r\n

Pergunta

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

Resposta

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default HelpView;\r\n","import { Button } from \"primereact/button\";\r\nimport HelpEdit from \"../../../pages/Admin/Help/HelpEdit\";\r\nimport HelpView from \"../../../pages/Admin/Help/HelpView\";\r\nimport Parser from \"react-html-parser\";\r\n\r\nimport \"./styles.css\";\r\n\r\ninterface CardListProps {\r\n id: number;\r\n question: string;\r\n handleDelete: (id: any) => void;\r\n}\r\n\r\nconst CardListHelp = ({ id, question, handleDelete }: CardListProps) => {\r\n return (\r\n
\r\n
\r\n

{Parser(question)}

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CardListHelp;\r\n","import React from \"react\";\r\nimport { Sidebar } from \"primereact/sidebar\";\r\nimport { Button } from \"primereact/button\";\r\nimport { useState } from \"react\";\r\nimport { COLORS } from \"../../../../constants\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { asyncPostTopic } from \"../../../../store/admin/admin.actions\";\r\nimport * as Yup from \"yup\";\r\nimport getValidationErrors from \"../../../../util/validationError\";\r\nimport { StateProps } from \"../../../../enums\";\r\nimport DefaultTextarea from \"../../../../components/DefaultTextArea\";\r\nimport { RootState } from \"../../../../store\";\r\nimport { Editor } from \"primereact/editor\";\r\nimport DefaultEditor from \"../../../../components/DefaultEditor\";\r\n\r\nconst HelpCreate = () => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [question, setQuestion] = useState(\"\");\r\n const [answer, setAnswer] = useState(\"\");\r\n\r\n const [errors, setErrors] = useState({} as any);\r\n const [buttonLoading, setButtonLoading] = useState(false);\r\n\r\n const handleSubmit = async () => {\r\n setErrors({} as StateProps);\r\n setButtonLoading(true);\r\n\r\n try {\r\n const topic = {\r\n txPergunta: question,\r\n txResposta: answer,\r\n };\r\n\r\n const schema = Yup.object().shape({\r\n txPergunta: Yup.string().required(\"Pergunta obrigatória.\"),\r\n txResposta: Yup.string().required(\"Resposta obrigatória.\"),\r\n });\r\n\r\n await schema.validate(topic, {\r\n abortEarly: false,\r\n });\r\n\r\n dispatch(asyncPostTopic(topic));\r\n setQuestion(\"\");\r\n setAnswer(\"\");\r\n } catch (err) {\r\n if (err instanceof Yup.ValidationError) {\r\n setErrors(getValidationErrors(err));\r\n\r\n return;\r\n }\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoading(false);\r\n setVisible(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n const handleCancel = () => {\r\n setQuestion(\"\");\r\n setAnswer(\"\");\r\n setVisible(false);\r\n setErrors(\"\");\r\n };\r\n\r\n return (\r\n
\r\n setVisible(true)}\r\n className=\"sidebarv2-open-button\"\r\n color=\"#AA0061\"\r\n />\r\n \r\n
\r\n \r\n \r\n Cadastrar Tópico\r\n

\r\n
\r\n

Pergunta

\r\n setQuestion(e.htmlValue)} error={errors.txPergunta} /> \r\n

Resposta

\r\n setAnswer(e.htmlValue)} error={errors.txResposta} /> \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default HelpCreate;\r\n","import { confirmDialog } from \"primereact/confirmdialog\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\nimport Parser from \"react-html-parser\";\r\n\r\nimport CardListHelp from \"../../../components/Help/CardListHelp\";\r\nimport \"./styles.css\";\r\nimport HelpCreate from \"./HelpCreate\";\r\nimport {\r\n asyncDeleteTopics,\r\n asyncGetTopics,\r\n} from \"../../../store/admin/admin.actions\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\n\r\nconst HelpPage: React.FC = () => {\r\n const dispatch = useDispatch();\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n\r\n const admin = useSelector((state: RootState) => state.admin);\r\n\r\n const deleteConfirm = (e: any) => {\r\n const id = e.target.value | e.target.parentNode.value;\r\n confirmDialog({\r\n message: \"Você quer deletar este registro?\",\r\n header: \"Confirmação de exclusão\",\r\n icon: \"pi pi-info-circle\",\r\n acceptClassName: \"p-button-danger\",\r\n accept: () => handleDelete(id),\r\n acceptLabel: \"Sim\",\r\n rejectLabel: \"Não\",\r\n });\r\n };\r\n\r\n const handleDelete = (id: number) => {\r\n if (id) dispatch(asyncDeleteTopics(id));\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetTopics());\r\n }, [dispatch]);\r\n\r\n\r\n return (\r\n
\r\n

Ajuda (FAQ)

\r\n \r\n\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : admin.topics.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n admin.topics.map((question, i) => (\r\n \r\n ))\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default HelpPage;\r\n","import { InputText } from 'primereact/inputtext';\r\nimport { SelectButton } from 'primereact/selectbutton';\r\n\r\nimport './style.css'\r\n\r\ninterface Parameters{\r\n id: string;\r\n dsParametro: string;\r\n txTipoParametro: string;\r\n txValorParametro: string;\r\n handleChange: (event:any) => void;\r\n}\r\n\r\nconst CardParameters = ({id, dsParametro, txTipoParametro, txValorParametro, handleChange}:Parameters)=>{\r\n const options = [\r\n {label: 'Sim', value: 'S'},\r\n {label: 'Não', value: 'N'}\r\n ];\r\n\r\n return (\r\n
\r\n

{dsParametro}

\r\n {txTipoParametro === 'T' ? \r\n \r\n :txTipoParametro === 'N' ?\r\n \r\n :txTipoParametro === 'C'?\r\n \r\n :txTipoParametro === 'B'?\r\n \r\n :null}\r\n
\r\n )\r\n}\r\n\r\nexport default CardParameters\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { COLORS } from '../../../constants'\r\nimport \"./style.css\"\r\n\r\nimport { Button } from 'primereact/button'\r\n\r\nimport {asyncGetParameters, asyncPutParameters} from '../../../store/admin/admin.actions'\r\nimport { RootState } from '../../../store';\r\n\r\nimport CardParameters from './CardParameters';\r\nimport { updateParameters } from '../../../store/admin/admin.store';\r\n\r\nimport ProgressLoad from '../../../components/ProgressLoad';\r\n\r\nimport { updateLoading } from '../../../store/loading/loading.store';\r\n\r\nconst Parameters:React.FC = () => {\r\n const dispatch = useDispatch()\r\n\r\n const {loading} = useSelector((state: RootState) => state.loading)\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetParameters())\r\n },[dispatch])\r\n\r\n const parameters = useSelector((state: RootState)=> state.admin.parameters)\r\n\r\n const handdleClickSave = () =>{\r\n if(!loading){\r\n dispatch(updateLoading(true))\r\n dispatch(asyncPutParameters(parameters))\r\n }\r\n }\r\n\r\n const handleChange = (event: any) =>{\r\n const id = parseInt(event.target.id)\r\n\r\n const index = parameters.findIndex(item => item.id === id )\r\n\r\n const newArr = [...parameters]\r\n\r\n newArr[index] = {...newArr[index], txValorParametro: event.target.value}\r\n dispatch(updateParameters(newArr))\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Parâmetros

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

Descrição

\r\n

Valor

\r\n
*/}\r\n
\r\n {loading ? \r\n
\r\n \r\n
\r\n : parameters.length > 0 ?\r\n parameters.map(parameter => (\r\n \r\n ))\r\n :\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default Parameters","import './style.css'\r\nimport { Checkbox } from 'primereact/checkbox';\r\n\r\ninterface CardListProps {\r\n id: number;\r\n dsProduto: string;\r\n inDestaque: boolean;\r\n handleChange: (event:any) => void;\r\n}\r\n\r\nconst CardFeatured = ({id, dsProduto, inDestaque, handleChange}: CardListProps) => { \r\n\r\n return (\r\n
\r\n
\r\n

{dsProduto}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CardFeatured;\r\n\r\n","import { useEffect, useState } from \"react\";\r\nimport \"./style.css\";\r\nimport { COLORS } from \"../../../constants\";\r\n\r\nimport { Button } from \"primereact/button\";\r\nimport { DataScroller } from \"primereact/datascroller\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\n\r\nimport {\r\n asyncGetTiposProduto,\r\n asyncGetGrupos,\r\n asyncGetSubGrupos,\r\n asyncGetClasses,\r\n asyncGetSabores,\r\n asyncGetFilterProduct,\r\n asyncPutFeatured,\r\n newCardSavePutFeatured,\r\n} from \"../../../store/marketing/marketing.actions\";\r\nimport CardFeatured from \"../../../components/Marketing/CardFeatured\";\r\nimport { updateFeatured } from \"../../../store/marketing/marketing.store\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\n\r\nimport { updateLoading } from \"../../../store/loading/loading.store\";\r\n\r\nconst Featured: React.FC = () => {\r\n const dispatch = useDispatch();\r\n\r\n const [selectTipo, setSelectTipo] = useState(\"\");\r\n const [selectGrupo, setSelectGrupo] = useState(\"\");\r\n const [selectSubGrupo, setSelectSubGrupo] = useState(\"\");\r\n const [selectClasse, setSelectClasse] = useState(\"\");\r\n const [selectSabor, setSelectSabor] = useState(\"\");\r\n const [buttonLoadingProductsList, setButtonLoadingProductsList] = useState(false);\r\n const [buttonLoadingSave, setButtonLoadingSave] = useState(false);\r\n const [buttonLoadingFilters, setButtonLoadingFilters] = useState(false);\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetTiposProduto());\r\n dispatch(asyncGetGrupos());\r\n dispatch(asyncGetSubGrupos());\r\n dispatch(asyncGetClasses());\r\n dispatch(asyncGetSabores());\r\n dispatch(asyncGetFilterProduct(selectTipo.id, selectGrupo.id, selectSubGrupo.id, selectClasse.id, selectSabor.id));\r\n }, [dispatch]);\r\n\r\n const handdleSubmitSelect = () => {\r\n setButtonLoadingProductsList(true);\r\n\r\n try {\r\n dispatch(\r\n asyncGetFilterProduct(selectTipo.id, selectGrupo.id, selectSubGrupo.id, selectClasse.id, selectSabor.id)\r\n );\r\n } catch {\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoadingProductsList(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n const handleChange = (event: any) => {\r\n const id = parseInt(event.target.id);\r\n\r\n const index = marketing.cardsFeatured.findIndex((item) => item.id === id);\r\n\r\n const newArr = [...marketing.cardsFeatured];\r\n\r\n newArr[index] = { ...newArr[index], inDestaque: event.target.checked };\r\n\r\n dispatch(updateFeatured(newArr));\r\n };\r\n\r\n const itemTemplate = () => {\r\n return (\r\n <>\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : marketing.cardsFeatured.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n
\r\n {marketing.cardsFeatured.map((card) => (\r\n \r\n ))}\r\n
\r\n )}\r\n \r\n );\r\n };\r\n const handdleClickSave = () => {\r\n setButtonLoadingSave(true);\r\n\r\n try {\r\n if (marketing.cardsFeatured.length > 0 && !loading) {\r\n dispatch(updateLoading(true));\r\n const arraySave: newCardSavePutFeatured[] = [];\r\n\r\n for (let card of marketing.cardsFeatured) {\r\n arraySave.push({\r\n id: card.id,\r\n inDestaque: card.inDestaque,\r\n });\r\n }\r\n if (arraySave.length > 0 && !loading) {\r\n dispatch(asyncPutFeatured(arraySave));\r\n }\r\n }\r\n } catch {\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoadingSave(false);\r\n }, 1000);\r\n }\r\n };\r\n const handdleClear = () => {\r\n setButtonLoadingFilters(true);\r\n\r\n try {\r\n dispatch(updateLoading(true));\r\n setSelectTipo(\"\");\r\n setSelectGrupo(\"\");\r\n setSelectSubGrupo(\"\");\r\n setSelectClasse(\"\");\r\n setSelectSabor(\"\");\r\n dispatch(updateFeatured(\"\"));\r\n dispatch(\r\n asyncGetFilterProduct(selectTipo.id, selectGrupo.id, selectSubGrupo.id, selectClasse.id, selectSabor.id)\r\n );\r\n } catch {\r\n } finally {\r\n setTimeout(() => {\r\n setButtonLoadingFilters(false);\r\n }, 1000);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n

Produtos Destaques

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

Tipo

\r\n setSelectTipo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Grupo

\r\n setSelectGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

SubGrupo

\r\n setSelectSubGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Classe

\r\n setSelectClasse(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Sabor

\r\n setSelectSabor(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Produtos

\r\n

Esse produto é um destaque?

\r\n
\r\n }\r\n />\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Featured;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport './styles.css';\r\n// import TermsOfUse from './TermsOfUse';\r\nimport PrivactyPolicies from './PrivactyPolicies';\r\n\r\n//Usando Redux\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RootState } from '../../../store';\r\nimport { updateLoading } from '../../../store/loading/loading.store';\r\nimport { asyncGetTermsAndPolicies, asyncPutTermsAndPolicies } from '../../../store/admin/admin.actions';\r\nimport ProgressLoad from '../../../components/ProgressLoad';\r\nimport { Button } from \"primereact/button\";\r\nimport { Editor } from \"primereact/editor\";\r\n\r\nconst TermsAndPolicies: React.FC = () => {\r\n const dispatch = useDispatch()\r\n const [btnTermsOfUse, setBtnTermsOfUse] = useState('')\r\n const [btnPrivactyPolicies, setBtnPrivactyPolicies] = useState('none')\r\n \r\n const termsAndPolicies = useSelector((state: RootState) => state.admin.termsAndPolicies);\r\n const {loading} = useSelector((state: RootState) => state.loading)\r\n\r\n const [textTermsOfUse, setTextTermsOfUse] = useState('')\r\n const [textPrivactyPolicies, setTextPrivactyPolicies] = useState('')\r\n\r\n useEffect(() => {\r\n dispatch(updateLoading(true))\r\n dispatch(asyncGetTermsAndPolicies())\r\n },[dispatch])\r\n\r\n useEffect(() => {\r\n let result = termsAndPolicies\r\n setTextTermsOfUse(result[0].txConteudo)\r\n setTextPrivactyPolicies(result[1].txConteudo)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [termsAndPolicies])\r\n\r\n const clickBtn = (e:string) =>{\r\n switch(e){\r\n case 'TermsOfUse':\r\n setBtnTermsOfUse('')\r\n setBtnPrivactyPolicies('none')\r\n break;\r\n case 'PrivactyPolicies':\r\n setBtnTermsOfUse('none')\r\n setBtnPrivactyPolicies('')\r\n break;\r\n }\r\n }\r\n\r\n const handleSubmit = () =>{\r\n const termsId = termsAndPolicies.findIndex(item => item.txTipoConteudo === 'termos')\r\n const policesId = termsAndPolicies.findIndex(item => item.txTipoConteudo === 'politicas')\r\n \r\n const newArr = [...termsAndPolicies]\r\n\r\n newArr[termsId] = {...newArr[termsId], txConteudo: textTermsOfUse}\r\n newArr[policesId] = {...newArr[policesId], txConteudo: textPrivactyPolicies}\r\n\r\n dispatch(updateLoading(true))\r\n dispatch(asyncPutTermsAndPolicies(newArr))\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Termos e Políticas

\r\n
\r\n
\r\n {\r\n btnTermsOfUse !== 'none' ?\r\n
\r\n

clickBtn('TermsOfUse')} className='TermsAndPolicies-buttons-active'>TERMOS DE USO

\r\n

clickBtn('PrivactyPolicies')} className='TermsAndPolicies-buttons-noactive'>POLÍTICAS DE PRIVACIDADE

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

clickBtn('TermsOfUse')} className='TermsAndPolicies-buttons-noactive'>TERMOS DE USO

\r\n

clickBtn('PrivactyPolicies')} className='TermsAndPolicies-buttons-active'>POLÍTICAS DE PRIVACIDADE

\r\n
\r\n }\r\n {\r\n loading ? \r\n
\r\n \r\n
\r\n :\r\n
\r\n
\r\n
\r\n

Texto - Termos de uso

\r\n
\r\n
\r\n setTextTermsOfUse(e.htmlValue)} /> \r\n
\r\n
\r\n
\r\n
\r\n

Texto - Políticas de privacidade

\r\n
\r\n
\r\n setTextPrivactyPolicies(e.htmlValue)} /> \r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TermsAndPolicies;\r\n","import { Button } from \"primereact/button\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\nimport { updateLoading } from \"../../../store/loading/loading.store\";\r\nimport {\r\n asyncClearFilterAcumulation,\r\n asyncGetClasses,\r\n asyncGetGrupos,\r\n asyncGetPointsAccumulation,\r\n asyncGetSabores,\r\n asyncGetSubGrupos,\r\n asyncGetTiposProduto,\r\n asyncPutPointsAccumulation,\r\n newCardSavePutPointsAccumulation,\r\n} from \"../../../store/marketing/marketing.actions\";\r\nimport {\r\n AcumuloDePontosProps,\r\n updateAcumuloDePontos,\r\n} from \"../../../store/marketing/marketing.store\";\r\nimport \"./style.css\";\r\nimport { COLORS } from \"../../../constants\";\r\nimport { DataScroller } from \"primereact/datascroller\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\nimport DefaultSelectPromotion from \"../../../components/DefaultSelectPromotion\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { SelectOptions } from \"../../../components/DefaultSelect\";\r\n\r\nconst AcumuloDePontos: React.FC = () => {\r\n const dispatch = useDispatch();\r\n\r\n const [selectTipo, setSelectTipo] = useState(\"\");\r\n const [selectGrupo, setSelectGrupo] = useState(\"\");\r\n const [selectSubGrupo, setSelectSubGrupo] = useState(\"\");\r\n const [selectClasse, setSelectClasse] = useState(\"\");\r\n const [selectSabor, setSelectSabor] = useState(\"\");\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const options: SelectOptions[] = [\r\n {\r\n name: \"Valor\",\r\n value: 1,\r\n },\r\n {\r\n name: \"Quantidade\",\r\n value: 2,\r\n },\r\n ];\r\n\r\n const handdleSubmitSelect = () => {\r\n dispatch(updateLoading(true));\r\n\r\n dispatch(\r\n asyncGetPointsAccumulation(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n };\r\n\r\n const handdleClear = () => {\r\n dispatch(updateLoading(true));\r\n setSelectTipo(\"\");\r\n setSelectGrupo(\"\");\r\n setSelectSubGrupo(\"\");\r\n setSelectClasse(\"\");\r\n setSelectSabor(\"\");\r\n dispatch(updateAcumuloDePontos(\"\"));\r\n dispatch(asyncClearFilterAcumulation());\r\n };\r\n\r\n const handleSelect = (e: any) => {\r\n const id = parseInt(e.target.id);\r\n\r\n const index = marketing.acumuloDePontosList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.acumuloDePontosList];\r\n\r\n newArr[index] = {\r\n ...newArr[index],\r\n idTipoPontoRegraPontuacao: e.target.value,\r\n };\r\n\r\n dispatch(updateAcumuloDePontos(newArr));\r\n };\r\n\r\n const handleVlItem = (e: any) => {\r\n const id = parseInt(e.target.id);\r\n\r\n const index = marketing.acumuloDePontosList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.acumuloDePontosList];\r\n\r\n if (\r\n Number(e.target.value) > 0 ||\r\n e.target.value === \"\" ||\r\n e.target.value === null\r\n ) {\r\n newArr[index] = {\r\n ...newArr[index],\r\n vlItem: Math.abs(parseInt(e.target.value)),\r\n };\r\n }\r\n\r\n dispatch(updateAcumuloDePontos(newArr));\r\n };\r\n\r\n const handleQtPonto = (e: any) => {\r\n const id = parseInt(e.target.id);\r\n\r\n const index = marketing.acumuloDePontosList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.acumuloDePontosList];\r\n\r\n if (Number(e.target.value) > 0 || e.target.value === \"\") {\r\n newArr[index] = {\r\n ...newArr[index],\r\n qtPonto: Math.abs(parseInt(e.target.value)),\r\n };\r\n }\r\n dispatch(updateAcumuloDePontos(newArr));\r\n };\r\n console.log(\"passei aqui fora\", handleQtPonto);\r\n\r\n const handleClickSave = () => {\r\n if (marketing.acumuloDePontosList.length > 0 && !loading) {\r\n dispatch(updateLoading(true));\r\n const arrayPointsAccumulation: newCardSavePutPointsAccumulation[] = [];\r\n\r\n for (let card of marketing.acumuloDePontosList) {\r\n arrayPointsAccumulation.push({\r\n id: card.id,\r\n descricao: card.descricao ? card.descricao : \"\",\r\n idProduto: card.idProduto,\r\n idTipoPontoRegraPontuacao: card.idTipoPontoRegraPontuacao\r\n ? card.idTipoPontoRegraPontuacao\r\n : 0,\r\n vlItem: card.vlItem ? card.vlItem : 0,\r\n qtPonto: card.qtPonto ? card.qtPonto : 0,\r\n });\r\n }\r\n\r\n if (arrayPointsAccumulation.length > 0 && !loading) {\r\n dispatch(asyncPutPointsAccumulation(arrayPointsAccumulation));\r\n }\r\n\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 100);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetTiposProduto());\r\n dispatch(asyncGetGrupos());\r\n dispatch(asyncGetSubGrupos());\r\n dispatch(asyncGetClasses());\r\n dispatch(asyncGetSabores());\r\n dispatch(\r\n asyncGetPointsAccumulation(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n }, [dispatch]);\r\n\r\n return (\r\n
\r\n

Acúmulo de pontos

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

Tipo

\r\n setSelectTipo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Grupo

\r\n setSelectGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

SubGrupo

\r\n setSelectSubGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Classe

\r\n setSelectClasse(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Sabor

\r\n setSelectSabor(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {marketing.acumuloDePontosList.length === 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n {marketing.acumuloDePontosList.length === 0 ? (\r\n
\r\n

Produtos

\r\n

Tipo de acúmulo

\r\n

Quantidade/Valor

\r\n

Pontos

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

Produtos

\r\n

Tipo de acúmulo

\r\n

Quantidade/Valor

\r\n

Pontos

\r\n
\r\n )}\r\n \r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : marketing.acumuloDePontosList.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n marketing.acumuloDePontosList.map((card, i) => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n {/* {card.vlItem === 0 && Obrigatório ser maior que 0.} */}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ))\r\n )}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AcumuloDePontos;\r\n","import { Button } from \"primereact/button\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../store\";\r\nimport { updateLoading } from \"../../../store/loading/loading.store\";\r\nimport {\r\n asyncClearFilterPointsAcumulation,\r\n asyncGetAbrangenciaProgramaDePontos,\r\n asyncGetClasses,\r\n asyncGetGrupos,\r\n asyncGetProgramPoints,\r\n asyncGetSabores,\r\n asyncGetSubGrupos,\r\n asyncGetTiposProduto,\r\n asyncPutProgramPoints,\r\n newCardSavePutProgramPoints,\r\n} from \"../../../store/marketing/marketing.actions\";\r\nimport {\r\n ProgramaDePontosAbrangenciaTipoEstabelecimentoProps,\r\n updateProgramaDePontos,\r\n} from \"../../../store/marketing/marketing.store\";\r\nimport \"./style.css\";\r\nimport { COLORS } from \"../../../constants\";\r\nimport ProgressLoad from \"../../../components/ProgressLoad\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { InputSwitch } from \"primereact/inputswitch\";\r\nimport { Image } from \"primereact/image\";\r\nimport EstablishmentsTypesCupons from \"../../../components/Marketing/AbrangenciaEstablishmentList\";\r\nimport { Dialog } from \"primereact/dialog\";\r\n\r\nconst ProgramaDePontos: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [currentItem, setCurrentItem] = useState({} as any);\r\n const [updatePontoRegraResgate, setUpdatePontoRegraResgate] = useState<\r\n ProgramaDePontosAbrangenciaTipoEstabelecimentoProps[]\r\n >([]);\r\n\r\n const [selectTipo, setSelectTipo] = useState(\"\");\r\n const [selectGrupo, setSelectGrupo] = useState(\"\");\r\n const [selectSubGrupo, setSelectSubGrupo] = useState(\"\");\r\n const [selectClasse, setSelectClasse] = useState(\"\");\r\n const [selectSabor, setSelectSabor] = useState(\"\");\r\n const [useStyleZindex, setUseStyleZindex] = useState(\"\");\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const onShowImg = () => {\r\n setUseStyleZindex(\"p-image-mask\");\r\n };\r\n const onHideImg = () => {\r\n setUseStyleZindex(\"\");\r\n };\r\n\r\n const handdleSubmitSelect = () => {\r\n dispatch(updateLoading(true));\r\n dispatch(\r\n asyncGetProgramPoints(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n };\r\n\r\n const handdleClear = () => {\r\n dispatch(updateLoading(true));\r\n setSelectTipo(\"\");\r\n setSelectGrupo(\"\");\r\n setSelectSubGrupo(\"\");\r\n setSelectClasse(\"\");\r\n setSelectSabor(\"\");\r\n dispatch(updateProgramaDePontos(\"\"));\r\n dispatch(asyncClearFilterPointsAcumulation());\r\n };\r\n\r\n const handleQtPontoResgate = (e: any) => {\r\n const id = parseInt(e.target.id);\r\n\r\n const index = marketing.programaDePontosList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.programaDePontosList];\r\n\r\n newArr[index] = {\r\n ...newArr[index],\r\n qtPontoResgate: Math.abs(parseInt(e.target.value)),\r\n };\r\n\r\n dispatch(updateProgramaDePontos(newArr));\r\n };\r\n\r\n const handleQtMaxItemPedido = (e: any) => {\r\n const id = parseInt(e.target.id);\r\n\r\n const index = marketing.programaDePontosList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.programaDePontosList];\r\n\r\n newArr[index] = {\r\n ...newArr[index],\r\n qtMaxItemPedido: Math.abs(parseInt(e.target.value)),\r\n };\r\n\r\n dispatch(updateProgramaDePontos(newArr));\r\n };\r\n\r\n const handleInAtivo = (event: any) => {\r\n const id = parseInt(event.target.id);\r\n\r\n const index = marketing.programaDePontosList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.programaDePontosList];\r\n\r\n newArr[index] = { ...newArr[index], inAtivo: event.target.value };\r\n\r\n dispatch(updateProgramaDePontos(newArr));\r\n };\r\n\r\n // const handleCheckboxesEstabelecimentos = (event: any) => {\r\n // const index = currentItem.pontoRegraResgateTipoEstabelecimento.findIndex(\r\n // (chk: any) => chk.idTipoEstabelecimento === event.target.value\r\n // );\r\n\r\n // const newArr = [...currentItem.pontoRegraResgateTipoEstabelecimento];\r\n // newArr[index] = { ...newArr[index], checked: event.target.checked };\r\n\r\n // const currentItemListIndex = marketing.programaDePontosList.findIndex(\r\n // (item) => item.idProduto == currentItem.idProduto\r\n // );\r\n\r\n // const arrayCurrentList = [...marketing.programaDePontosList];\r\n // arrayCurrentList[currentItemListIndex] = {\r\n // ...arrayCurrentList[currentItemListIndex],\r\n // pontoRegraResgateTipoEstabelecimento: newArr,\r\n // };\r\n\r\n // setCurrentItem(arrayCurrentList[currentItemListIndex])\r\n // dispatch(updateProgramaDePontos(arrayCurrentList));\r\n // };\r\n const handleCheckboxesEstabelecimentos = (event: any) => {\r\n const currentIndexTipoEstabelecimento =\r\n marketing.pontoRegraResgateTipoEstabelecimentoList.findIndex(\r\n (item) => item.idTipoEstabelecimento == event.target.value\r\n );\r\n\r\n const newArr = [...currentItem.pontoRegraResgateTipoEstabelecimento];\r\n\r\n const currentItemListIndex = marketing.programaDePontosList.findIndex(\r\n (item) => item.idProduto == currentItem.idProduto\r\n );\r\n\r\n const index = currentItem.pontoRegraResgateTipoEstabelecimento.findIndex(\r\n (chk: any) => chk.idTipoEstabelecimento === event.target.value\r\n );\r\n\r\n if (index !== -1) {\r\n newArr[index] = { ...newArr[index], checked: event.target.checked };\r\n } else if (event.target.checked) {\r\n newArr.push({\r\n ...marketing.pontoRegraResgateTipoEstabelecimentoList[\r\n currentIndexTipoEstabelecimento\r\n ],\r\n checked: true,\r\n });\r\n }\r\n\r\n const arrayCurrentList = [...marketing.programaDePontosList];\r\n arrayCurrentList[currentItemListIndex] = {\r\n ...arrayCurrentList[currentItemListIndex],\r\n pontoRegraResgateTipoEstabelecimento: newArr,\r\n };\r\n\r\n setCurrentItem(arrayCurrentList[currentItemListIndex]);\r\n dispatch(updateProgramaDePontos(arrayCurrentList));\r\n };\r\n\r\n const listaFinal = () => {\r\n const objetosIds: { [key: string]: number } = {};\r\n\r\n currentItem.pontoRegraResgateTipoEstabelecimento &&\r\n currentItem.pontoRegraResgateTipoEstabelecimento.forEach(\r\n (item: any, i: number) => {\r\n if (item.checked) objetosIds[item.idTipoEstabelecimento] = i;\r\n }\r\n );\r\n\r\n const listaDosObjetos =\r\n marketing.pontoRegraResgateTipoEstabelecimentoList.map((item) => {\r\n if (objetosIds[item.idTipoEstabelecimento] !== undefined) {\r\n return { ...item, checked: true };\r\n } else {\r\n return { ...item, checked: false };\r\n }\r\n });\r\n\r\n return listaDosObjetos;\r\n };\r\n\r\n const handleClickSave = () => {\r\n if (marketing.programaDePontosList.length > 0 && !loading) {\r\n dispatch(updateLoading(true));\r\n const arrayProgramPoints: newCardSavePutProgramPoints[] = [];\r\n\r\n for (let card of marketing.programaDePontosList) {\r\n arrayProgramPoints.push({\r\n id: card.id ? card.id : 0,\r\n descricao: card.descricao ? card.descricao : \"\",\r\n idProduto: card.idProduto,\r\n imagem: card.imagem ? card.imagem : \"\",\r\n qtPontoResgate: card.qtPontoResgate ? card.qtPontoResgate : 0,\r\n qtMaxItemPedido: card.qtMaxItemPedido ? card.qtMaxItemPedido : 0,\r\n inAtivo: card.inAtivo,\r\n pontoRegraResgateTipoEstabelecimento:\r\n card.pontoRegraResgateTipoEstabelecimento\r\n ? card.pontoRegraResgateTipoEstabelecimento.filter(\r\n (item) => item.checked\r\n )\r\n : [],\r\n });\r\n }\r\n\r\n if (arrayProgramPoints.length > 0 && !loading) {\r\n dispatch(asyncPutProgramPoints(arrayProgramPoints));\r\n }\r\n\r\n // asyncGetProgramPoints(\r\n // selectTipo.id,\r\n // selectGrupo.id,\r\n // selectSubGrupo.id,\r\n // selectClasse.id,\r\n // selectSabor.id\r\n // );\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 100);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetAbrangenciaProgramaDePontos());\r\n dispatch(asyncGetTiposProduto());\r\n dispatch(asyncGetGrupos());\r\n dispatch(asyncGetSubGrupos());\r\n dispatch(asyncGetClasses());\r\n dispatch(asyncGetSabores());\r\n dispatch(\r\n asyncGetProgramPoints(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n setUpdatePontoRegraResgate(\r\n marketing.pontoRegraResgateTipoEstabelecimentoList\r\n );\r\n }, [marketing.pontoRegraResgateTipoEstabelecimentoList]);\r\n\r\n return (\r\n
\r\n setVisible(false)}\r\n >\r\n \r\n {/* {listaFinal().length === 0 && (\r\n \r\n Obrigatório selecionar ao menos 1 tipo de estabelecimento.\r\n \r\n )} */}\r\n \r\n

Programa de pontos

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

Tipo

\r\n setSelectTipo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Grupo

\r\n setSelectGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

SubGrupo

\r\n setSelectSubGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Classe

\r\n setSelectClasse(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Sabor

\r\n setSelectSabor(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {marketing.programaDePontosList.length === 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

Produtos

\r\n

Imagem

\r\n

Pontos para resgate

\r\n

Quantidade máxima por pedido

\r\n

Abrangência

\r\n

Ativo

\r\n
\r\n \r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : marketing.programaDePontosList.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n marketing.programaDePontosList.map((card, i) => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {card.imagem !== \"\" || null ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n setVisible(true);\r\n setCurrentItem(\r\n Array.isArray(\r\n card.pontoRegraResgateTipoEstabelecimento\r\n ) &&\r\n card.pontoRegraResgateTipoEstabelecimento.length > 0\r\n ? card\r\n : {\r\n ...card,\r\n pontoRegraResgateTipoEstabelecimento:\r\n updatePontoRegraResgate,\r\n }\r\n );\r\n }}\r\n style={{\r\n background: \"#fff\",\r\n fontSize: \"1em\",\r\n border: \"none\",\r\n }}\r\n >\r\n \r\n \r\n {/* {Array.isArray(card.pontoRegraResgateTipoEstabelecimento) &&\r\n card.pontoRegraResgateTipoEstabelecimento.length ===\r\n 0 && (\r\n \r\n Obrigatório selecionar ao menos 1 tipo de\r\n estabelecimento.\r\n \r\n )} */}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ))\r\n )}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProgramaDePontos;\r\n","import { Button } from 'primereact/button';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RootState } from '../../../store';\r\nimport { updateLoading } from '../../../store/loading/loading.store';\r\nimport {\r\n asyncClearFilterMerchandising,\r\n asyncGetAbrangenciaMerchandising,\r\n asyncGetClasses,\r\n asyncGetFilterProduct,\r\n asyncGetGrupos,\r\n asyncGetMerchandising,\r\n asyncGetSabores,\r\n asyncGetSubGrupos,\r\n asyncGetTiposProduto,\r\n asyncPutMerchandising,\r\n newCardSavePutMerchandising,\r\n} from '../../../store/marketing/marketing.actions';\r\nimport {\r\n MerchandisingAbrangenciaTipoEstabelecimentoProps,\r\n updateMerchandising,\r\n} from '../../../store/marketing/marketing.store';\r\nimport './style.css';\r\nimport { COLORS } from '../../../constants';\r\nimport { DataScroller } from 'primereact/datascroller';\r\nimport ProgressLoad from '../../../components/ProgressLoad';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { InputSwitch } from 'primereact/inputswitch';\r\nimport { Image } from 'primereact/image';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport EstablishmentsTypesCupons from '../../../components/Marketing/AbrangenciaEstablishmentList';\r\n\r\nconst Merchandising: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [visible, setVisible] = useState(false);\r\n const [currentItem, setCurrentItem] = useState({} as any);\r\n const [updateMerchandisingRegas, setUpdateMerchandisingRegras] = useState<\r\n MerchandisingAbrangenciaTipoEstabelecimentoProps[]\r\n >([]);\r\n\r\n const [selectTipo, setSelectTipo] = useState('');\r\n const [selectGrupo, setSelectGrupo] = useState('');\r\n const [selectSubGrupo, setSelectSubGrupo] = useState('');\r\n const [selectClasse, setSelectClasse] = useState('');\r\n const [selectSabor, setSelectSabor] = useState('');\r\n const [useStyleZindex, setUseStyleZindex] = useState('');\r\n\r\n const { loading } = useSelector((state: RootState) => state.loading);\r\n const marketing = useSelector((state: RootState) => state.marketing);\r\n\r\n const onShowImg = () => {\r\n setUseStyleZindex('p-image-mask');\r\n };\r\n const onHideImg = () => {\r\n setUseStyleZindex('');\r\n };\r\n\r\n const handdleSubmitSelect = () => {\r\n dispatch(updateLoading(true));\r\n\r\n dispatch(\r\n asyncGetMerchandising(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n };\r\n\r\n const handdleClear = () => {\r\n dispatch(updateLoading(true));\r\n setSelectTipo('');\r\n setSelectGrupo('');\r\n setSelectSubGrupo('');\r\n setSelectClasse('');\r\n setSelectSabor('');\r\n dispatch(updateMerchandising(''));\r\n dispatch(asyncClearFilterMerchandising());\r\n };\r\n\r\n useEffect(() => {\r\n setUpdateMerchandisingRegras(\r\n marketing.merchandisingTipoEstabelecimentoList\r\n );\r\n }, [marketing.merchandisingTipoEstabelecimentoList]);\r\n\r\n useEffect(() => {\r\n dispatch(asyncGetAbrangenciaMerchandising());\r\n dispatch(asyncGetTiposProduto());\r\n dispatch(asyncGetGrupos());\r\n dispatch(asyncGetSubGrupos());\r\n dispatch(asyncGetClasses());\r\n dispatch(asyncGetSabores());\r\n dispatch(\r\n asyncGetMerchandising(\r\n selectTipo.id,\r\n selectGrupo.id,\r\n selectSubGrupo.id,\r\n selectClasse.id,\r\n selectSabor.id\r\n )\r\n );\r\n }, [dispatch]);\r\n\r\n const handleQtMinDiaResgate = (e: any) => {\r\n const id = parseInt(e.target.id);\r\n\r\n const index = marketing.merchandisingList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.merchandisingList];\r\n\r\n newArr[index] = {\r\n ...newArr[index],\r\n qtMinDiaResgate: Math.abs(parseInt(e.target.value)),\r\n };\r\n\r\n dispatch(updateMerchandising(newArr));\r\n };\r\n\r\n const handleQtMaxPedido = (e: any) => {\r\n const id = parseInt(e.target.id);\r\n\r\n const index = marketing.merchandisingList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.merchandisingList];\r\n\r\n newArr[index] = {\r\n ...newArr[index],\r\n qtMaxPedido: Math.abs(parseInt(e.target.value)),\r\n };\r\n\r\n dispatch(updateMerchandising(newArr));\r\n };\r\n\r\n const handleInAtivo = (event: any) => {\r\n console.log(event);\r\n const id = parseInt(event.target.id);\r\n\r\n const index = marketing.merchandisingList.findIndex(\r\n (item) => item.idProduto === id\r\n );\r\n\r\n const newArr = [...marketing.merchandisingList];\r\n\r\n newArr[index] = { ...newArr[index], inAtivo: event.target.value };\r\n\r\n dispatch(updateMerchandising(newArr));\r\n };\r\n\r\n const handleCheckboxesEstabelecimentos = (event: any) => {\r\n const currentIndexTipoEstabelecimento =\r\n marketing.merchandisingTipoEstabelecimentoList.findIndex(\r\n (item) => item.idTipoEstabelecimento == event.target.value\r\n );\r\n\r\n const newArr = [...currentItem.matMerchanTipoEstabelecimento];\r\n\r\n const currentItemListIndex = marketing.merchandisingList.findIndex(\r\n (item) => item.idProduto == currentItem.idProduto\r\n );\r\n\r\n const index = currentItem.matMerchanTipoEstabelecimento.findIndex(\r\n (chk: any) => chk.idTipoEstabelecimento === event.target.value\r\n );\r\n\r\n if (index !== -1) {\r\n newArr[index] = { ...newArr[index], checked: event.target.checked };\r\n } else if (event.target.checked) {\r\n newArr.push({\r\n ...marketing.merchandisingTipoEstabelecimentoList[\r\n currentIndexTipoEstabelecimento\r\n ],\r\n checked: true,\r\n });\r\n }\r\n\r\n const arrayCurrentList = [...marketing.merchandisingList];\r\n arrayCurrentList[currentItemListIndex] = {\r\n ...arrayCurrentList[currentItemListIndex],\r\n matMerchanTipoEstabelecimento: newArr,\r\n };\r\n\r\n setCurrentItem(arrayCurrentList[currentItemListIndex]);\r\n dispatch(updateMerchandising(arrayCurrentList));\r\n };\r\n\r\n const listaFinal = () => {\r\n const objetosIds: { [key: string]: number } = {};\r\n currentItem.matMerchanTipoEstabelecimento &&\r\n currentItem.matMerchanTipoEstabelecimento.forEach(\r\n (item: any, i: number) => {\r\n if (item.checked) objetosIds[item.idTipoEstabelecimento] = i;\r\n }\r\n );\r\n\r\n const listaDosObjetos = marketing.merchandisingTipoEstabelecimentoList.map(\r\n (item) => {\r\n if (objetosIds[item.idTipoEstabelecimento] !== undefined) {\r\n return { ...item, checked: true };\r\n } else {\r\n return { ...item, checked: false };\r\n }\r\n }\r\n );\r\n\r\n return listaDosObjetos;\r\n };\r\n\r\n const handleClickSave = () => {\r\n if (marketing.merchandisingList.length > 0 && !loading) {\r\n dispatch(updateLoading(true));\r\n const arrayMerchandising: newCardSavePutMerchandising[] = [];\r\n\r\n for (let card of marketing.merchandisingList) {\r\n arrayMerchandising.push({\r\n id: card.id ? card.id : 0,\r\n descricao: card.descricao ? card.descricao : '',\r\n idProduto: card.idProduto,\r\n imagem: card.imagem ? card.imagem : '',\r\n qtMinDiaResgate: card.qtMinDiaResgate ? card.qtMinDiaResgate : 0,\r\n qtMaxPedido: card.qtMaxPedido ? card.qtMaxPedido : 0,\r\n inAtivo: card.inAtivo,\r\n matMerchanTipoEstabelecimento: card.matMerchanTipoEstabelecimento\r\n ? card.matMerchanTipoEstabelecimento.filter((item) => item.checked)\r\n : [],\r\n });\r\n }\r\n\r\n if (arrayMerchandising.length > 0 && !loading) {\r\n dispatch(asyncPutMerchandising(arrayMerchandising));\r\n }\r\n\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 100);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n setVisible(false)}\r\n >\r\n \r\n \r\n

Materiais de Merchandising

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

Tipo

\r\n setSelectTipo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Grupo

\r\n setSelectGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

SubGrupo

\r\n setSelectSubGrupo(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Classe

\r\n setSelectClasse(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n

Sabor

\r\n setSelectSabor(e.value)}\r\n className=\"TreeSelect\"\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {marketing.merchandisingList.length === 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

Material de merchandising

\r\n

Imagem

\r\n

Quantidade mínima de dias para novo resgate

\r\n

Quantidade máximo de produto por pedido

\r\n

Abrangência

\r\n

Ativo

\r\n
\r\n \r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : marketing.merchandisingList.length === 0 ? (\r\n
\r\n

Não foi encontrado nenhum registro.

\r\n
\r\n ) : (\r\n marketing.merchandisingList.map((card, i) => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {card.imagem !== '' || null ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n setVisible(true);\r\n setCurrentItem(\r\n Array.isArray(card.matMerchanTipoEstabelecimento) &&\r\n card.matMerchanTipoEstabelecimento.length > 0\r\n ? card\r\n : {\r\n ...card,\r\n matMerchanTipoEstabelecimento:\r\n updateMerchandisingRegas,\r\n }\r\n );\r\n }}\r\n style={{\r\n background: '#fff',\r\n fontSize: '1em',\r\n border: 'none',\r\n }}\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ))\r\n )}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Merchandising;\r\n","import {\r\n BrowserRouter as Router,\r\n Route,\r\n Switch,\r\n Redirect,\r\n} from \"react-router-dom\";\r\nimport { isAuthenticated } from \"../store/auth/token.service\";\r\nimport AdminUsers from \"./Admin/Users\";\r\nimport ApprovalEvaluation from \"./ApprovalEvaluation\";\r\nimport Approvals from \"./Approvals\";\r\nimport Comodatos from \"./Comodatos\";\r\nimport ComodatosEvaluation from \"./ComodatosEvaluation\";\r\nimport Home from \"./Home\";\r\nimport Login from \"./Login\";\r\nimport Profiles from \"./Admin/Profiles\";\r\nimport Promotion from \"./Comercial/Promotion\";\r\nimport Notification from \"./Comercial/Notifications\";\r\nimport BannerCarrossel from \"./Marketing/BannerCarrossel\";\r\nimport Cupons from \"./Marketing/Cupons\";\r\nimport Images from \"./Marketing/Images\";\r\nimport HelpPage from \"./Admin/Help\";\r\nimport Parameters from \"./Admin/Parameters\";\r\nimport Featured from \"./Marketing/Featured\";\r\nimport TermsAndPolicies from \"./Admin/TermsAndPolicies\";\r\nimport AcumuloDePontos from \"./Marketing/PointsAccumulation\";\r\nimport ProgramaDePontos from \"./Marketing/PointsProgram\";\r\nimport MerchandisingMaterials from \"./Marketing/Merchandising\";\r\n\r\nconst PrivateRoute = ({ component: Component, route, ...rest }: any) => {\r\n return (\r\n \r\n isAuthenticated() ? (\r\n \r\n ) : (\r\n // Redireciona pra home e passa o estado para o app nao ficar perdido\r\n \r\n )\r\n }\r\n />\r\n );\r\n};\r\n\r\nconst Routes = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default Routes;\r\n","import { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport Header from \"../components/Header\";\r\n// import MainMenu from '../components/MainMenu';\r\nimport MainMenu2 from \"../components/MainMenu2\";\r\nimport Routes from \"../pages/routes\";\r\nimport { asyncGetModules } from \"../store/admin/admin.actions\";\r\nimport { isAuthenticated } from \"../store/auth/token.service\";\r\nimport { updateLoading } from \"../store/loading/loading.store\";\r\nimport \"./styles.css\";\r\n\r\nconst Layout = () => {\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (isAuthenticated()) {\r\n dispatch(updateLoading(true));\r\n dispatch(asyncGetModules());\r\n }\r\n }, [dispatch]);\r\n\r\n return (\r\n
\r\n {isAuthenticated() &&
}\r\n {isAuthenticated() && }\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Layout;\r\n","import { useEffect, useRef } from 'react';\r\nimport { Toast } from 'primereact/toast';\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from '../../store';\r\n\r\nconst Toaster = ()=> {\r\n const toastBR = useRef(null);\r\n\r\n const { toaster } = useSelector((state: RootState) => state.helper)\r\n \r\n const showToaster = () => {\r\n toastBR.current.show({severity: toaster.type, summary: toaster.title, detail: toaster.message, life: 3000});\r\n }\r\n\r\n useEffect(() => {\r\n if(toaster.message){\r\n showToaster()\r\n }\r\n }, [toaster])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Toaster\r\n","import { Provider } from \"react-redux\";\r\nimport store from \"./store\";\r\n\r\nimport \"primereact/resources/themes/saga-green/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport Layout from \"./layout\";\r\nimport Toaster from \"./components/Toaster\";\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\n\r\nconst App = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport './global.css'\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n"],"sourceRoot":""}