{"version":3,"sources":["assets/user.svg","assets/illustrations/technician.png","assets/illustrations/warning.png","assets/illustrations/client-code.png","assets/footer.png","assets/logo.png","assets/illustrations/profile.png","assets/illustrations/location.png","assets/illustrations/address-not-found.png","assets/illustrations/building-warning.png","assets/home-header.svg","assets/services/relogio.png","assets/services/religue.png","assets/services/equipamentos.png","assets/illustrations/ic_collectivevacation_service.png","assets/illustrations/ic_changeprogram_service.png","assets/illustrations/ic_nextdelivery_service.png","assets/illustrations/ic_requestsupply_service.png","assets/illustrations/ic_changepayment_service.png","assets/illustrations/ic_duplicatecontract_service.png","assets/illustrations/ic_leakage_service.png","assets/illustrations/ic_regulation_service.png","assets/illustrations/ic_representativecontact_service.png","assets/illustrations/ic_technicalreport_service.png","assets/illustrations/ic_tightnesstest_service.png","assets/illustrations/ic_changedata_service.png","assets/illustrations/calendar.png","assets/illustrations/google-docs.png","assets/illustrations/buildings.svg","assets/illustrations/checkIcon.png","assets/background.jpg","assets/illustrations/empty-data-invoice.png","assets/illustrations/invoice.png","api/HttpHandler.js","api/ConsigazApi.js","api/ConsigazReportApi.js","api/CpfApi.js","api/index.js","services/condominio.js","services/cliente.js","components/Icons/Icons.jsx","components/Toast/Toast.jsx","state/ducks/toast/types.js","state/utils/createReducer.js","state/ducks/toast/reducers.js","state/ducks/toast/actions.js","state/ducks/toast/index.js","components/Page/Page.jsx","components/PageCenterContent/PageCenterContent.jsx","components/Modal/Modal.jsx","components/Masks/Masks.js","state/ducks/loading/reducers.js","state/ducks/loading/actions.js","state/ducks/loading/types.js","state/ducks/loading/index.js","pages/Wellcome/Wellcome.jsx","pages/WellcomeAgain/WellcomeAgain.jsx","components/PageHeaderImage/PageHeaderImage.jsx","pages/NewClient/NewClient.jsx","components/Select/Select.jsx","components/TermsOfUseModal/TermOfUseModal.jsx","pages/NewIndustrialClient/NewIndustrialClient.jsx","pages/ExistentClient/ExistentClient.jsx","components/SearchOptions/SearchOptions.jsx","pages/AddressSearch/AddressSearch.jsx","components/ServiceItem/ServiceItem.jsx","components/Switch/Switch.jsx","components/Select2/Select.jsx","pages/AddressComplement/AddressComplement.jsx","pages/AddressActive/AddressActive.jsx","pages/AddressDone/AddressDone.jsx","components/NavigationBar/NavigationBar.jsx","components/Sidebar/Sidebar.jsx","pages/HomeTemplate/HomeTemplate.jsx","components/Card/Card.jsx","pages/AddressList/ReactivationModal.jsx","components/Search/Search.jsx","pages/AddressList/AddressList.jsx","pages/Cancellation/Cancellation.jsx","pages/Contestation/Contestation.jsx","pages/SaveTime/SaveTime.jsx","components/ServiceCard/ServiceCard.jsx","pages/Services/details/GenericDetail.jsx","pages/Services/details/Leakage.jsx","components/CustomRadio/customRadio.jsx","pages/Services/details/TightnessTest.jsx","services/ticket.js","pages/Services/SelectAddressList.jsx","pages/Services/details/IndustrialTightnessTest.jsx","pages/Services/details/Regulation.jsx","pages/Services/details/MeterChange.jsx","pages/Services/details/ChangeData.jsx","pages/Services/details/IndustrialLeakage.jsx","pages/Services/details/TechnicalReport.jsx","pages/Services/details/IndustrialRegulation.jsx","pages/Services/details/ChangePayment.jsx","pages/Services/details/RepresentantiveContact.jsx","pages/Services/details/CollectiveVacation.jsx","components/LabelSwitch/LabelSwitch.jsx","pages/Services/details/RequestSupply.jsx","components/IndustrialCard/IndustrialCard.jsx","pages/Services/details/ScheduleRequest.jsx","pages/Services/details/DuplicateContract.jsx","pages/Services/Services.jsx","pages/ServicesConfirm/ServicesConfirm.jsx","pages/HomeServicesConfirm/HomeServicesConfirm.jsx","pages/PrivacyPolicy/PrivacyPolicy.jsx","components/WarrantyTerms/WarrantyTerms.jsx","pages/WarrantyTerms/WarrantyTerms.jsx","components/LineChart/LineChart.jsx","assets/colors.js","services/invoice.js","components/MonthlyConsumptionLineChart/MonthlyConsumptionLineChart.jsx","components/Notifications/Notifications.jsx","components/InvoiceModal/InvoiceModal.jsx","components/ConsumptionModal/ConsumptionModal.jsx","assets/fast-search.js","components/MonthlyTicketsLineChart/MonthlyTicketsLineChart.jsx","pages/Home/CardCarrossel.jsx","pages/Home/Home.jsx","pages/Consumption/ChartFilterModal.jsx","pages/Consumption/MonthTickets.jsx","pages/Consumption/InvoiceInFocus.jsx","pages/Consumption/Consumption.jsx","pages/Finances/TicketFilterModal.jsx","pages/Finances/EmissionBlockedModal.jsx","pages/Finances/AcquittanceTabComponent.jsx","components/TicketModal/TicketModal.jsx","pages/Finances/Finances.jsx","pages/HomeServices/HomeServices.jsx","pages/DeliveryConfirm/DeliveryConfirm.jsx","pages/HomeDelivery/HomeDelivery.jsx","pages/PersonalData/FormContaSim.jsx","pages/PersonalData/FormIndustrial.jsx","pages/PersonalData/PersonalData.jsx","pages/Help/Help.jsx","components/PdfPage/PdfPage.jsx","pages/InvoicePdf/InvoicePdf.jsx","pages/AcquittanceLetterPdf/AcquittanceLetterPdf.jsx","pages/DanfePdf/DanfePdf.jsx","pages/AdmnistrativeLogin/AdmnistrativeLogin.jsx","pages/FakeLogin/FakeLogin.jsx","pages/AddressSelect/AddressSelect.jsx","pages/IndustrialContact/IndustrialContact.jsx","pages/Recommendation/Recommendation.jsx","pages/ReligueProtocol/ReligueProtocol.jsx","components/app/App.js","services/serviceWorker.js","index.js","state/store.js","assets/illustrations/building.png"],"names":["module","exports","HttpHandler","constructor","_ref","baseUrl","dependencies","arguments","length","undefined","axios","stringify","onSuccess","response","Promise","resolve","this","interceptors","use","data","Erros","reject","Descricao","error","toJSON","code","Error","message","err","get","params","url","headers","query","finalUrl","getUrl","config","timeout","includes","then","post","body","put","patch","parsedParams","indexOf","BASIC_AUTH","consigazAPI","getHeaders","token","Authorization","getClientIp","async","api","IPv4","formatDate","date","getFullYear","String","getMonth","padStart","getDate","clearMemoize","toCheck","props","obj","concat","Object","getOwnPropertyNames","getPrototypeOf","sort","filter","e","i","arr","getAllMethods","forEach","method","substr","clear","memConsultaLocalEntrega","memoize","consultaLocalEntrega","promise","memConsultaSegundaViaBoleto","consultaSegundaViaBoleto","memConsultaProtocolos","consultaProtocolos","memConsultaServicos","consultaServicos","memConsultaNotaFiscal","consultaNotaFiscal","memConsultaPrevEntrega","consultaPrevEntrega","_ref2","Token","cpfcnpj","_ref3","cep","_ref4","codigo","localEntrega","localizacao","normalize","replace","_ref5","cpfCnpjOrCode","_ref6","CPFCNPJ","nome","telefone","email","codEntrega","codEntregaCond","nrSequencia","conteudo","Condomino","versao","usuario","religue","instalacao","_ref7","sessionId","servico","vlServico","codMotivo","nrAcordoComercial","complementaryData","value","tipoVazamento","localVazamento","gasFechado","informacoes","contato","contact","lastNameDept","phone","leavingDate","portariaEletronica","moradorNoLocal","reading","itCodigo","dtInicio","dtFim","_ref8","codEmitente","dsPedido","Itens","selectedModel","qtde","Abastecimento","_ref9","cpfContato","sequencia","tipo","elimina","_ref10","dataIni","dataFim","_ref11","_ref12","empresa","_ref13","nrOrdemServico","motivo","encodeURIComponent","_ref14","_ref15","codCliente","_ref16","_ref17","_ref18","_ref19","acao","entries","map","_ref20","key","join","_ref21","titulo","_ref22","login","senha","utilidades","cpf","idDispositivo","origem","useDescricao2","Retorno","Array","isArray","descricao2","processFileDownlod","descricao","geraBoleto","endDate","nota","subtractDays","Date","dsRetorno","hasOwnProperty","replaceAll","invoices","invoicesFiltred","invoice","download","invoiceData","cod_estab","cod_espec_docto","cod_ser_docto","cod_tit_acr","cod_parcela","tituloBoleto","Notas","NotasFiscais","nfs","nfsFiltred","ticketData","serie","nr_nota_fis","tituloNF","_ref23","clientCode","CodCliente","_ref24","exchangeCode","CodigoVerificacao","_ref25","_ref26","codEstab","toString","startsWith","_ref27","freeze","base64","binary","atob","len","buffer","ArrayBuffer","view","Uint8Array","charCodeAt","dataURL","window","URL","createObjectURL","Blob","type","a","document","createElement","href","now","appendChild","click","open","numOfDays","setDate","padTo2Digits","num","consigazReportApi","startDate","finalDate","deliveryLocation","clientName","issues","year","company","clientTaxId","name","btoa","access_token","cnpj","defaultContext","ConsigazApi","ConsigazReportApi","CpfApi","createContext","storage","localStorage","setItem","JSON","getItem","parse","CondominioService","selectAll","selected","consultaConcominioApiParser","Condominio","inRegistration","removeItem","console","warn","ClienteService","ClienteEntrRetorno","previousValue","isAdmLogin","newClienteData","consultaLocalEntregaApiParser","keys","Cliente","ClienteRetorno","GenericIcon","React","width","fatherProps","size","height","fill","color","className","style","onClick","viewBox","xmlns","data-testid","children","IconInfo","fillRule","d","IconClose","IconChevonDown","IconCheck","IconPlus","IconLocation","cx","cy","r","transform","IconForwardArrow","opacity","IconSpinner","IconHome","IconMenu","id","data-name","clipPath","IconArrowLeft","IconAdmin","IconDollar","IconHomeOutline","IconDelivery","class","stroke","strokeWidth","strokeLinecap","IconHomeSign","IconSearch","IconTelephone","stroke-linecap","stroke-miterlimit","stroke-width","stroke-linejoin","IconEmail","Toast","Component","super","state","isIn","title","description","autodismiss","handleAutodismiss","dismiss","setTimeout","setState","onUnmount","dismissTimeout","componentDidMount","componentDidUpdate","render","CSSTransition","in","unmountOnExit","LoadingToast","animation","SHOW","DISMISS","initialState","reducerMap","action","reducer","createReducer","types","payload","show","redirect","redirectTo","redirectState","history","assign","from","location","pathname","push","Page","toastTitle","toast","toastDescription","toastTimeout","isLoading","loading","newState","whiteBackground","redirectFrom","c","Fragment","src","FooterImage","alt","LogoImage","Redirect","to","dismissToast","connect","dispatch","bindActionCreators","toastOperations","Modal","close","shown","onDismiss","handleClose","onClose","renderTitle","renderImg","imgSrc","renderCloseButton","closeButton","renderFooterButtons","declineButton","declineButtonAction","declineButtonText","confirmButton","confirmButtonAction","confirmButtonText","backdropClassName","preventDefault","stopPropagation","maskPhoneNumber","phoneNumber","validatePhoneNumber","split","reduce","reduced","test","validateEmailAddress","emailAddress","maskCpfCnpj","validateCpf","resto","soma","parseInt","substring","validateCpfCnpj","cleanCpfcnpj","tamanho","numeros","digitos","pos","charAt","resultado","validateCnpj","moneyFormat","parseFloat","toFixed","weightFormat","sufix","toTitleCase","str","txt","toUpperCase","toLowerCase","Wellcome","handleCpfcnpjChange","maskedCpfcnpj","target","isCpfcnpjValid","onSubmit","haveOpenedTheApp","showLoading","context","dismissLoading","segmento","existentClientRedirectPath","cliente","openModal","situacao","situacaoCadastral","nomeFantasia","nomeEmpresarial","showToast","haveSubmited","modalRef","haveJoinedTheApp","setHaveJoinedTheApp","background","BackgroundImage","backgroundSize","backgroundPosition","backgroundBlendMode","PageCenterContent","maxLength","placeholder","onChange","onKeyPress","charCode","ref","textAlign","borderColor","textTransform","contextType","apiContext","loadingOperations","WellcomeAgain","handleAccept","handleSubmit","industrialClientInfos","isCodClienteValid","errorModal","locationState","match","helpModal","marginRight","marginBottom","ProfileImage","NewClient","handleNameChange","isNameValid","handlePhoneNumberChange","phoneNumberMasked","isPhoneNumberValid","handleEmailAddressChange","isEmailAddressValid","PageHeaderImage","readOnly","shouldLockName","options","disabled","titleSelect","option","idx","marginLeft","position","zIndex","TermOfUseModal","NewIndustrialClient","handleCpfChange","isCpfValid","handleDepartmentChange","department","isDepartmentValid","verificaAceiteTermo","handleManutencaoContato","termsModal","handleAcceptedTerms","aceiteTermo","saveDataToStorage","industrialContato","lastAccess","contactTypes","contactTypesLoaded","tiposContato","_this","saveData","manutencaoContatos","consultaContatos","ClienteContatoRetorno","filtered","Select","contactType","border","maxHeight","ExistentClient","setCurrentClient","getRedirectState","BuildingImage","Link","SearchOption","display","gridTemplateRows","gridTemplateColumns","padding","borderTop","cursor","leftIcon","margin","fontSize","overflow","textOverflow","whiteSpace","lineHeight","showRightIcon","SearchOptions","marginTop","overflowY","overflowX","opt","itemLeftIcon","showItemRightIcon","showEmptyMessage","AddressSearch","debounce","func","delay","timerId","clearTimeout","apply","handleInputChange","event","debouncedSearch","handleSelectHelp","handlePlaceSelect","condominioData","search","consultaCondominios","searchResults","cond","endereco","cidade","addressNotFoundModal","catch","errorDescription","errorMessage","sessionStorage","LocationImage","AddressNotFoundImage","titleMultiline","iconClose","iconCloseAction","Switch","checkedIcon","uncheckedIcon","handleDiameter","onHandleColor","offHandleColor","onColor","offColor","Select2","label","onSelect","flexDirection","justifyContent","getOptionLabel","ev","noOptionsText","MenuItem","AddressComplement","handleConsultaOcupacaoIsEmpty","getApiLocationInfo","pad","fields","addressOnReactivation","field","codTipo","getFieldValue","getLocationLabel","termsAcknowledged","validateFields","localizacaoLabel","isReactivation","consultaOcupacao","isEmpty","isAddressEmpty","_value","_value2","_value2$toLowerCase","validator","defaultValue","tipoDado","isToggle","addressValues","mapLocationToState","redirectPath","getDataFields","getDataFromReactivation","condominio","item","formato","INTEGER","CHARACTER","addressTitle","addressDescription","_options$Unidades","locations","Unidades","unidade","_unidade$descricao","index","noRepeatValues","Set","values","_this$state","_this$state$fields$","ServiceItem","checked","AddressActive","getContentVariation","default","confirmModal","contentVariationKey","advice","content","BuildingWarningImage","WarningImage","shouldOverwrite","AddressDone","generateOrder","locais","encontrarUltimoLocalDeEntregaCriado","geraOcorrencia","Ocorrencia","protocolNumber","addressComponents","requestSuccess","isExistentClient","localEntregaCliente","ttTipoInst","cadastraCondominio","Sucesso","maiorEntrega","maiorNumero","local","numero","addressComplement","fontWeight","fontStyle","maxWidth","NavigationBar","activeTab","getTabClassName","tabs","activeStyle","defineActive","active","handleTabClick","tab","renderTabs","icon","classNames","HomeTemplate","getAddressKey","addr","handleAddressChange","addressList","cod","reload","sidebarIn","selectedCondominio","isLoggedIn","renderAdmLogin","nomeContato","addressOptions","address","sidebarOpts","logout","sidebarOptsAdm","navbarTabs","Sidebar","backgroundImage","HomeHeaderImage","paddingRight","UserImage","getSolidStyle","baseColor","textColor","gradient","getOutlineStyle","customStyle","borderWidth","borderStyle","getToplineStyle","borderTopWidth","cardStyles","primary","outlineWhite","backgroundColor","outlinePrimary","outlinePrimaryClear","toplinePrimary","danger","ontlineDanger","toplineDanger","warning","ontlineWarning","toplineWarning","toplineCancel","success","ontlineSuccess","toplineSuccess","ontlineSecondary","outlineSecondaryClear","outlineSecondaryDashed","Card","footerButtons","btn","cardStyle","styleName","ReactivationModal","modal","alignContent","AddressList","isSelected","isSelectedForReactivation","iscomplementaryData","getAddressStyleName","getStyleReactivation","reactivationButton","selectCondominio","selectCondominioReactivation","un","protocol","happyToBeBackModal","selectedAddress","service","renderButton","bottom","left","right","confirmReactivationModal","renderAddressList","addressFilter","addressInactiveFilter","alignItems","estado","reactivateModal","borderRadius","template","Search","CancellationComplement","validateLeaveDate","dateObj","reverse","today","setHours","setMinutes","setSeconds","whenWillLeave","protocolExists","handleAvancar","verificaProtocolo","verificaProtocolos","modalExistentProtocol","renderExistentProtocolModal","moment","format","ThemeProvider","theme","createMuiTheme","palette","main","ptBR","MuiPickersUtilsProvider","utils","MomentUtils","locale","DatePicker","cancelLabel","isSameOrAfter","labelFunc","CancellationConfirmation","handleOrder","splitedName","firstName","shift","lastName","whoWillReceiveTheTechnician","userPhone","electronicConcierge","presenceNext3Days","handleGoBack","CancellationDone","CancellationError","sendMail","sendCancelationEmail","subtract","Cancellation","handleStepBack","currentStep","handleStepSubmit","CancellationExtraInfos","maskPhone","v","handleChangeNex3Days","minWidth","ContestationPage","checkOpenOrder","isLeakage","dadosTotais","meterRead","getInterval","dadosGerias","dadosGerais","toLocaleDateString","openServiceOrder","serviceOrderModal","analyseRead","looksAlrightModal","looksEqualModal","notOkModal","renderLandingContent","RelogioImage","renderHelpContent","testConfirmationModal","renderProtocolContent","float","checkAlwrightModal","checkServiceOrderModal","TechnicianImage","ServiceCard","onDetail","serviceId","price","onContract","image","deadline","rawData","onToggle","onWarranty","row","condPagamento","LeakageDetail","submit","priorityModal","billingIfEnterWarningModal","initialComplementaryData","priceConditional","billingWarningModal","legalRepresentantModal","isValid","CustomRadio","selectedOption","setSelectedOption","useState","handleSelect","styles","container","circle","gap","boxSizing","TightnessTest","requestedByCondominium","numberOfApartments","numberOfConsumptionPoints","undefinedModal","tipoPrumada","suggestedTime","gasPlantHighOrLowPressure","internalRegulator","measuringBoard","isCondominiumIsValid","handleSelectInfo","removeServiceSelection","borderBottomRightRadius","borderBottomLeftRadius","TicketService","status","dateNow","dateVencimento","Duplicatas","duplicata","find","isSameOrBefore","paid","outdated","avencer","cancel","getTicketStatus","tickets","selectedDeliveryPlace","itens","verifica","vlunit","qt","nameItem","selectAddressList","cardClass","qntd","outdatedTickets","verifyStatus","credito","modalDenied","isDenied","startOf","endOf","ticket","IndustrialTightnessTest","localModal","tipoTeste","localTeste","selectMany","teste","tipoSelecionado","SelectAddressList","maxlength","serviceValueModal","RegulationDetail","isReady","assistanceModal","confirmationModal","MeterChangeDetail","foiNotificado","meterInstallationModal","ChangeDataDetail","isCpfCnpjValid","selectedData","cpfcnp","inscricao","newInfos","toggleData","IndustrialLeakageDetail","informationCilindro","faleConoscoModal","verifyOriginModal","informModelModal","internModal","vlservico","initialInformationCilindro","flagModel","comodatado","quantCilindros","acceptNextDelivery","toggleModel","model","nextDelivery","getNextDelivery","prumadaModal","isSubmitButtonDisabled","failModal","TechnicalReport","horario","handleTimeChange","timeMask","IndustrialRegulation","detailModal","log","regulationModal","ChangePayment","selectedDays","prazopgto","RepresentativeContact","motivoVisita","textAlignLast","CollectiveVacation","modalConfirm","initialDate","lastDate","shouldDisableDate","momentDate","day","formattedInitialDate","formattedLastDate","LabelSwitch","handleOptionClick","activeOption","getSelectedIdxByValue","selectedIdx","renderOptions","RequestSupply","nextPage","hourObj","limitHour","limitedHour","prevEntrega","modalHelp","modalEmergencial","modalConfirmEmergencial","removeAccents","_str$normalize","selectedProduct","gasPercent","horarioPreferencia","geraAbastecimento","nrpedido","handlePercentChange","percentMask","initialTime","lastTime","it","getOptionsData","prev","paddingLeft","itensGranel","itensCilindro","itensEspecial","isSame","sameDeliveryDateModal","renderEmergencialTab","Math","abs","renderProgramadoTab","waitModal","IndustrialCard","filterImage","IconLeakage","IconRegulation","IconTightnessTest","IconTechnicalReport","IconChangePayment","IconCollectiveVacation","IconRepresentativeContact","IconChangeData","IconRequestSupply","IconChangeProgram","IconDuplicateContract","IconNextDelivery","selectedService","select","idservice","ScheduleRequest","frequency","frequencyinfo","frequencyInfo","motivosAltProgcao","reasons","toggleFrequency","DuplicateContract","ServiceCardsComponent","getServiceImage","ReligueImage","equipamentos","EquipamentosImage","acquiredServices","services","handleReligueAdvice","religueAdviceModal","detailModalServiceId","handleConfirmReligue","switchChecked","editService","serviceData","serv","detailService","serviceFilter","removeProtocols","toggleServiceCheck","alreadyExistModal","scheduleService","getServices","ServicoRetorno","setServices","newClientData","clienteLocalEntrega","apiServices","s","extendedFlowServices","addresses","serviceOnToggle","renderSeriveContent","contentParams","modalWarrantyTerms","Regulation","Leakage","MeterChange","IndustrialLeakage","RepresentantiveContact","ChangeData","GenericDetail","getServiceContent","renderServices","renderDetailModal","renderReligueAdviceModal","renderWarrantyTermsModal","frameBorder","renderAlreadyExistModal","renderDeniedModal","selectedStatus","renderModals","renderContent","ContainerClass","ServiceCards","Services","ServicesConfirmContentComponent","updatedServices","compDataList","compData","promises","dtprev","submited","all","month","serviceRemoveId","getServiceDeliveryDay","days","getServicePrice","showIllustration","priceComplement","onFinish","ServicesConfirmContent","param","splited","WebkitOverflowScrolling","WarrantyTerms","LineChart","top","pointColor","pointBorderColor","pointLabel","pointLabelFormat","ResponsiveLine","xScale","yScale","curve","minY","axisTop","axisBottom","axisRight","axisLeft","pointSize","pointBorderWidth","enablePointLabel","pointLabelYOffset","colors","useMesh","lines","enableGridX","enableGridY","enableArea","areaBaselineValue","areaOpacity","isInteractive","InvoiceService","setMilliseconds","getInvoiceStatus","getMonthLabel","monthNumber","getChartData","invoiceChartCenterIdx","chartReference","validInvoices","getValidInvoices","mapedData","itemIdx","consumption","sliceData","adjustCenterIdx","centerIdx","sliceStart","sliceEnd","slice","MonthlyConsumptionLineChart","getMonthColor","monthData","getPointColor","points","itterIdx","getPointBorderColor","point","getPointLabel","y","chartData","x","node","Notifications","items","closeItem","InvoiceModal","copyToClipboard","textArea","execCommand","onCopy","sendByEmail","_ClienteService$indus","emailContato","shareTicket","openDocument","titleInvoice","exportInvoice","cod_estabel","titleNF","exportDanf","getInvoiceBadge","InvoiceImage","forwardRef","ConsumptionModal","getDadosGerias","getItens","valor","onShowInvoice","getTicketBadge","getConsumptionValues","subtitle","related","reduceMonths","getMonthTicketValue","monthTicket","filters","valueBase","getDuplicataValueOnIndex","total","selectedUnits","getFilteredValue","monthTickets","reducedMonthTickets","getTicketsChartData","shouldSlice","reducedMonths","monthKey","selectedInterval","selectedMonths","m","selectedDeliveryPlaces","selectedAddresses","selectedInitialDate","selectedLastDate","MonthlyTicketsLineChart","CardCarrossel","banners","dinamicBanners","Saida","Banners","handleClick2","banner","CaminhoWeb","ApontarPara","LoadingLine","Home","locaisEntrega","notifications","15","41","51","52","53","chartCenterIdx","chat","renderConfirmDataModal","clientContactData","getIndustrialChartData","getContaSimChartData","haveClosedPersonalDataModal","dados","emails","phones","avencerTickets","some","invoiceInFocus","setFullYear","openInvoices","getProximaLeitura","lastInvoice","renderPersonalDataModal","shouldRenderModal","personalDataModal","setHaveClosedPersonalDataModal","renderInvoiceCards","proximaLeitura","invoiceModal","renderContaSimContent","fastSearchText","filteredSearch","paddingTop","EmptyDataInvoiceImage","consumptionModal","renderNextDelivery","deliveryList","getNextDeliveryFromAddress","shouldShowInactive","CalendarImage","renderIndustrialContent","fastSearchOptions","modalBoleto","Helmet","ChartFilterModal","showProductsFilter","onlyProduct","availableProducts","productsData","filterByUnits","filterByAddress","addressData","addrIdx","deliveryPlaces","toggleUnit","unit","toggleAddress","toggleMonth","number","monthsData","filteredProps","addressReduceTickets","result","getTicketValue","MonthTickets","reducedData","subIdx","onSendMail","getCardStyleFromInvoice","InvoiceInFocus","Consumption","showChartFilterModal","getDataForContaSim","getDataForIndustrial","haveWeightUnit","possibleItems","chartFilterModalRef","chartFilters","getInvoiceAverageValue","b","renderWithInvoiceData","invoiceInFocusChart","getTicketAverage","reducedTickets","reducedValue","getTicketTotal","getChartCenterItem","renderWithTicketData","monthReducedTickets","currentMonth","filteredTickets","activeMonth","sendIndustrialConsumeReport","deliveryDate","gasVolume","TicketFilterModal","toggleStatus","stat","clearDates","EmissionBlockedModal","goToHelp","AcquittanceTabComponent","onOpenInvoices","consultaCartaQuitacao","_ClienteRetorno$","SITUACAO","cartaBase64","CARTAPDF","handleTotalLetter","_ClienteRetorno$2","yearOptions","companyOptions","comp","TicketModal","vencimento","sendInvoiceIndistrualByEmail","sendDanfeByEmail","ticketStatus","isInvoice","cod_estabelb","invoiceCode","AcquittanceTab","Finances","handleAcquittanceLetter","typeAcquittance","yearAcquittance","companyAcquittance","modalAcquittanceLetter","sendAcquittanceLetter","sendEmail","base64String","binaryString","bytes","blob","invoiceModalData","ticketModalData","showEmissionBlockedModal","showTicketFilterModal","showSearch","ticketFilters","initialFilters","handleNfJoin","joined","localDelivery","_Notas$NotasFiscais","_Notas$NotasFiscais2","_Notas$NotasFiscais3","getInvoiceStyle","renderInvoiceList","invoiceListFilter","inv","invoicesFiltered","getTicketExpiration","checkInvoiceBlockEmission","modalDetalhes","handleFilters","ticketsFiltered","ticketListFilter","filterInitialDate","filterLastDate","ticketDate","checkBoletoBlockEmission","modalNotaFiscal","renderTicketList","selectedNF","ticketFilterSearch","getTicketStyle","filterNF","t","renderChartWithTicketData","renderAcquittanceLetter","modalAcquittanceLetterOps","emissionBlockedModalRef","ticketFilterModalRef","statusData","reducedStatus","ProtocolItem","Intl","NumberFormat","currency","HomeServices","protocols","protocolOnDetail","locationTab","isRedirectTab","handleCancelation","cancelationReason","cancelaProtocolo","renderProtocolTab","showCancelationModal","protocolAddress","DocsImage","p","protocolDetailModal","protocolContestationModal","Protocolos","renderServicesTab","submitedServices","confirmationUrl","DeliveryConfirmContentComponent","DeliveryConfirmContent","isVacation","serviceProtocol","modalProtocol","FormContaSim","disabledInput","FormIndustrial","departmentOptions","onDepartmentChange","onPhoneNumberChange","onNameChange","onCpfChange","isEmailValid","onEmailChange","PersonalData","cleanCpf","handleSaveContaSim","handleSaveIndustrial","phoneCliente","emailCliente","maskedPhoneNumber","contatoRetorno","saveContact","updateLocalEntrega","handleContactSave","Help","PdfPage","querystring","decodeURI","donwloadPdf","file","b64Data","contentType","sliceSize","byteCharacters","byteArrays","offset","byteNumbers","byteArray","b64toBlob","FileSaver","saveAs","fileName","frameborder","allowfullscreen","InvoicePdfPage","downloadBoleto","externalInvoice","AcquittanceLetterPdfPage","exportDischargeLetter","DanfePdfPage","codEstabel","codSerDocto","codTitAcr","externaldanfe","exportDanfe","AdmnistrativeLogin","pass","admnistrativeLogin","FakeLogin","AddressSelect","handleSelectAll","IndustrialContact","submitNewContact","contactData","verifyExistentTelephone","verifyExistentEmail","renderListTelephone","renderListEmail","loadContactData","ModalEdit","ModalNewContact","submitChangeData","deleteContact","initialContactData","BuildingImg","ModalDelete","theType","cData","submitRecommendation","listContact","deleteData","splice","prazo","thanksModal","initialListContact","toISOString","diff","ReligueProtocol","_this$props","_this$props$location$","CheckIcon","pageRenderMiddleware","RouteComponent","App","ApiContext","Provider","defaultApiContext","Router","Route","exact","path","WellcomePage","WellcomeAgainPage","NewClientPage","NewIndustrialClientPage","ExistentClientPage","AddressSearchPage","AddressComplementPage","AddressActivePage","AddressDonePage","AdmnistrativeLoginPage","FakeLoginPage","AddressListPage","CancellationPage","SaveTimePage","ServicesPage","ServicesConfirmPage","HomeServicesConfirmPage","PrivacyPolicyPage","WarrantyTermsPage","HomePage","ConsumptionPage","FinancesPage","HomeServicesPage","HomeDeliveryPage","PersonalDataPage","HelpPage","ClientRecommendation","component","Boolean","hostname","store","rootReducer","combineReducers","reducers","createStore","configureStore","getElementById","createRoot","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.2d10c220.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/user.d47b873f.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIoAAADRCAMAAAAkENpiAAAC91BMVEUAAAAAAAAAAAAAAABTSjcAAAAAAABUif9KjP9Uiv9Uiv9Tiv8AAAA+if9Tif8AAAAAAABRjf9Mi/9Uiv8ZFhBTiv9Tiv9Uif9Siv8AAAAAAABTif9Tif8AAABSiv9Tif9Tif9Ui/9SjP9Si/8AAACunHRTif8AAABTiv8AAABTif9Tiv9Tif9Tiv8gHRVTiv9Tiv9Uiv9Tif9Sif+aimcGBQTn0ZvWwY8EBAIJCAYAAACAclVXTjqUhWIvKx9VSzg9NygAAABTif8AAAC6p3x3a09VTDhlW0NCOyxTif8AAAAAAABQh//s7OxUiv8AAAD////f9v354KafuvXH1PGnuL12dnY7Oztwe39+p/9ekf8qRYDU4v+VlZUjIyPf6f/1+P/V4v83PT8/Z7/KtoYPDgvq8f+qxf9YWFcVIj+pxP++0//Q2vA9OC2Ttv+6qHzcPjFcj/+01f56ovqzyPSTk5PL2/+0zP/G1PHi5u3ExMQqRX8+Pj50oP+bjGd5c2Ryn/+VtPexsbHp0pt9cFM+OCmevf9Yjf9nlv2qwfV8cFO60P+Jrv/b5/9pmP9ik//e4+7p6uweHBgPDw7J2v+Psv95o/9klf9Vi/+9zvLZ4O/d3d0rLSwdHR3F2P+kwf9unP+DqPnOzs7AwMDowL3klY4NDw8PDgr4+v/v9P+Zuf9tmvxwnPuBp/mLrvjntbHmqqWioqKFhYXl7f/R3//P3v+wyf90nvuivPauxPXS2/DD193ZxJHifnarmnJmaWrhbWRSW2JsYkhKSUXeTkIuKiAPDgzi6/+Eq/9Sh/qat/a5y/Pr4eDpysjBv7wyU5rln5l9io6VkoyMfl0bHh/7/P/6/P/A1P+Vt/+kvvXR5u3k5+xLedrq1dSZqa1ve36HgncgNWPfXlRdVD48OjUPGS4KESAGCxTx9v/Y5P+hv/+jvfbr7OxNf+zY2Ni1x83OzctMc8d9kbtFXJBweYvjioIpRH5AS2VoZ2A+R1lTU1MYKEstNT/9y7U3AAAATXRSTlMAQMB/wIDw5wfxsXgwBM+gYBEM+dKokHA4IODZn3BfWFFAJxgQ1cm/ubCIZlUu7+LFl4BI/Pbt5+TXz8bGxcXCv69pUP329PPv35CPIC/41jsAAAqZSURBVHjaxNjLTiJREAbgs2vBMAkSL4nGa2KMl3h7A9eTP7Vt0knjBhNITGYDKxJWsBB0w22FLAe3KK+gLzCXR5iZp5ihDofQE1S6p5r5FsZ/dSrV1dVHlaiVjfml6K6F45PFpeXDI/WfLGyuWfA6Pj2fU7MWv9jDRJHo+kyrmZuP4HXWQUzNSOzAwttWD9VMHK7ifbtbKnQLUUznNOyntO1tSfN7vu08/6Cu+/itX7/zNmZHhek8gpGy3X8mr2qm0cKItaLCczZWyEOXJulVMJI4UCGJRzFS79FrqjZGFkPaMfMwbJfe8liAEU5fDmHk6T2/MJQIY16OEtBabXpfH0OW/HsUPzbz+kTTuGlB+yA9LrETaMkqTSdXNqOrZC1j6IamdY+hTSVpzoL2QNN7MY8olKY0vtD0Uh3TlhCa0umSH7070xb5puTInxvTFvGmFMinz03ptmz4boqRhya2c9c8TQnSln0lxDJN8S8v+4RWwMop8i8NTehLtA/2QkF0wC6UiNUJK9/v+t9TEuLQuhREFSwic8kHaxBLX16aXwazk3o1pklrgsWVgK3xD2EJwK1LRG4SDlEGQHJyzHg/ittKwDrYFf2RRfLaRjI1OAvO37E2Hk0p12BbUrdrM7W3qBHZyLtJDNpwi+x4LCJPVEGGY8Y7t+tKwBJYTm8JXlt2qpi14aQ4Zk0kIEVUG8aMd8nNKwFRsCoROQD/tGnQDOfNaEppgy0pAR/A0oNp5MNq5mzXW0p6YimXYFElYBGML/pcUQklfTYl4Q7i9aSY8d5Z9gVnJatfh4KTS8LVZ5voDGMJBbdmoinlCmxZ8A3q83W1CAAl0mcP4/XEaEp5ANsQ3CslGkjl7UqNBrKZ9MSYHUaHtIrgXjkHq1MwDcFtewTWpEC+fhL8BsUiZrEEkQNbVUrwbb6nIOpg+6IX/s6/PJ8tJWIBWo/8ewKLxJSMXXNj8a8Ctij8T7hWmvz6CbPghGwj6GqxwRILSkoUmhtsUnCqxBxBq5A/RbDIjpKzhiB/C11BO1OCPibAypc0vTY06zdx9vLaRBAHcDwKCr4fB0FRERT06L8h8vtNg9WQ9ZGkh6yaUDYmxlQM2B5sg9okiK+q+GpEqbVBhNpKUaEgvrCCoqIiCurBB6io+Dg4s7tpd9u4s5lM9ENCDrl8md/MsCSzPTLNQUPW/SkKtCLnUUXM4kloSJ91WXKuHQ0rZP9wuwgrO9EPD9Tup/UpaDoRdjOdg2ha6JFvPpqUS/wd24r80yNu2jI0HeKd6c1YMt9TE7OnY4n/ktOS7MSSZdM8tTFrOQ47kKwr79EJHDbZ1Y0ydeVSUrl7OGLn5rGPmKHj7Tji28SlC+ZyQ2iHkJc30SK7P3KjdM+c3bt7Twwtbv4izIwljiUzibBNH3CUg/7HxxsPZHGUZ6+JYeJUh5IZpApv76ELN++9JcNmctfkaEPDA2I45qvA92fI8+mHjznGWZe5RHf1ipda3WBUQSXeX0ZHXYfBdNpHmHme8vQde2a113SfMBehAv0KOmjLgMVWwkxwWBRWYnqhTwjcy2WR6e7CsXovR0F3B0xr9BGVTVlAqOteC33DtLgvMRKeAHRk4q04orW7LwclndfugkHfMGV3y3hC6fvENqI14FK+F5lbpbD+1O2+d323U/05sOrUtII5or9OaB794oHX6gqhNgJ1cQPHT8h3I3MBOApaQRsA5pR+0ZVLIVSD14ZQPmOuHD64gEx3HpzdHXwFA1oPMIQaLz/lFjK9eeB4RTM6tWs1TPmCTFcOOHq0a8XqUk6vd/YZmWwO+DulZ7BY0IriKet3WF2FUVKHkFL6geuuNqQNDA6CrAH5wK4+hlSsHlz4OjBU1IZqldKhIHUoBa4Ue55rnTVKybUhkwCXnt8pVJPycbvVKbB42otMBipwRzTFUT5uXvcC5KbkL5jX/f9PaTave/kpv7fYcFOeIBPPg/yUTWjDS0kg0/UU/n1KtN6mD5ns7fpKyEg5HEcpzl+uMqXpJEoT73CR8matjSUljhK1NXFSyjJTMihVcxUpMf1vyHAaIyFM1q1TlIDaHq5TMR30o4iocEoKEduDyq6kGgg1hpC+A2pEVYI7w3ViKQmxFPMC8YfoS/GHVBVVVVHVkB9DfkUwZZVjyrixhlMyxqo0JmlN4zqM7KI1SboqaRRMaban8NkGhNvCwTRbmEA4oNCUdDAcQRQdkHAKoGQp8ZRmlCoO4ilNbShRrEM0hYmel1gSBcEU0yqU5GQTiKeYoolVVUuwFRFPkU88paWlBaj/nnLk6j76sW/jKevDnLgqUo79aed+QqKI4jiA72Z6EurQRcHbdvDiqSwtS7F/BOOwL1yDbrVCgSFCghEotC2ox/UkqwcVdi8RrKcgMXTRo1DePFiRda1Dh47t+z2Y37ycerPTe783wX4vjuwePjvzfj/e/mZ3l1yRhTU9m7nZ1xEpELQ81dHrXkYpZjlHjrNidhenpjyez8PfvcUhPXkVlbLDGNvmBzPa2v9YNMputkbJ8qOfQ7ryJBplk9WSg1m3BkS0rVMzSLYZzyY//GGLkhRLFiS5HX48aekCtbXwpxZyQIFVO1qcsLOL63V5snh53Iy2d2YroYsZ7yOeE5dnFO6YaXu/OhG6xeF9xBsMkoeaXuUbSx2W2boafysslC6xUPaBNelA5ib+uXrq2sWl2vnTzm+AJAuSKo6Mp+5Ez2K9u7gBl+ear44LRUdzkKLubdcZ1jHcQiSmYG+7xaQ6hlBT2nDJYh1DqCmpXliyWamONWxqRcbqoQxgb8M61jmhnJMoyoVyU0g2RB3TTijlht/FRPKijkknlBhYszn/SXlOO6GUPyRxhonMe7ffsduT7G1xqVz1X5/vMADDkG2dOvjjl5gI9BQxodQcnFAqev5ZJgIbSmmYTbm37eSPX5Ap9BcIP8XCJAr9hBJr+aJEsTahxFpGip0JZSt/+IpEMTChXHSQom4rSLE0ocS2ghTNE8qpsJsEbCtIMRGkKNpKLCiircSCAm0lHhRsK4GU4np1eXlkvUhAwbYSSKksuJCFdaMUbCsn/0SZdL28paaU+XjSL8FU6Ci4iyvKknIZ/hSIKZ/5v+8lyT5j44DZo6WMw+v3S6a93fdHWgoriNOCEhTOEFPm4bRIEltnJVeG0yJLsqPUawVPwG6AhLaC8LTIEuwrxGclWJJx7FFkyUPHAkUhoaQoJISU6TyPQkJAwcgS6xRPYp3iSaxTPIl1iiexTvEk1ikoIab0KySUb8kUEkJKj0JC/PYds4ESC5RuP2VclmQ0Br6P2XQspwNGPUip4isxnxM+St8xygwtBav5cnwo/bGgiMaioCwNG8vvlB4F5X7aWIDir+YYUbpjQRGNJT6UvlhQsLFYpDRBTkE1v8DAEOwoU8sqGcVVBG59r5mlHLi1dIajVPjBh7SpHMLX4cNRRvjBYdpU4HciBkNRYBJWOkgbyrDLI1r+lwfB+SQoazDj30obyrcS/EYAfsMuKM/4g5UMSEpv0mbyDiQtKRUFs3TXSLZK+EMoCgpRbifiQmlOxITSPpiIB6WTL5NwlI6k0QAiJCWZMJoGpUH5/ylf7wXnETHlb2lQGhRfkqqkEkT5BZcXS6cYqI5aAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAC0QAAAEHCAMAAAADV5eyAAAAqFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8j1z1tAAAAN3RSTlMAgC5CNF2UheY63FPgcuxtrp9oY/EdwrMQqaQnz4/3mnfTt4p8Tgv0WErG+yIUCMoD175GGLs+67d2SgAAE7JJREFUeNrs3etuomAUheFPTsoZUUFBi5wqqGjRNtz/nU2azL8mncy0TkHf5ypWdtbeWwAAAODfLJtFLCm6XJvqzLWLUa4l01WYXYL9/rxep2lrGJY1mTjOfL576j54mjsTy2jT9Xl/ybwo2YwL21erWtaleLE8CQAAAGDwlkdJLlW32Ey9t7XhdLe2c6x2HWSrJC/cmSkr8euzAAAAAPqtifVStUdaFAapNe/6YJIGXjK2Z6UeNwIAAAD4eS9NrNfvsXmVnY1+pOZPHBxjH043hW/K0oL2BwAAAP6nV6n2R0k4gNj8mZ0ReFoxK5WFAAAAAG5jGcvqVvP2Vnd3nPYSjf1SovABAACAb7HQKzuPLsauewTGJRq7pfIqAAAAgL/WKKWbr/bWoXtIT0YQ5a5JmgYAAMCfLd/rztOL0eE3K5gWlcStPAAAAHzQKFWRZOmgNwVvahIkW1MSAAAAgBBH2c+99WMUnr+B9ZbYZSwAAADwkJ6l0tYy40Erz190MDLNrY8vAgAAAI+h0dVRFEw6fN17lr4eBQAAAO7Ws1IV0ZnW87c7tOHGvzKXBgAAuC+SuZ0ye765NhyZ1KUBAACG7iWube3tDj8M9tjunLjyUgAAAGB4Toqahxx7/jGTLFcVAQAAgIE4Seo45OhGHxzSaFsvBAAAAHrsJFVjj/jcN/NA83UeHgIAAPSPVI28tkN/WWFxJUkDAAD0RHPdrojPA5FGLkVp4Bd797aTOABFAbQMtYxcBLlIYUYEoXIR0Bix//9n+mKM0agoaGzX+oyTffYGgJ+1rJS6eut+m8FVdKAHDwDgJ4St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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH4AAACQCAMAAAD5sy9IAAAC8VBMVEUAAAD////f9vzM8f7////////////1+v3////////1/P/////////////////////////////////y/P/////////R8f3b9f7////f9vz////////////////f9v3I7/4AAAD///8FNGJfmdfzfHz/5cI8h9Dv+v/X5vWHs+HuYWFve36oub6nm6fU8v44PkACGjH+0qQDID0DMFsEM2EEM2IAAwanuL0DJ0nP4fORgpFHQUgABgttpdwELVXj9/5UTlQ3PT8BFirR5u0EKk8CHTd3MDC2XV0kHyQBEyQBDRgACRIyOz9we39kd3/S6vQBEB4NDw+WtL+hlaHjdHQXRXAQPmpFTVDD193vaGhfW1QDI0PY8Pi1x82LmZ59io7wbW0JN2V/cmF/aVJ4ZlI9Hx88Hx8fDg6tydhSXF/fWlosEhINBgbb8/rM5vDF3+pnoNqiv9GTs8j/37h3mrVojqtPdpcrV37BTk4/QEo/OTApLzAaHh8eGxcUERYPCAlIjdNcgqBGbpEiS3MbSHJibG9ha27UbGyIQ0RcLjAnKSwMGilKHx8QDQqbus2IqMD/47+Eo7aZqa3euJA6ZIgmUnrydXV8WG8jPGVtYFFfVkk/NCk6GBgtFxfE6/q53++92OW20d+v0d7+27Fxla/+1anfyKlTgKF9lZ6Vh5V+i48+aIw3YIZtTWfIY2UVOmXuZGRhRFpPUVGjQ0N6Pj6FNjZqMjLq+f/Z9P7Q8v6ZwOadxdtUldWRutFhiqicjZyBkZfOqoW3nYDycHBfVGg/Q2aoV2RvW0dfTj0XHSkBEyVZJCTE7Pvs8/rk7viv1+qnx+mEseF0qt5+qMOaqq6fk59af55WfJuHeYdaZoLjd3qgjnjGbna3anZpZHSvkXGLXXBuU21sYWxDWmuBUmeTWGVCVmR8TlxaUVrNVVZ5Z1McL1E+Sk+XTU0oO0tAQEqySEg/REhgTz55Pj6UPDw8NzwdKzgwKyUFEyAwKB8tFRWR2xhqAAAAHnRSTlMAN8Dv8jUV/tbOiSrhtKiieEYI7Ojk4cjHvWhiVgpDAa8EAAAI70lEQVR42u2aZZDTQBSAcXfX8FiKFSstHK7F3d3d3d3d3d3d3d3d3d0dfrEWtkkWaAKBQb4ZenSmzZcn+7LJXSBC3AihgyX8pYQKHylKIEaI0Al/B+HCMnu4hL+HYNQfPuHvIhS2Ryb/CbnpVDYZJ5PbxImjRBsnUKAIxL4liZQtiWyjxTHsjRUoUDT8Y1MSOYlsJDkJP34g8ppNbu+RyEZaEHFYqm9hr14OEQf+r//d+mSZ5CSzEyIOjvW/kcD/9QnX55CQ1GZE7VMnkKDYDI3+v/6//s/UV/09eu+Zomk6A6Nz+aIpf6XeW6086Clfzftr9BUagpSSfSvYrBdyOQ299uq9RUGQtVAJlyt3oUJZfTJQ1E591c7AKezKiFTSeTLm/nIKnavapl/EFQGu7OgL6REle+4AnoBqNunLc7kbCdJhO8fjCuCLwA5984NAcXl8IidygSc3UN41+On6VnlYzfOgb5EnK/vUyJ+sb4syAqYgleR1ub/m9xSk/kJtm/5EffFeuL1xZam1dzfSALmzp0dS3NR/aHGzn6afMZb2toslfg9IyJpX58/de8ZP0rcsh9IhQRaQ0s2j9VcuN+yn6GfWRHnQ9/XQdbnGH5C9ZoOfoG/WB5WAwh6tvlsTiT8LUnHR9kNlm/+wvukSlBcA8mr1WS48GFTAF5r+i0ilBGDcqH2VH9WfQ9kDyLDR6TNnzrxw+9ntCzNzbhHfNbH+spL0e1C7H9S3QYiu5OwG/cJUhNIqbwHgOVL5MiXa/JC+JR5kdBkhg750Kg05AaAjUhEn3eoH9FXKovSFaBqNemGW6j0BLPw+xa3rR/LgNdc4//TIzcOfY1HPgidJzIqQmeg5WVn45Ypb09O+8xiC91vv5lWbY1FfvBxCeQ3BU32BLFlyahlk0KMAcuYkfGv6OSg9KqyuecFE+BqrkIbc5MqPf7a1pMfBp88OGN3G7tFX9ZW0evXLNZtZ0bdCLPclkFZfx189Ksyn9XAr+na4zQqx8glM6MXJL7agn4ZzjwDjkehrp02bWEstqpdkH+HsFzev34oQqkybx4peZJ/cjgwzr5/Pr9u5f0Cfmxe/p3l9WV76yj+gd/Pi9zGt30znpm7ZmdXnUYdWA7P60whDW8e6XhxgpFl9W5z7jHTHJkjHph7TtzbqVxn0hXn62prVz+f6EkjPJKafbdS/RHoK8dY/b1bfC+vddODrWQUAB9KmnavVk5N6hvTk5mNrjFl9e77uXPrc05x0TavPflcapxZxhLFm9XinYdSLfhqtC3+e6FKZvpxJ/ZGa2OYiy96oH8yyz6svcv/h63pUxZz+OOL6jPJ72KGj1fSL4N3IQEZV39ycfrpEn853Ezs5ra//PdlYISOVVf0Mc/ppavJd2qkjbuFeEf/sETz14pPy5Bc323pyvbiFgsmjaQJGJJ7XCdhw/U7rWVx4spIShu7fif07Jw4FQh5kxPrCW4yDdeuut+k13ScQfScbO5WtjJ120pkv/P7YxdBtZ1a/Dcuy6zY76XT7OEFeJCcr36xtM6tvo843uZ5mRpBRKhcHaGN+u8FvMvIYai8m//5OnTpNlEx78SGevpaWNlsFv5pXzyE6ehJjOpEOyY5k5OVPIstWsbDVTM++Lg2rO1D9CK6HJpWRhBK8KXta2minp3s1SfEPAuUjnbpdgVJA1nm8eC0t3Gb0weEHiOIL/eP6wNk1d0TiXcC5O0G20wwgM6+KGT2nJ8meZKM/EL4w9Proy0OBk98xfrlx6BSkq96CviWfLlk1c2/lFCZrnA8Eq4cATHU4HJf2aHPPS9/Kir5pb9zgumm+d0ATJszndE4BlSlO5+oBZRyEK3t1o8GDUO8qVvRKK5Z90fsT9g3hoXdwOp2NGgN/18hZ0cEY0L3u/S8tUJBvlIdbfLbTHqWvzCKg3HnIhesaOQmNWPyHhb0/fts9/3hxf0uuN+2bWtS35PVzIcIyJ7PXf+FU6bA239oOzhU1HJz8QPxlrtIWdPG+GWb5ud4YchD+VHGfkzXbEBw6pyKhxjjHF8rQaTTQcYNuydiJL1GUUUU5iyqY0jcgR+Frz+msT6bbatWNtUaW0ZHQ3zEBV56fd4MKaUDQ14xeaYfSu9gDoqXODsTeQQ3cIacM8Q9w3MSVZ8H38nYBXxqa0Tcry8IvhPVvSJsx+QoSuZyn+FOvHeMRfxRctnk/0JLBhF5pUJPta/MupaXPR+27pWLRffUc4/Oy4PHvU0rq9A3N6JXhrPkDVgo9Dv17+pUBrO2HK16iLDKdHnEWOZVcpvRKTza9ujWiehr7d/VlutEtELnQZgBMMX7IIub1Tceg3HTBcf0Kx/f1dYEulyVNv68Phl83SvWcZr09hemOgukrfk/PKezp00z5nj54oDAJEyZNINdzmrfPEwAYpq/hnz4gz9jmih/6KBFDbpDrv1Cll9tX33/gmjLGBb9uYBlfvbtXccUffUT8KvUrPrRx++hxZdcZ9ANxd/jo3exhkn+1X/89vTJsML/SYj1dWnrItCNTdyoQBosdBmC6jCxFWADyzk/6Xb0yk/mbrP2KHjDkes/sM5UvdAEt/SzpleL3gPIp/1f1+VnocLu4Iqiu01cwpxfsAI5cr5J1h/EvTgTVFKt6peog4Ewto298UBlUVdGRQsi7jFKs6xWvuHzVXZO/v7rFyr+mriitV/K1DBx8Zlb0ggydwYf6devWrQ8+5MqgfAdrekE10spyuuDC2qUXjMollefCdbVTL6hQPZfeXR0vKPv1ggzVG+bKlQvwv37VRcXt1sv5i/QLGhYh9GUp9fZNY5W+XnaEReXp26IV/NEX0+6J04B1OmunbkmvH/oioJKCXzCtQ30g4vFD/wRUqiuYkmCdkor2CP4M3VnqhaU8m3JgnWpsiar+6n9C5//X/8P6WaUIKX82Vf3TFwObKO+XHmzA/6k3HWTYrxdD3wa+e8kRLChGSPGzqe79Ixbef/1/vYb/+v/6//r/erv1GxV7EfqoQWXEiBnEPmKHYfpQ+DVMoN9AdCwOEShysIShQwT6DcRLmDBSoM8R9AH2NLkB4gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAACDCAYAAAD4Z4dVAAAAAXNSR0IArs4c6QAAE3RJREFUeAHtXQ10FNW9/8/sbj4Jn4GQQAyGbwkfm0RLLaKg8opV2yfVarVtCB+2x9PzWnvK871zKuizT7Et77U9tYq6CVRUjLQPRJ8WBWkjgslugoCIjw+FmEBIQjABk+zs3Pe/m8xmdjO7e+/cmd3Qw5yTzJ17/1/3N3f+93/v3LkrwWA65pRNdshykSRBEQBxo2l5EkhDCcAwTA8FCYZgPl5KqkRAwUQX0rYRIB9j/j6FSG+Ct2LfYKmSlDRDZtyZ4kzPuBqIPB8kaT6Ccy0FMpY9BHGVEM1YB5KoKKsJCHygyFAFtQVVAGuUWDx2lcW21AatzpLyeai0jEhwF56zeFSwgBspLwg2gToF1EfAV/laZLmd14kBt2TlMCdRHpBkWI6VudJshfDxR88gYDIhF4FI2/w+zz1mbeDhE7CUQY27PM/pgJ8jJsvxaUZ/KXaYablGGntdh/SOIqcug5qnThnRWJFnD7jYUh3gf1yWpB9ZYaQmQ7jlaoL6zlQetuSditdzY0SRJZeWg+soLr9Lkslv8fEda4mFOiFWtVydyGASW3I3UQMPBOo2PB9ZJnJtHbhFy3OcqQEP9ua3iBgUi9fqlhupC9vxAcXVcQO8X9UWWWbm2hJwaQSAyv+CfjXbjBGsPHa1XL1+2ooVkJaA9/nX9flm0g4zTP08a2RnyZVrMKivQGAz+/PtS8WLc0U1Yz2cMpB7pNw5o0lT/Rsi8sy33Allac5s+c8oYLGIATy8iWi5envQDdUotRXX6PN40ubAnbFspDOdvIXMpTzKRGkTDW6fvaf8pzumQkPVl7z284PrXlbgktV3cBw6kVeZKL3dHVo0+1Bvu9LVNQ0OvnQmGo1RPh+4OChwOche9LH5RsLszktSyw1WC3W3K35lPHz4pwus9ZRZCeGa749yOWBXsoBlttMmQuxIhztTXMcAVrpYVTiZCGd9L9MVcL6Fw/opTPQCROmZo2DMmBmQNSwPUtOGQmrqUEhLHwYpeF6yMBPcU1T4olOB9o5uOHe+C5pbO+CT4yfhjbd3wJlmrqeW20p8zHNcJYHDfi9MYmFmcgvO0qVbcMR1B4tAMzQUxIIrr4PxBXMha2heVBG3zyNw3RwM9aMcxz/vhjd3H4INmzfDuXOWjAOMNRHyot9bca9xYX9uXHBdJWX/ApL83/0s1qWyc6bDlYU3QF4+W9ARD1zNMj/O3lb7mhHk12FPzR4t27Iz+l+CM/WLwVfxViyhMcF1FZfNJbJUja1WcLDRb4IrJQPyC66FCRNvwFaa21/AkLr9Omy5s6O3XCMRJxq7oeqNGnjp1VfhwkXmvshIVFgeRhBdSo+SHauDiwmaY5x7NwI7KkyqwIXLlQ4z3d+FydNvQV/KNU8e1Dq1AKCAczpoRJYT5s65AkaMLIS93npQFL9ADfpZERen7HBcrzbWefpzw1NRwcX5goewh7wznNz81YhRE+Gr8x+E7DHTTAsxAy5VJuPzWTRlFHzj5hvBd/AUNLc0m7YhjJGQfDXXvRea6jGKGHgYg1tyX64Mji04zmYOOwaK7s2RZAdMK/pnKL56Kfb4YvPlZsHVbBs2xAFLFn8FnGnj4IM6H87l8rkYTY52xsYn4Y27XW2sf0LL058NwXXllf4BgWXrZfTSDNJFs78Dk6d9Pe6LRQPWAVmi4FKBMkb2V8/MA1faeHi/tmaADt4MdA+pUq47nzTVbYvkHQhu8bJJskSeo3clkpj3embxvTBx8k28bFHprQCXCqc1K52ZC670fHi/RhxgjP9nqxlj10Lb0YDe+AEjNJekPmIFsFNnfBMKJy3U6xp06ZXfcUPZ3XHD1bh2471yyENzn40kDAcXWy2+X707koj3OnvMdJg243ZetoTT045u1f3Xg3sWXX8idqC7uQcmLU7VSwkD1yURjBAgLE9PzJKmo62Sr6xgIR0UNE6HBOseXgFDMsU6W7xPTsfwnN/oK9UPJE5+E4kIPyMUWDoXcCkd48a4YO0vVllgshS2HiIEriNbxhUwUpqIhrF5bhidc5WIiKTx3jg3F2ZMmyGkH9evjQD3vSEAQuBKhPxARLLDmQqzir8rIiKpvDRE+8+HVgrZQAMBp5T6pCakF1wcNGD+Qi3TzDlvfCmkZ4w0wzpoeKYXZsDNC8RCR1yytUCrUBBch+QUfsk4BecL/hGOH977DdFqZMDM8kIqJAiuDNIiEYmjxkyFIVmcMyoiCm3kLZo8BCZPnCykQXaQ+6kACi66W+nrItLyC74mwg4lp7bBt+tXC8mgzOSvr4H6mzVCcujo7b4l3xKSgTNF/0QFOGFO2WwUaDp2cjhSYBzjZLeRxRTYO/evCRW9OueRUJonEQR2XS8vrn4G+WdreNjDaG+eNxFWh7qlsCKmC4cM+DIKbXA45VlMHFGIRufMACdGCmaPrx1/McRa2vCaqRasB5YKI3veBTjdSJOmjuzhDiiaXmSKlzLhiwoMaVe6cI4GppuWgozZ6G9FjvXXPguNWVNCIngBjgQWcKTlWPsMwNjo7+JCymIkFi2YH6M0dlFwbsbddRP2ZRAKemOzGJfSSXCRo8uVBWYBjgrsJLEbTusze/oEkWqhS5Dn0bkLIUuysvjegxlZbAZgO4GlNo7PEZtrkFXJLaN/GGFUYZa8lJQh4EpJZyGNS8MEcN+LA7uBpcaOGSn2EkaVpPE0FEuJW/MoBKKvbSLFxgUYH7NEAEvtSkVUUtPMT7U4CBnqRJ9ruqt3ujIi8RG+1gBeuWcF5HV8EpRHOzl6DE8vBrVKF6ppnZcFPjaoIOLfqJGjoLHx84hctksVP7ARarl0DYIdhwZwZBQxKYHA0nqNHGbaY2KbhXTs0Mwv+PD3XLQD26BMI4BDymxusZqetvPntCT3GXF1YYcGphFS/KZZmYylAPvybxtAK83CF9M2uQK9sta2Vv0lVxr7XpW6BdMI9XR3cinkJaZD41s/CntzEhRB3n9XeA4hni3dPQDdXV3xyKKWYxTmp3Fue1SKOAU9PZ3g7+FezR5Ham9x5JxDl3MIXMjtH8mRHdttBbi5zc9kZzQixPWijAvKTkYjYMnv6GhiIeOiMQJ2/VefhYP3rwcoTAzADWfEnkqMFlpohyYE7rlWw2VSXGDqiaMB2zhsKgTSs8DxJM4bJADg/Yc/1ZvFnZaJ1IAtV/2Ym1PH0NJ8RHcllowFbEjykMQA/Pe9YitxVJXU04kbXJFm/mhtsQZcJmD7hr/42sPWFnzhSwI1PkFwSeA1WZFVIXBprNtyVgxgJmDp/cdeInTYCHDNwZaQGjMJjBQI7N9YLcMHG1uBwFEzQjSekyfe05LcZ2ZgjSTbBHDV9p1G2pjzENrg3aFxLj2qe0/m/jc21EJPN3+4nObvgNsO/TqklIZbNCqgnZfhobkFfWEUgMn+Wj0Vc7rxrB927Hqbmd6IEB+woPIguCohfzMiYs0LKN1w/Ci/QcEhLoJJQY0LLDVG7xb0xkUALD+4GqTZ5pYXv/A/+/SSTaUxAvsLZew1t+T7V7gk52emJPUx0UmcRbf+2tT7tLzzvT47aovt0xH3a57ODiAf1oJ07QJTVWnvVOGaW+43xasxUX+reF0407je3+sWvBtPivpd2rEdPhC8YZoe5jMFNR6wQWHRWq6mCVuwWWCpiCef/qsmyfQZsT1DgaUCNJ+Lm3GRHaYl9jFS19DxxWlRMUnh9350Hl7dtkVYNwK6WxMSAhdXhgxY068RMZ+xm/zgvd/j50jdzCyDgbDzIoGfPPwrYVOoS/AT/6OaoBC4iu/CDsTG/ARmn8TOjtNQX7tBkz/oz4EAgQcf22TJd8O4Kv8LqNv0kVbpELgAVQFc/PyKViBy/vzkPvj4kPiDIGIDC6+Kod3aZ3bDu9WhJ5mFLSqNDOp2faEOXAwdVLJJXyiSPnJoK4ZnYsG4iH4W3vWb66DyZWuqHHQJoP67Xm8YuIqv8u94Mxv0BCLpA75NcOwT4X5SxARDXnR/8PRLdbDuqacMy81kosgmoFGX7ggDty9/o65cOHmw/mU4tL9KWE5QANbAiuOXT+2CdX+0DlhqE1GlP0XaNgBchQQ8kUSi10ePvAn7qi2IIuLFuXEMPY+DhPJVG2Dj5hfjUPIV45OgqnWehyK5BoAL3g3HkHhXJKHo9enGeqje+QS0t30mKsoU/8FjF+COFY9B9V6haRRD3RgIGM5POo2o0Tk/gyv1FhiVieSdbz8Ju99+FDevuBquKroDMrPG8Ikz4RZONvXAuue2wxs7/pdPFyM17cgChPzEiDzqg+YsWdqMAI82YrIiD7/3hgmF18OU6bdCWsZwJpE8m1nQ2a0/vrALXtm6Bf2hyiTfDBFi26p4K7KNeA1bbpBQkqjHX23EZEUeISqcOLYLPj2+G3LHF+MeN/OD37DhDTUtPoAY1h1uh83b/gbb3nrdVlA1I1WQfqulI8/Ra0J3FU1TG5Ag+g2IlCZ4TXdiGj32KsjJmQlZw+nuTMMgDf+0I3JWrK1DxR2aeuDThnbYvfcA7Ni9E1pbg/PUGoutZ2y1Pdhq6Wo9Q4cVHVzkcJWUV+CkZJmtFjIIp1u20K2vrsjPRXN64MyZJjjbcpaB02YSlbzg91V8L5qWmOBCaflUJyGHg8vQo0lIYD62FEs2xbDCZBp+KZ0wHI54OqLJGxiK6SlrPXQW+3V91uV0LwII7r5YwFKq2OBSCkl9gp4uH/0I4BNEAoHAiv4c41RccJXaDe/hkqc9xuwJzo3txBJmDG5JcRz2bzgUT2FccKkA7AqfjCcoIeWGfXJCNIeU0FbrJ+rKUEaMBGtbkFyl5YdRTpR33jE0WFiE9Up+h0bUE35vZSFLtZhaLgrCQQ5ZyyLQVhrWpmCjEX7VEdfXaupZwYWAr3MjYnxcY0zKOdlugcARqHv+Hda6M4NLXwPh4pFfsAr+R6ML+loV7uOpF/eD5ipZ+iE6vpk8SqyixagFR2jcJluiHh+aOqXWU8wjjKPl9orFl3ph74l4lAnTJskt0FaLqwW+zWs/N7gBX8V27LStn3HmtTyx9G/DAQ93f8MNLq2TpMJPE1u35GkLziGc67zTjAWmwPXXeWrR//3ZjMJLjQeniDfC8arzZuw2BS5VpCjkZwhwwIzSS4UHW2236vWUm7XXNLhQX/kpbjz0jFnFlwIfLk5chXaa7kbF4hr30tH4M4ifYXhkzaYLcRBPZCiGiJ7F0IvzDWp4Bcy3XCqnruIs/szgo+Eibbwy3Yb4bAqGXiq5m49rILUYuChPOZ/5X+ibGgeKvnRz8KXjQfwNiJ2iNRAGF47+vhvBTUxoJubEmLCirVZ1di1hIo5DJA4uKgj4PK8gwLvi6BIvToRbINJW2Pfi/4kby/Kah1EL/vT2chq6MJIPSjK0v0fxOe+yyjhLWm7QmBocHkrwuFWGGcqx3S2Q/9A+FjHUz5lprbmTfpzqGt75EQ6QCzntYCJHd2jbmwhVVU8HfJW5TIYwElnXcqnCYOcmLWfUPWjIaCcWIPJtVhtkLbhoHf60Nu3YXrba0KA8a5+zfhMl2AY4X9KfYU3KcnCpWX5J/Sl27FFXopg23YZoAUV2KbUuU7Ne8ephC7hQU3kapyUfjqc82eXUHeBvrKMb6/3i0Wp77HrQgnbiQr79GEEI7c+rr7DVcwvYPx5EN2bbKyt7Wq6GSEC1tnOz0C3Q6VJFJQs1U+042wquv74SvxUgFXYYLiyT4HQinXiy8bAVXGq3PwD/iq3kC0vqYJUTI+RjxVu5zhKbYgixHVzaOjD0/3EMG9iLLHAL6GdVf3fXDexKzVPaDy7aFqj1bMR+eXB8SkngUd7fTDcLb0LApcbhxM4ybDUXzRoa5BN3CycUn+cRIRs4mBMGLtRUnEJwH+CwbSCpgFugIa1f7Vk0UKh9OYkDF+uA876ViE9S9grAT9GeB98LQlt88d6GhIJLjVN6/CuwBZtaB8BbOY0eb2ibWlfBvPRT4xM9Jxxc/PnsZmH3wFFr6g4Uv3ITB4tlpIkHF01H97AJ6xy2qwZTjUx0aBgGenDrvzom+RYTJQVcWgfF7/gRDi74djbm7NDwBjYHvB5rh+AcNyBp4MKHzzXgjlD/xmErvuBgp0ZgVXQHc9k5rKdMHrhYF/xw43fYGJmXwXMuLFqN/v2E9ZCxS0wquGgmUYjzbnQP1u70RtRj+MHzY+ww2EOZbHABvOtbcDu+Mquqh08CegP1eqvkichxiDBbxas21R+Tct1jcauF0ngy4+3HoAbgAVJfuSuenESUJ7/l9tUy0NXxc1H3gN9rvIcb+TydCOBYdAwacOFQVSc+0j+MaXSMaIHOGWPYNS8mf4ILBw+4WPFAbcVWXHAcfUE1om904IhPVbrVhUZlycwbVOBSIAItwZ2OjEdU0VquDGvgwAZvMoE00h3NXCPaxOW5lxU4HeQAGpelV4qPPo4jIkzGzez9Xs9kPd1gSUdYao9Zi35FMnklV2998Aeq0vWHMD7cLsvhcOqypIv5s292XzHhFq7fFwq0QeCdx6VWnSBbkraDu/h3ZGhmlzVTjNTlWmEwyiFbVuGdsvmwXYHN9g9q8ZfBtfH2XAb3Mrg2ImCj6Mst9zK4NiJgo2h90GiLmi/boCczA6IPaTm0SgQKMRYbx8ESjVRscUo0qRH5/w+oXIrpkLF6UwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/home-header.4bb40377.svg\";","module.exports = __webpack_public_path__ + \"static/media/relogio.e290b3ef.png\";","module.exports = __webpack_public_path__ + \"static/media/religue.a25c1ea4.png\";","module.exports = __webpack_public_path__ + \"static/media/equipamentos.cbf42118.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAYAAAAYwiAhAAAAAXNSR0IArs4c6QAAEQ5JREFUeAHtXXlwFFUa/3qOEJghB+EIIYlcQeWQcHgAAtkVBGVVdr2oLV2GWrVKV0vU1f0TC2v/cF0Fd6u0XNYNYtUKtWyVWOK6uK5cauSMiq6cCRIgJIQkJJNjkpne75uZ19Pd05lMT+ZK8n1VSb/ufv2O3/vNe6+/932vAVgYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEGAFGgBFgBBgBRoARYAQYgf6NgNS/i5/60ue7ysfbwfo0lqRUkqAs9SVKkxLIcqUM0m4mWB/ao9j17joA31qQpJw+JDOgH2WCxdi8Ra4t5dhjuWJ8fNA8Zhs0NY1jRYtdW7DXCpFr+FA73LdgEiybXQztnQAdHl8cc+tfSbV7JKht7IRjZ2th97EqhInFFAI5rvKcLLAgcoFh8fqiXNj0VBkUjXSCu90Hre2yqfQGYuRGtwwt7RLUNbvBMhArmMg6ZYHVJchF+QhyUbitg8lFOGQPC/Rbo7MdTDACxIzIEqwU8e9dMNHfc9F5Z5cMPuaXHxoL8ivTHkCJe7AADlH/l2Q5W0Sed22+CIJ38E67FAzUgYzg7J4JpkYlmrAklYpohTjvUoR7LwUKCliCzOK3SA0s8Ttp8QCcbtJ2a5NyLDA8Q5tHrRvgUlv/Z+ekbAmcurpRTZlg2vaO29mjH3dDLb5NqcVp98J7d9sVklXWybD20251lH4bduKcayvWTU8yHiIT0KQnG+UwclE2rV3Yq+E9IUcvaXs4cb0/Hqlup5pCdRN1YIIJJOJ4LMmV4N4p4dDStdIxIdXj/ddaYeao0Hkci5D0pO6dIkHp6PC68BCZoKZ4ao4V6C+S0HDy+pKB3QThP7NIiPA9RsAkAkwwk4BxdHMIMMHM4cWxTSLABDMJGEc3hwATzBxeHNskAgP7FcYkGPGMXnlJhsp6rZ5rUrYFFhZpX+X/9b0F2lHrn46ycLIMo5zhui0zZWWCmUEryri0TLT2v0Yaeh9qu22Q7wiQbO8pC7x7QEu4KLNISrTdpyT4033ePuXFQ2Sf4DN+2I2mOz0JkU9ImyosrqXVsedqRF1M7sGihir6iNRDvXSrDT6u9oIbTYhJHBkyLB9vBdLyC1k+lYZQCxw4K66kz3EUGorcOa3vDGOCJahNaa61sKh3eIlky6cmqBBpkCwPkWnQCAO5CEywgdy6aVA3JlgaNMJALgITbCC3bhrUjQmWBo0wkIvQ+2vOQK59Auv258NeON2sfc2fnCPBk7NDNmKkE3u5ohtajXSyCSibE1v7SbRRE4reBGQRliQTLAySvl8gk+l/ntAuE1GqtHx067iQVevHVT7Yf15Lwr7nHjmFybkyuGaEdHGRY/f9Lg+RfccwLAXqIRxBx1P1TbqWr/J0K8EeLdmizj8ZeXMPlgCUyTXt7TtsUNuqTZwaVz08kX3+puU21PZr4yXqzIHlUq8kxDufhnaAd455IXuIBHdNDPRdTLB4oxxMj4iU7+g98UQ2eO+5xzfGpq+9QMM+yXDsrW8ZZeG9KeIL8eBOrbEzNJ+sawtgwXOwwc2JhNeeCZZwiAd3Bkywwd3+Ca89EyzhEA/uDJhgg7v9E157JljCIR7cGTDBBnf7J7z2TLCEQzy4M2BN/gBq/yNn6pTalIzNgeFDDbYcVGIkJ8AESw7OCculBb12N+36FnYePAMtHbgLnEpWzJ0Ij94+AwpGRLFmpXounkEeIk2imescolvCNplAHKMTuR5/4z+wdd/xMHJRNjsPnYGHX/sITlxoimOu5pJigpnDC174xSzvuDwH0B75864bY/Lp+EYncp24qCOPVTsoUa/2fPke/PJGkkw2dFXUlkZ3k0/DEfhlWUk7/il75YfHSM6Vv/z7Gw252oqLwHvdbBjTkAGytws854+Bt/6UvzAXG904hFbBqkXXJqdwqly4B1OB0V+Ch0/XwV8/OaYUtyN/DFxeWgaNRVnQibZYktUOQ4pngTXvGiXOhwdPK+FkBphgyUQ7Tnmt3/qlkpLPbod6JJcQd1bI5t+WN0Fc1vR2ysUkBJhgJkF+eftR54zfbIUX/37Q5JPxi05DnpCGxQtAzgipI3xpNulhgomWivL4xkfHnFfbu2DX0XNRPhH/aA88sAhoWGxYNB/arynSZGBXfU7QdzWkF8vPTY2qggmmaZ7eTx4qm9JGHyC9Hz9Amgo5j6quN7OLoW7F7eAu0ZbBhttGDW8O7Ofla2uGrtrvlSLOnjRaCSczkGYdajKrHltev//VzVfxb1hsT/ftKfpc4CM1FnD7jL2Rxp7tAgvG8b9FVn+lZObEb+s9d88c5TyZAe7Bkol2H/Pa2CDB0Q5jco2o6wZHa8DhglQUvvZmJbdn75mbsmUj7sGUZkjPAGnhH3/jE8jIzIBvly0FcA4PK2gGfsp51MWAe7i36YKi/6KIi6YVws9uDL1Nhj2c4Avcg8UA8Jc/XIJzlxO/YhRYCvrEvwzU0OQGx/EzYaWVcNwsrO4CCYdGn8cNnqrQ0EgT+3Wrbgl7JlEX1H2rCDPBTKL91Fv7slf9YRfcue7DhJNs/dYKzRpjR0HoC7ui2GPOd0NG0F3MU3UQZF9oo4t1q+YldWicjN/DFDIx6LXOQ6RAJMrjB19VD6WopKqouexWvtkd5eNRR9u69zjs+a5GiX916nXQOVa79uls8kJOQ+Ctsev8d+BrrVfiP7J0OsxJ8puja4YFbioAsONHu8fhh+Gx0+UPkiotkkYBmne99sFhpUSeEbnQNO9G5ZwCNo8MY38MmOfoVRIlBTnw2LIbNPGTcWLDDuwG9OYmuYrbCJCE+rTAOf9PMQI071r/3hdKKWgpqGHRAuXcH5BlGFftASu+NJJKovP0fuU+qSRecS1WzlMd4CEy1S2gy19vJdGIPVdXXq4mVl6dF4YGv/PtOVcJsifop4+xaN6VSgPDfxz3+T8ZPT8/0HcxwTRNl9qTPcdqYNv+E0ohyARHr63PdPtgZFAl0d1QDV78E3Ln3AmweHqhOE36cfO3PtiMu+uQPD0bYE4eb36S9EboKUP/0Kiykuh2OqBh8XxNdIs3MDSSCoBUEl0/HlXuk0oiVdp6UQj6yL0Q3vxEIJEmx+fL92pUEjTvUltJUDFpUm8Pmt17Tn2uUUn8cc3ipKokooWNJ/nRIhWMJ4P8DgVpwbtwZHwsFGjepfYIai69IUwlkXXFiwvZgaUgv0pCtRREKokp+OaYjsJzMJOtcq58tetvu47DklkFq4tGqvbDNJmOiE4qCbV1KqkkmufMFLf9R3unD/JrAl2Xt6VeYyUxa+LolKgkNAUMntD3mPTCBNMjEsX5gwsnVw/L7HvnT/MucsgQordO9V/3qyTQSiKokvBUHxDRgVQSf1yzSDlPdcA13QqnG73+bUJpC81u/E0wwVLYKq/tOAJ661SvU9srjqr1QmbQiNBTdSBMJZEOzrUCQtoOlL6HSUKK1iYkWN9/hiJ1PppC4EP08iG/RSGtJRPDrFOHovnNiEuBtUW/SqL5gogOD946JaUqCaUgvQSYYL0AlIjbF664YcOOQ0rSpJJovEW7FGTpVqkkyDpVpZJI1VKQUmATAR4iI4CV4yrPyQLLahmkMoxGr2lNkiS/f/6KO7OkINwuK0JSmlsvkCOsys2/fslPwlQSBaiSsAUNIzxonaq1kpifEpUEvZCQ+9uJ842a+hideHHO2I06VyaYETp4rci1xSWBvAEkSfe5BGnlihc/6Nj42CJYMrMQ7Db0Q/QbP4W/QRklrV8KIpWEfiko57IXnFexhVA6sefSWKfePSfpKgn/4vv7hzSqFKO6GV2zGl0c7NeKXVvWImneROZkGmHh9cm2nQerIdfhgMK8bMAeDqNJ4MFhLZKQw+xL2yqUKOQZdAXdztRi7/BBYRUaEOJFv0ri3BHlNlmnPrsyubb1RC6yqD1b36KUw0yAezAdWvmu8vHYuhvUl2kfiqI8J1ScvAIV/6tRbq3fFnCAjcYkWb8UZKiSCFqnKo4bp/YreZFKIpnWqZQxzRWJXOrhPMcxDK4vLoChKl9MpZC6wBffn+AhUocJ2CXLi+Iaaeu3/W4ZTCvOBTfOhzo/6oKc7Hr49NBe6CIlD0q0JCPrVL1KQr8UNBoXsYd0BHpBv0pCZZ36SgqWgjbsOKwh14qbSmHBtBIBT8Tj9n0HoaOrm9UUepTQtn2xuHYf+j4SuUi2XwGoQIu6sXmj4I55t+HcC7+VEhQiGakdehIj61S9w+ywFi+MqA9YInRfOglenUoi2dap1HupLWp/OnOqKXIdOVXth4PVFHpWSNJ4cWnZ7GIRhOpOgB3ZVqgcaoG8rJyoSUZzmE27vlHSMVoKsuLcrQAdN0jIOtVTU6nEJ5XEcyvnKufJCuxF0yEhmXYbLJk9TZxGPFLPJchFEZlgEeCqUXkO5QRfh8ySjKxT1XMYIysJIpcNOy8jh9l1q7QmOxGKG9dbV9vxFxWUCWOj8wrXkwsH+6+ZYALF4BFB2SEubdzxtQjCPXlKMOqe7FV8tVdvENd489wwlUQuDouRHGZTZSVBb7xCxub2bqlhRK4W2VvGBBMoiqMsbRbBmgY3PPd2wD5+/BCAtegxI6S3nuw1nCDrrVNbpl8vHvcfyWF29IXA0JhuDrOagvZy0hO5mjavaWKC6cA7t/nh99W92PbPTysk2zABwKUaLdQku23+bSCjg4YQ2jdViN9xQ2edqnaY9Q+NKXSYFeWM5RiJXJQeE8wAVezaXTR/ELfUJCvHt3Qjkn1TkAe1K5YBkUkv9UvDl4JGqxxmO3XWqcl2mNWXN9rz3shF6TDBDNCkrp3mD2ZIVuGw+OdXl3QkM3KYdeAWS7lp5DBrAEGvl6IhFyXCBOsBSrMkE8nQuiKRjDyCiFx6h1kr7uFFC9kk6eIwK8oe7TFaclF6TLAIqPaFZLQpr55c4LdORYfZoEoinR1me4LFDLmYYD2hqLoeK8lUSShBcpgd5saBFyXdHGaVQkYImCUXJcU9WARAxa14kGxIW8hh1q+SSCOHWVHPSMdYyEXpMcEioaq6Fw3JSnvwYpP8DrMBExyjPbxS7TCrqqYSxNFcEbKKUC//0MsPvQQRJkqkHgJMsB6AMbrcG8lIT2Yk+TW4hxfuhkPSHxxmPd1k2xaqCVlFCDFDLnrGJh7kY3QI+H+1rvKy4ZJ1NxoF+h0YSU9G8uqv5wPpydacDKVFe3hloysXiRmHWbIf24v7g128EtrYJJRq4kLY2UIregTVN4f24he5mSUXPYcYscSCANnrq0lGaZB5D5GsEtvmmSqA/fUyTPih07/NElmndp7YrWRFDrNvPbFEOdcHHnoVv5Km/9CVPlISz2MhFxWPe7AYG6m3nuyz6QC/3eeFnWhaH7CSCDnMWiyS+4m7SlfJFrnHjV6RXJ/FWLS4PxYruagg3IP1sTmMerKpRbnwzMqZkDUsAzbubYaKrw5rvIJkWfo5rXlGypqcTrB1XJHiJOkerWq4opnQG5WHCWaEislrRiTrKQmfLL9es3n12p7uD7Tr/BYZhxZVvV3uiZTcYCMXYcE9WCRGxHAvOLStRWCVLXJwDrMDh8WNNZsf3h1DkvwII8AIMAKMACPACAw8BP4PtJx4vIt3OCUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAYAAAAYwiAhAAAAAXNSR0IArs4c6QAADaNJREFUeAHtnctuHMcVhqtmRFqySImSFpLjkKFtKIhzEx07COwA8mQRL5IAkrKJgcDk8AnEPIHoJzD1BBwqCJBVRC+ShTcaZuEYSBDTAYIgCIxQomVLgCVepVgiZyrnNOc0q5vdMz3Tl+km/gakunTd+qufVdVV1TVK4QIBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAgloEPv4EbPBEaq8yMnVGmqoY4s3a39ernnhA5BRAgs4UpsieuW0nqCkzZG1XZU4917temVhLPKfXLnqvPjEFiC1eQXl500CW1ui4S2Xptet/0Po505DKvyNa3VDASWUA23E5ebhTEkrtLcptq9fliF9nz1dxNltXuTWvBxfm4IjCnEvILEZZRZ0EYvE+FZSv6kJwtjVtj/zvzUgse/4I6WuHh4MCKPAoEJiR7NMHGtzk9VOcnW/RmCfu1AFiS0pipNf1Z7p37gXsE8gsS1+e1voQWLW49j1RskHvWepMMtl4hL/NjkAe+ALs1qpadsf7bT+KzeVOXfFPWNs/VH9LF0i/xMDy6+oR6df0mV2IGrdwINVa7bsZ1u0fZo2fktkoXXMOVXjFJLdhAaDFfKuvHxaPXGPAvRvlcE+7AuzQWJi8uOLjKBGhydXqi5LRMN5DdV84VOg/ivV39b0drMUQVc8BeBWrTp1dpkze+fRzc/R0mbW1I27hbXX/+hONGCuSRiWHZMc9aNTgNcmmSdcd0hFh53rc5PTrCYKMhtTzB6vfe4c+ygPxK3rM2BAbXxqvfvBV1kApXH3V/TmOtuUjSgj9rVcUt1Z35ynLrN9934Sq1b9txaWxOpl6SAa9RymcFBcTomBObB0btjWzmt2IakwAN6sUcxtTHLVrhCCGxQlS9Lmbn14kG9/4LA/ER6dDtjLmPmJDqPyfjVXdyd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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAYAAAAYwiAhAAAAAXNSR0IArs4c6QAACvZJREFUeAHtnW1sHMUZx5+9s51zbMd2gp3gkNgkBAhQ1yVBNK1EXCC8hUI+gdRGyZlKVRWpLYoQX6iEGjVCaihFSK2qUsURKpHaL4SWtIJExKlUiBogDpDS2sR2iJPYsfxy8Vt8L97Os9fZ23u/9e3u+fb+K8Uzuzszz85v/nlmdnZulwgbCIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACDABBRisIbDK39lSQZ4nVVJ2KKS2kKK0WFNy8ZWiqtQlrrpbVegIBJZn+9X5O+tqyPtrRSF/nkW5MnuZK2vlUKVW+99s81L4hOgH6hwyWXRm4MEW2GSauJTIGWN2T3UDld0geseKKvLWNNB8cJrUmQCFJwYpMnrBmJQCba0U2PT1uGNu2FGCQfJdGabKC19RdW8fxmALaVTuFpeRp1+Ms6Key1tGS1ruJW9dU9riWGxzX/6T1NmAnmbkwXaabV6j77st4p2aIo/bKuVEfWoUz6tGcfluvT+juPiaPMKr+W77DimVtfol1p86Tfw/3q1bpLqavG6tnF314rvFMsXTKctfsm6L1h3K/Uyh4vFS2fK1FB75kkidJ08wRPOVlRRsbMiUrajPwYOZbL4K8u6QWXjMlalblOmMoeItp4o139APVfWe1+NujEBgJltVzO3oAuMB/UI2b91qPVvF2DjxWMWtG6YpTLasoqrNYvyl5fJU1mfMHZkcofBwD6mRUFI6xVMmesmwdrxscpp4vOLGDQIz26qK0iKzeJbGBuzymAzDw70UHOyWuyUboou0oenZc0FcUbDwYDYILHS1Ry+1tiJMdy+f1fdl5MRQjYzSfEWFHndbBAKzo0XDsTEXi6vRF9tnc/1TS3Sr8+XlFFqReSynJy7CCLrIAjRa/2TMY820uHcmn9FCYA4L7PNxH43MletWA3e773mkXjkRQRdp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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAYAAAAYwiAhAAAAAXNSR0IArs4c6QAADYZJREFUeAHtne9vHEcZx2f2bKckdmzHgiRtbB80QVABcYt4AUjN9UXhRZHqvEa1z+IFL5u85JXdvyDuH4B8doTEK+pIwIsiYSdSywuE4kApiLboEqdNQlrHTpykse92eJ65m7vxendv17d7Z8fflZLdnR/PPPOZxzO7czvPCIEDBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEDgKSQgn8I67eoqHcvPZDtFZpKUzEqhRpSQS1LIxQ1Rmr1dmCg2o/zQxOy4UjJPcrMsh2QXpVSFGzPjs83Irer8JskYYZ3pXGS9XZF5+9PCz5fCZMPAwugkHDeYn7sgpTjnK1apVWq088uFsYJvfEggG0CXcN4RUnLjbz+UWtoQ7tmdGDDpzAZ7gWT3bRdMRqzENOl83i+Ow2BgQWQSDqeGmiHjyjcSSw02EcfI+vIzfYeFc5UMIBsqW6nifeG+uFqYWA1NZ0Vq45JixgryvSSdC6TzhF8kDMyPSsJhJ/IXc45UC5bYNfrTn1bCWVLCpTiZp7heHV/pyZastKGXeji0jEsJcYnGxnmdSYpRauDXawLIyHjYrN03uNDDYb3nWnOVKkjhLErhjpBBn6PsFZ3pwlXylZuFNxa9ImFgXiIp3A9OzM1bDX39viqP2D3Jc/nfjGRkmRun1mA7UYMM4O2bhXFu+NoxODFLRiHHawE7u1grq0zOft7SPafMFEmc1pkNe3lmbNQr3vEG4D55AlKp00YqDSdTtnFxODcc9w4mzU7PXuNiOcsz4/mdyjP5WDfbuDhc14HqYtJQHc+Ya/vcYd/gOiUCW4Yw/yGK/tJXTeml7kPi4cnnzW3g+cDtO+IZ+scH9SCXgxJyHPWg2gC+PHZUPKF/jY5DH38iOtYf6mROwLDq0pukwyXzUR9KK/fV/2Fg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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/buildings.63eefd60.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/background.bc18778b.jpg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","import axios from 'axios';\nimport { stringify } from 'query-string';\n\n// import { navigate } from \"../components/utils/rootNavigator\";\n\nexport default class HttpHandler {\n constructor({ baseUrl }, dependencies = { axios, stringify }) {\n this.baseUrl = baseUrl;\n this.axios = dependencies.axios;\n this.stringify = dependencies.stringify;\n\n this.axios.interceptors.response.use(\n response => {\n if (response.data && response.data.Erros)\n return Promise.reject(response.data.Erros[0].Descricao)\n\n return response\n },\n error => {\n try {\n try {\n const parsed = error.toJSON()\n if (parsed.code === 'ECONNABORTED')\n return Promise.reject(new Error('A requisição está demorando mais que o normal. Tente novamente mais tarde.'), error)\n } catch (error) {}\n\n if (error.Erros)\n return Promise.reject(error.Erros[0].Descricao, error)\n\n if (error.response && error.response.data)\n return Promise.reject(error.response.data, error)\n\n if (error.message)\n return Promise.reject(error.message, error)\n\n } catch (err) {\n return Promise.reject(err, error)\n }\n return Promise.reject(error, error)\n })\n }\n\n get timeout() {\n return 60000\n }\n\n get(params = {}) {\n const { url = '', headers, query } = params;\n const finalUrl = this.getUrl(url, query);\n const config = { timeout: url.includes('Consulta2ViaBoleto') ? 120000 : this.timeout, headers };\n\n return this.axios.get(finalUrl, config)\n .then(this.onSuccess)\n }\n\n post(params = {}) {\n const { url = '', headers, body } = params;\n const finalUrl = this.getUrl(url);\n const config = { timeout: this.timeout, headers };\n\n return this.axios.post(finalUrl, body, config)\n .then(this.onSuccess)\n }\n\n put(params = {}) {\n const { url = '', headers, body } = params;\n const finalUrl = this.getUrl(url);\n const config = { timeout: this.timeout, headers };\n\n return this.axios.put(finalUrl, body, config)\n .then(this.onSuccess)\n }\n\n patch(params = {}) {\n const { url = '', headers, body } = params;\n const finalUrl = this.getUrl(url);\n const config = { timeout: this.timeout, headers };\n\n return this.axios.patch(finalUrl, body, config)\n .then(this.onSuccess)\n }\n\n getUrl(url, params) {\n const { baseUrl = '' } = this;\n const parsedParams = params ? `?${stringify(params)}` : '';\n return `${url.indexOf('http') !== 0 ? baseUrl : ''}${url}${parsedParams}`;\n }\n\n onSuccess = (response) => {\n return Promise.resolve(response);\n }\n}\n","import memoize from \"memoizee\";\nimport HttpHandler from \"./HttpHandler\";\n\n// MOCK\n// export const API_URL = \"http://lsoranzo.dev.br:3004\";\n// const BASIC_AUTH = \"\";\n\n// DEV\n//export const API_URL = \"https://homologsbitdna.grupomir.com.br/consigaz\";\n//const BASIC_AUTH = \"Y29uc2lnYXotaG9tb2xvZzoxMjM==\";\n\n// PRD\nexport const API_URL = \"https://itdna.grupomir.com.br/consigaz\";\nconst BASIC_AUTH = \"QXRlbmRpbWVudG9DbGllbnRlOmYyY3VDaFBsZw==\";\n\nclass ConsigazAPI {\n constructor(dependencies = { HttpHandler }) {\n const baseUrl = API_URL;\n this.api = new dependencies.HttpHandler({ baseUrl });\n }\n //\n get token() {\n const endpoint = () => `/GeraToken`;\n return this.api\n .get({\n url: endpoint(),\n headers: {\n Authorization: `Basic ${BASIC_AUTH}`,\n },\n })\n .then(({ data: { Token } }) => Token);\n }\n\n getHeaders = (token) => ({\n \"Content-Type\": \"application/json\",\n Authorization: (!token && `Basic ${BASIC_AUTH}`) || undefined,\n token,\n });\n\n getClientIp = async () => {\n try {\n return await this.api\n .get({\n url: \"https://geolocation-db.com/json/\",\n })\n .then(({ data }) => data.IPv4);\n } catch (error) {\n return undefined;\n }\n };\n\n formatDate = (date) =>\n `${date.getFullYear()}/${String(date.getMonth() + 1).padStart(\n 2,\n \"0\"\n )}/${String(date.getDate()).padStart(2, \"0\")}`;\n\n clearMemoize = () => {\n function getAllMethods(toCheck) {\n var props = [];\n var obj = toCheck;\n do {\n props = props.concat(Object.getOwnPropertyNames(obj));\n obj = Object.getPrototypeOf(obj);\n } while (obj);\n\n return props\n .sort()\n .filter(\n (e, i, arr) => e !== arr[i + 1] && typeof toCheck[e] == \"function\"\n );\n }\n getAllMethods(this).forEach((method) => {\n if (method.substr(0, 3) === \"mem\") this[method].clear();\n });\n };\n\n memConsultaLocalEntrega = memoize(this.consultaLocalEntrega, {\n promise: true,\n });\n memConsultaSegundaViaBoleto = memoize(this.consultaSegundaViaBoleto, {\n promise: true,\n });\n memConsultaProtocolos = memoize(this.consultaProtocolos, { promise: true });\n memConsultaServicos = memoize(this.consultaServicos, { promise: true });\n memConsultaNotaFiscal = memoize(this.consultaNotaFiscal, { promise: true });\n memConsultaPrevEntrega = memoize(this.consultaPrevEntrega, { promise: true });\n\n async consultaLocalEntrega(cpfcnpj) {\n const url = `/ConsultaLocalEntrega?cpfcnpj=${cpfcnpj}&versao=1`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaCondominios(cep) {\n const url = `/ConsultaCondominios?cep=${cep}&versao=1`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaOcupacao(codigo, localEntrega, localizacao) {\n const url = `/ConsultaOcupacao?codigo=${codigo}&local-entrega=${localEntrega}&localizacao=${localizacao}`\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\");\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaServicos(cpfCnpjOrCode, localEntrega = \"PADRAO\", segmento) {\n const url = `/ConsultaServicos?cpfcnpj=${cpfCnpjOrCode}&local-entrega=${localEntrega}&segmento=${segmento}`\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\");\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async cadastraCondominio(\n CPFCNPJ,\n nome,\n telefone,\n email,\n localizacao,\n codigo,\n codEntrega,\n codEntregaCond,\n nrSequencia,\n conteudo\n ) {\n const url = `/CadastraCondomino`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .post({\n url,\n headers: this.getHeaders(token),\n body: {\n Condomino: [\n {\n versao: \"1\",\n usuario: \"app-site\",\n CPFCNPJ, // Dados do Condômino\n nome, // Dados do Condômino\n telefone: telefone.replace(/[^\\d]/g, \"\"), // Dados do Condômino\n email, // Dados do Condômino\n localizacao, // Composição da informações enviadas pelo Cliente\n codigo, // Código do Condomínio, retornado no método ConsultaCondominios\n \"cod-entrega\": (codEntrega || \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\"), // Código do Local de Entrega do Condominio, retornado no método ConsultaCondominios\n \"cod-entrega-cond\": (codEntregaCond || \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\"),\n \"nr-sequencia\": nrSequencia, // Retornado no método ConsultaCondominios, na lista “tt-tipo-inst”\n conteudo, // Aqui devem ser informados os valores utilizados para compor campo Localização, só que gravados de forma individual\n religue: false,\n instalacao: false,\n },\n ],\n },\n })\n .then(({ data }) => data);\n }\n }\n\n async geraOcorrencia(\n sessionId,\n servico,\n vlServico,\n codMotivo,\n nrAcordoComercial,\n cpfcnpj,\n localEntrega = \"PADRAO\",\n complementaryData\n ) {\n const url = `/GeraOcorrencia`;\n const token = await this.token;\n\n this.memConsultaProtocolos.clear();\n\n if (token) {\n return this.api\n .post({\n url,\n headers: this.getHeaders(token),\n body: {\n sessionId,\n servico: (complementaryData || {}).servico || servico,\n cpfcnpj,\n \"local-entrega\": (localEntrega || \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\"),\n \"cod-motivo\": codMotivo,\n \"nr-acordo-comercial\": nrAcordoComercial,\n \"vl-servico\": (complementaryData || {}).value || vlServico,\n \"tipo-vazamento\": (complementaryData || {}).tipoVazamento,\n \"local-vazamento\": (complementaryData || {}).localVazamento,\n \"gas-fechado\": (complementaryData || {}).gasFechado,\n informacoes: (complementaryData || {}).informacoes,\n\n // Cancelamento\n contato: (complementaryData || {}).contact,\n \"sobrenome-depto\": (complementaryData || {}).lastNameDept,\n telefone: (complementaryData || {}).phone,\n \"e-mail\": (complementaryData || {}).email,\n \"dt-saida-apto\": (complementaryData || {}).leavingDate,\n \"portaria-eletronica\": (complementaryData || {}).portariaEletronica,\n \"morador-no-local\": (complementaryData || {}).moradorNoLocal,\n\n // Contestação\n \"leitura-dia\": (complementaryData || {}).reading,\n\n // Ferias coletivas\n \"it-codigo\": (complementaryData || {}).itCodigo,\n \"dt-inicio\": (complementaryData || {}).dtInicio,\n \"dt-fim\": (complementaryData || {}).dtFim,\n\n usuario: \"app-site\",\n },\n })\n .then(({ data }) => data);\n }\n }\n\n async geraAbastecimento(codEmitente, codEntrega, complementaryData) {\n const url = `/GeraAbastecimento`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .post({\n url,\n headers: this.getHeaders(token),\n body: {\n dsPedido: {\n Itens: [\n {\n \"it-codigo\": (complementaryData || {}).selectedModel,\n qtde: (complementaryData || {}).qtde,\n },\n ],\n Abastecimento: [\n {\n \"cod-emitente\": codEmitente || \"\",\n \"cod-entrega\": codEntrega || \"\",\n \"dt-entrega\": (complementaryData || {}).data,\n usuario: \"app-site\",\n },\n ],\n },\n },\n })\n .then(({ data }) => data);\n }\n }\n\n async manutencaoContatos(\n cpfcnpj,\n cpfContato,\n nome,\n telefone,\n email,\n sequencia = undefined,\n tipo = undefined,\n elimina = false\n ) {\n const url = `/ManutencaoContatos`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .post({\n url,\n headers: this.getHeaders(token),\n body: {\n sequencia,\n cpfcnpj,\n nome,\n telefone: telefone.replace(/[^\\d]/g, \"\"),\n email,\n [`cpf-contato`]: cpfContato,\n tipo,\n elimina,\n },\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaHistoricoConsumo(\n cpfcnpj,\n dataIni,\n dataFim,\n localEntrega = \"PADRAO\"\n ) {\n const url = `/ConsultaHistoricoConsumo?cpfcnpj=${cpfcnpj}&data-ini=${dataIni}&data-fim=${dataFim}&local-entrega=${localEntrega}`\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\");\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaSegundaViaBoleto(\n cpfcnpj,\n dataIni,\n dataFim,\n localEntrega = \"PADRAO\",\n quitadas = \"no\"\n ) {\n const url = `/Consulta2ViaBoleto?cpfcnpj=${cpfcnpj}&data-fim=${dataFim}&data-ini=${dataIni}&quitadas=${quitadas}&origem=app-site&local-entrega=${localEntrega\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")}`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaProtocolos(cpfcnpj, dataFim, dataIni, empresa, localEntrega) {\n const url = `/ConsultaProtocolos?cpfcnpj=${cpfcnpj}&data-fim=${dataFim}&data-ini=${dataIni}&empresa=${empresa}&local-entrega=${(\n localEntrega || \"\"\n )\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")}&usuario=app-site`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async cancelaProtocolo(cpfcnpj, localEntrega, tipo, nrOrdemServico, motivo) {\n const url = `/CancelaProtocolo?cpfcnpj=${cpfcnpj}&motivo=${encodeURIComponent(\n motivo\n )}&local-entrega=${(localEntrega || \"\")\n .normalize(\"NFD\")\n .replace(\n /[\\u0300-\\u036f]/g,\n \"\"\n )}&tipo=${tipo}&nr-ordem-servico=${nrOrdemServico}&usuario=app-site`;\n const token = await this.token;\n\n this.memConsultaProtocolos.clear();\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaCartaQuitacao(cpfcnpj, empresa, ano = 9999) {\n const url = `/ConsultaCartaQuitacao?ano=${ano}&cpfcnpj=${cpfcnpj}&empresa=${empresa}`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async verificaProtocolos(codCliente, localEntrega, codMotivo, servico) {\n let url = `/VerificaProtocolo?codigo=${codCliente}&usuario=app-site&local-entrega=${(\n localEntrega || \"\"\n )\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")}&servico=${servico}`;\n\n if (codMotivo) url += `&cod-motivo=${codMotivo}`;\n\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaNotaFiscal(cpfcnpj, dataIni, dataFim) {\n let url = `/ConsultaNotaFiscal?cpfcnpj=${cpfcnpj}&data-fim=${dataFim}&data-ini=${dataIni}`;\n // if (localEntrega)\n // url += `&local-entrega=${(localEntrega || \"\").normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\")}`\n\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaPrevEntrega(cpfcnpj, localEntrega, itCodigo) {\n let url = `/ConsultaPrevEntrega?cpfcnpj=${cpfcnpj}&local-entrega=${localEntrega\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")}&it-codigo=${itCodigo}`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async consultaContatos(cpfcnpj) {\n let url = `/ConsultaContatos?cpfcnpj=${cpfcnpj}`;\n\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async utilidades(acao, params = undefined) {\n let url = `/Utilidades?acao=${acao}`;\n\n url += Object.entries(params || {})\n .map(([key, value]) => `&${key}=${value}`)\n .join(\"\");\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async geraBoleto(titulo) {\n let url = `/GeraBoleto?titulo=${titulo}&origem=site`;\n\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async admnistrativeLogin(login, senha) {\n return this.utilidades(\"login\", { login, senha });\n }\n\n async tiposContato() {\n return this.utilidades(\"TiposContato\");\n }\n\n async motivosAltProgcao() {\n return this.utilidades(\"MotivosAltProgcao\");\n }\n\n async verificaAceiteTermo(codEmitente, cpf) {\n return this.utilidades(\"VerificaAceite\", {\n [`cod-emitente`]: codEmitente,\n cpf,\n });\n }\n\n async aceiteTermo(codEmitente, cpf) {\n const idDispositivo = await this.getClientIp();\n return this.utilidades(\"AceiteTermo\", {\n [`cod-emitente`]: codEmitente,\n cpf,\n [`id-dispositivo`]: idDispositivo,\n origem: \"Site\",\n });\n }\n\n async download(acao, titulo, useDescricao2 = false) {\n await this.token;\n\n return this.utilidades(acao, { [`titulo`]: titulo }).then((response) => {\n try {\n // Valida se a resposta é um array com valor\n const { Retorno } = response;\n if (\n !Array.isArray(Retorno) ||\n (Array.isArray(Retorno) && Retorno.length === 0)\n ) {\n throw new Error(\"Nenhum resultado foi encontrado.\");\n }\n\n if (useDescricao2) {\n const { descricao2 } = Retorno[0];\n\n if (!!!descricao2) throw new Error(\"Nenhum conteúdo foi encontrado para essa ação.\");\n\n return [null, processFileDownlod(descricao2)];\n } else {\n const { Descricao, descricao } = Retorno[0];\n\n if (!!descricao) throw new Error(descricao);\n if (!!!Descricao) throw new Error(\"Nenhum conteúdo foi encontrado para essa ação.\");\n\n return [null, processFileDownlod(Descricao)];\n }\n } catch (err) {\n return [err.message, null];\n }\n });\n }\n\n async downloadBoleto(titulo) {\n await this.token;\n\n return this.geraBoleto(titulo).then((response) => {\n try {\n // Valida se a resposta é um array com valor\n const { Retorno } = response;\n if (\n !Array.isArray(Retorno) ||\n (Array.isArray(Retorno) && Retorno.length === 0)\n ) {\n throw new Error(\"Nenhum resultado foi encontrado.\");\n }\n // // valida se a respota tem algum conteúdo\n const { Descricao, descricao } = Retorno[0];\n\n // a a API retorna mensaem de erro\n if (!!descricao) {\n throw new Error(descricao);\n }\n\n // se não vier nenhum conteúdo\n if (!!!Descricao) {\n throw new Error(\"Nenhum conteúdo foi encontrado para essa ação.\");\n }\n\n // processa o arquivo e faz o download\n return [null, processFileDownlod(Descricao)];\n } catch (err) {\n return [err.message, null];\n }\n });\n }\n\n async externalInvoice(cpfcnpj, endDate, nota) {\n const dataIni = formatDate(subtractDays(365, new Date(endDate)));\n const { dsRetorno } = await this.consultaSegundaViaBoleto(\n cpfcnpj,\n dataIni,\n endDate,\n \"ENTREGA\"\n );\n\n if (\n !dsRetorno.hasOwnProperty(\"tt-cliente-retorno\") ||\n !Array.isArray(dsRetorno[\"tt-cliente-retorno\"])\n ) {\n return [\"nenhum arquivo encontrado\", null];\n }\n\n endDate = endDate.replaceAll(\"/\", \"-\");\n\n const { \"tt-cliente-retorno\": invoices } = dsRetorno;\n const invoicesFiltred = invoices.filter(\n (invoice) =>\n invoice[\"cod_tit_acr\"] === nota && invoice[\"dat_transacao\"] === endDate\n );\n\n if (invoicesFiltred.length === 0) {\n return [\"nenhum arquivo encontrado\", null];\n }\n\n return this.download(\"ArquivoBoleto\", tituloBoleto(invoicesFiltred[0]));\n }\n\n async externaldanfe(cpfcnpj, endDate, nota) {\n const dataIni = formatDate(subtractDays(365, new Date(endDate)));\n const { Notas } = await this.consultaNotaFiscal(cpfcnpj, dataIni, endDate);\n\n if (\n !Notas.hasOwnProperty(\"NotasFiscais\") ||\n !Array.isArray(Notas[\"NotasFiscais\"])\n ) {\n return [\"nenhum arquivo encontrado\", null];\n }\n\n const { NotasFiscais: nfs } = Notas;\n\n const nfsFiltred = nfs.filter(\n (nfs) => nfs[\"nr-nota-fis\"] === nota && nfs[\"dt-emis-nota\"] === endDate\n );\n\n if (nfsFiltred.length === 0) {\n return [\"nenhum arquivo encontrado\", null];\n }\n\n // const nfs = Notas['NotasFiscais'] || '';\n return this.download(\"ArquivoNF\", tituloNF(nfsFiltred[0]));\n }\n\n async dinamicBanners() {\n let url = '/RetornaBanner';\n\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async generateOwnershipExchangeCode(clientCode) {\n const url = `/VerificaCodigo`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .post({\n url,\n headers: this.getHeaders(token),\n body: {\n CodCliente: clientCode,\n }\n })\n .then(({ data }) => data);\n }\n }\n\n async checkOwnershipExchangeCode(exchangeCode) {\n const url = `/ValidaCodigo`;\n const token = await this.token;\n\n if (token) {\n return this.api\n .post({\n url,\n headers: this.getHeaders(token),\n body: {\n CodigoVerificacao: exchangeCode,\n }\n })\n .then(({ data }) => data);\n }\n }\n\n async sendEmail(cpfcnpj, empresa, ano = 9999) {\n const url = `/EnviaEmail?EMPRESA=${empresa}&CPFCNPJ=${cpfcnpj}&ANO=${ano}&ACAO=CartaQuitacao&ENVIAEMAIL=Yes`\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n\n async shareTicket(cod_estab, cod_ser_docto, cod_tit_acr) {\n let codEstab = cod_estab.toString();\n\n if (codEstab.startsWith('0')) {\n codEstab = codEstab.replace(/^0+/, '');\n }\n\n const url = `/CompartilhamentoBoleto?estabelec=${codEstab}&serie=${cod_ser_docto}¬afiscal=${cod_tit_acr}`\n const token = await this.token;\n\n if (token) {\n return this.api\n .get({\n url,\n headers: this.getHeaders(token),\n })\n .then(({ data }) => data);\n }\n }\n}\n\nconst consigazAPI = new ConsigazAPI();\nexport default Object.freeze(consigazAPI);\n\nfunction processFileDownlod(base64) {\n // Remapeia o base64 para binário\n var binary = atob(base64.replace(/\\s/g, \"\"));\n var len = binary.length;\n var buffer = new ArrayBuffer(len);\n\n // converte o binario em bytes para matrix de 24bits\n var view = new Uint8Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n\n const dataURL = window.URL.createObjectURL(\n new Blob([view], { type: \"application/pdf\" })\n );\n const a = window.document.createElement(`a`);\n a.href = dataURL;\n a.download = `${Date.now()}_consigaz.pdf`;\n window.document.body.appendChild(a);\n a.click();\n window.open(dataURL);\n\n return base64;\n}\n\nfunction subtractDays(numOfDays, date = new Date()) {\n date.setDate(date.getDate() - numOfDays);\n\n return date;\n}\n\nfunction padTo2Digits(num) {\n return num.toString().padStart(2, \"0\");\n}\n\nfunction formatDate(date) {\n return [\n date.getFullYear(),\n padTo2Digits(date.getMonth() + 1),\n padTo2Digits(date.getDate()),\n ].join(\"-\");\n}\n\nfunction tituloBoleto(invoiceData) {\n const {\n cod_estab,\n cod_espec_docto,\n cod_ser_docto,\n cod_tit_acr,\n cod_parcela,\n } = invoiceData;\n return `${cod_estab}|${cod_espec_docto}|${cod_ser_docto}|${cod_tit_acr}|${cod_parcela}`;\n}\n\nfunction tituloNF(ticketData) {\n const serie = ticketData[\"serie\"];\n const cod_estab = ticketData[\"cod-estabel\"];\n const nr_nota_fis = ticketData[\"nr-nota-fis\"];\n return `${cod_estab}|${serie}|${nr_nota_fis}`;\n}\n\n","import HttpHandler from './HttpHandler';\n\n// export const API_URL = 'https://projetoportaldeservicos-dev.sa-east-1.elasticbeanstalk.com/consigaz-report';\n// export const API_URL = 'https://projetoportaldeservicos-dev-new.sa-east-1.elasticbeanstalk.com/consigaz-report';\nexport const API_URL = 'https://portaldocliente-back.consigaz.com.br/consigaz-report'\n// export const API_URL = 'https://portaldocliente-dev-back.consigaz.com.br/consigaz-report'\n\nclass ConsigazReportApi {\n\tconstructor(dependencies = { HttpHandler }) {\n\t\tconst baseUrl = API_URL;\n\t\tthis.api = new dependencies.HttpHandler({ baseUrl });\n\t}\n\n getHeaders = () => ({\n 'Content-Type': 'application/json'\n })\n\n formatDate = date => `${date.getFullYear()}/${String(date.getMonth() + 1).padStart(2, '0')}/${String(date.getDate()).padStart(2, '0')}`\n\n async exportInvoice(cpfcnpj, startDate, finalDate, deliveryLocation) {\n return this.api.post({\n url: `/boleto/export`,\n headers: this.getHeaders(),\n body: {\n cpfcnpj,\n startDate,\n finalDate,\n deliveryLocation: deliveryLocation.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\")\n }\n }).then(({ data }) => data)\n }\n\n async exportIndustrialInvoice(cpfcnpj, startDate, finalDate, deliveryLocation) {\n return this.api.post({\n url: `/boleto/industrial/export`,\n headers: this.getHeaders(),\n body: {\n cpfcnpj,\n startDate,\n finalDate,\n deliveryLocation: (deliveryLocation || '').normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\"),\n }\n }).then(({ data }) => data)\n }\n\n async sendIndustrialConsumeReport(cpfcnpj, email, clientName, issues) {\n return this.api.post({\n url: `/consume/industrial/sendReport`,\n headers: this.getHeaders(),\n body: {\n cpfcnpj,\n email,\n clientName,\n issues,\n /* {\n Issues\n\n \"deliveryLocation\": \"padrao\",\n \"address\": \"AVENIDA C 2, 275 CASA 01 LOTE 16 QUADRA 20\",\n \"deliveryDate\": \"04/08/2020\",\n \"gasVolume\": \"360,3000kg\"\n } */\n }\n }).then(({ data }) => data)\n }\n\n\n\n async sendInvoiceByEmail(cpfcnpj, startDate, finalDate, deliveryLocation, email) {\n return this.api.post({\n url: `/boleto/send`,\n headers: this.getHeaders(),\n body: {\n cpfcnpj,\n startDate,\n finalDate,\n deliveryLocation: deliveryLocation.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\"),\n email\n }\n }).then(({ data }) => data)\n }\n\n async sendInvoiceIndistrualByEmail(cpfcnpj, startDate, finalDate, deliveryLocation, email) {\n return this.api.post({\n url: `/boleto/industrial/send`,\n headers: this.getHeaders(),\n body: {\n cpfcnpj,\n startDate,\n finalDate,\n deliveryLocation: (deliveryLocation || '').normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\"),\n email\n }\n }).then(({ data }) => data)\n }\n\n async exportDischargeLetter(cpfcnpj, year, type=\"anual\", company=\"Consigaz\") {\n return this.api.post({\n url: `/discharge-letter/export`,\n headers: this.getHeaders(),\n body: {\n type,\n clientTaxId: cpfcnpj,\n year,\n company,\n }\n }).then(({ data }) => data)\n }\n\n async sendDischargeLetter(cpfcnpj, email, year, type=\"anual\", company=\"Consigaz\") {\n return this.api.post({\n url: `/discharge-letter/send`,\n headers: this.getHeaders(),\n body: {\n type,\n clientTaxId: cpfcnpj,\n year,\n company,\n email\n }\n }).then(({ data }) => data)\n }\n\n async exportDanfe(cpfcnpj, startDate, finalDate, deliveryLocation) {\n return this.api.post({\n url: `/danfe/export`,\n headers: this.getHeaders(),\n body: {\n cpfcnpj,\n startDate,\n finalDate,\n deliveryLocation: deliveryLocation.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\")\n }\n }).then(({ data }) => data)\n }\n\n async sendDanfeByEmail(cpfcnpj, startDate, finalDate, deliveryLocation, email) {\n return this.api.post({\n url: `/danfe/send`,\n headers: this.getHeaders(),\n body: {\n cpfcnpj,\n startDate,\n finalDate,\n deliveryLocation: deliveryLocation.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\"),\n email\n }\n }).then(({ data }) => data)\n }\n\n async sendCancelationEmail(name, cpfcnpj, date, email) {\n return this.api.post({\n url: `/service/email`,\n headers: this.getHeaders(),\n body: {\n name,\n cpfcnpj,\n date,\n email\n }\n }).then(({ data }) => data)\n }\n\n}\n\nconst consigazReportApi = new ConsigazReportApi();\nexport default Object.freeze(consigazReportApi);\n","import HttpHandler from './HttpHandler';\n\nconst CONSUMER_KEY = 'Kr2AD_enFrDYwTpCv6OWFv9fvbEa'\nconst CONSUMER_SECRET = 'KUeYHYxXYuwNv2MGBmu4bylrgswa'\nexport const API_URL = 'https://gateway.apiserpro.serpro.gov.br';\n\nclass CpfApi {\n\tconstructor(dependencies = { HttpHandler }) {\n\t\tconst baseUrl = API_URL;\n\t\tthis.api = new dependencies.HttpHandler({ baseUrl });\n }\n\n get token() {\n return this.api.post({\n url: `/token`,\n headers: this.getHeaders({\n 'Authorization': `Basic ${btoa(`${CONSUMER_KEY}:${CONSUMER_SECRET}`)}`\n }),\n body: 'grant_type=client_credentials'\n }).then(({ data: { access_token } }) => access_token)\n\n }\n\n getHeaders = headers => ({\n ...headers,\n \"Content-type\": \"application/x-www-form-urlencoded\"\n })\n\n formatDate = date => `${date.getFullYear()}/${String(date.getMonth() + 1).padStart(2, '0')}/${String(date.getDate()).padStart(2, '0')}`\n\n async validateCpf(cpf) {\n const token = await this.token\n\n if (token)\n return this.api.get({\n url: `/consulta-cpf-df/v1/cpf/${cpf}`,\n headers: {\n 'Accept': \"application/json\",\n 'Authorization': `Bearer ${token}`\n },\n }).then(({ data }) => data)\n }\n\n async validateCnpj(cnpj) {\n const token = await this.token\n\n if (token)\n return this.api.get({\n url: `/consulta-cnpj-df/v2/basica/${cnpj}`,\n headers: {\n 'Accept': \"application/json\",\n 'Authorization': `Bearer ${token}`\n },\n }).then(({ data }) => data)\n }\n\n}\n\nconst consigazReportApi = new CpfApi();\nexport default Object.freeze(consigazReportApi);\n","import { createContext } from \"react\";\n\nimport ConsigazApi from './ConsigazApi'\nimport ConsigazReportApi from './ConsigazReportApi'\nimport CpfApi from './CpfApi'\n\nexport const defaultContext = {\n ConsigazApi,\n ConsigazReportApi,\n CpfApi\n}\nexport default createContext(defaultContext)","const storage = localStorage;\nexport const setItem = (key, value) =>\n storage.setItem(key, JSON.stringify(value));\n\nexport const getItem = (key) => {\n const value = storage.getItem(key);\n if (value) {\n try {\n return JSON.parse(value);\n } catch (error) {\n // console.warn(`Storage key ${key} cannot be parsed`);\n }\n }\n\n return undefined;\n};\n\nexport default class CondominioService {\n static get inRegistration() {\n return getItem(\"condominio_em_cadastro\");\n }\n\n static set inRegistration(value) {\n return setItem(\"condominio_em_cadastro\", value);\n }\n\n static consultaConcominioApiParser = (value) => {\n if (value.Retorno && value.Retorno.Condominio)\n CondominioService.inRegistration = value.Retorno.Condominio[0];\n\n return value;\n };\n\n // ----------------------------------\n\n static get selected() {\n return getItem(\"condominio_selected\");\n }\n\n static set selected(value) {\n if (value) CondominioService.selectAll = undefined;\n return setItem(\"condominio_selected\", value);\n }\n\n // ----------------------------------\n\n static get selectAll() {\n return getItem(\"condominio_select_all\");\n }\n\n static set selectAll(value) {\n if (value) CondominioService.selected = undefined;\n return setItem(\"condominio_select_all\", value);\n }\n\n static get selectMany() {\n return getItem(\"condominio_select_many\");\n }\n\n static set selectMany(value) {\n if (value) CondominioService.selected = undefined;\n return setItem(\"condominio_select_many\", value);\n }\n}\n","import CondominioService from \"./condominio\";\n\nconst storage = localStorage;\nexport const setItem = (key, value) => {\n if (value === undefined) {\n storage.removeItem(key);\n } else {\n storage.setItem(key, JSON.stringify(value));\n }\n};\nexport const getItem = (key) => {\n const value = storage.getItem(key);\n\n if (value && value !== \"undefined\") {\n try {\n return JSON.parse(value);\n } catch (error) {\n console.warn(`Storage key ${key} cannot be parsed`);\n }\n }\n\n return undefined;\n};\n\nexport default class ClienteService {\n static get localEntrega() {\n return getItem(\"cliente_local_entrega\");\n }\n\n static set localEntrega(value) {\n if (value && !CondominioService.selectAll && !CondominioService.selected) {\n CondominioService.selected = value.ClienteEntrRetorno[0];\n }\n\n const previousValue = ClienteService.localEntrega;\n if (previousValue && previousValue.isAdmLogin && value)\n value.isAdmLogin = previousValue.isAdmLogin;\n\n return setItem(\"cliente_local_entrega\", value);\n }\n\n static consultaLocalEntregaApiParser = (value) => {\n if (Object.keys(value).indexOf(\"Cliente\") === -1) return value;\n\n const {\n Cliente: { ClienteRetorno },\n } = value;\n\n ClienteService.localEntrega = ClienteRetorno[0];\n\n return value;\n };\n\n // ----------------------------------\n\n static haveJoinedTheApp(cpfcnpj) {\n return getItem(`cliente_${cpfcnpj}_have_joined_the_app`);\n }\n\n static setHaveJoinedTheApp(cpfcnpj, value = true) {\n return setItem(`cliente_${cpfcnpj}_have_joined_the_app`, value);\n }\n\n // ----------------------------------\n\n static haveClosedPersonalDataModal(cpfcnpj) {\n return getItem(`cliente_${cpfcnpj}_have_closed_personal_data_Modal`);\n }\n\n static setHaveClosedPersonalDataModal(cpfcnpj, value = true) {\n return setItem(`cliente_${cpfcnpj}_have_closed_personal_data_Modal`, value);\n }\n\n // ----------------------------------\n\n static get newClienteData() {\n return getItem(\"cliente_new_cliente_data\");\n }\n\n static set newClienteData(value) {\n return setItem(\"cliente_new_cliente_data\", value);\n }\n\n // ----------------------------------\n\n static get industrialContato() {\n return getItem(\"cliente_industrial_contato_data\");\n }\n\n static set industrialContato(value) {\n localStorage.removeItem(\"cliente_industrial_contato_data\");\n return setItem(\"cliente_industrial_contato_data\", value);\n }\n\n // ----------------------------------\n\n static get isLoggedIn() {\n return ClienteService.localEntrega !== undefined;\n }\n\n static async logout() {\n ClienteService.localEntrega = undefined;\n ClienteService.newClienteData = undefined;\n CondominioService.selected = undefined;\n }\n}\n","import React from \"react\";\n\nconst GenericIcon = (props) => (\n \n {props.children}\n \n);\n\nexport const IconInfo = (props) => (\n \n \n \n);\n\nexport const IconClose = (props) => (\n \n \n \n \n);\n\nexport const IconChevonDown = (props) => (\n \n \n \n);\n\nexport const IconCheck = (props) => (\n \n \n \n);\n\nexport const IconPlus = (props) => (\n \n \n \n \n);\n\nexport const IconArrowUpLeft = (props) => (\n \n \n \n \n);\n\nexport const IconMarker = (props) => (\n \n \n \n);\n\nexport const IconLocation = (props) => (\n \n \n \n \n);\n\nexport const IconForwardArrow = (props) => (\n \n \n \n \n);\n\nexport const IconSpinner = (props) => (\n \n \n \n);\n\nexport const IconHome = (props) => (\n \n \n \n \n);\n\nexport const IconMenu = (props) => (\n \n \n \n \n \n \n \n);\n\nexport const IconArrowLeft = (props) => (\n \n \n \n);\n\nexport const IconAdmin = (props) => (\n \n \n \n);\n\nexport const IconDollar = (props) => (\n \n \n \n \n);\n\nexport const IconHomeOutline = (props) => (\n \n \n \n \n \n);\n\nexport const IconDelivery = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport const IconHomeSign = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport const IconSearch = (props) => (\n \n \n \n \n);\n\nexport const IconTelephone = (props) => (\n \n \n \n \n \n);\n\nexport const IconEmail = (props) => (\n \n \n \n \n);\n","import React, { Component } from 'react'\nimport { CSSTransition } from 'react-transition-group'\n\nimport './Toast.scss'\n\nimport { IconSpinner } from '../../components/Icons/Icons'\n\nclass Toast extends Component {\n\n constructor(props) {\n super(props)\n\n this.state = {\n isIn: true,\n title: null,\n description: null\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n if (!props.autodismiss && props.description !== state.description)\n return {\n isIn: true,\n title: props.title,\n description: props.description\n }\n else {\n return {\n title: props.title,\n description: props.description\n }\n }\n }\n\n handleAutodismiss() {\n const { isIn } = this.state\n const { autodismiss, dismiss } = this.props\n\n if ((autodismiss || dismiss) && isIn)\n setTimeout(() => {\n this.setState({ isIn: false })\n this.props.onUnmount && this.props.onUnmount()\n }, this.props.dismissTimeout || 2000)\n }\n\n componentDidMount() {\n this.handleAutodismiss()\n }\n\n componentDidUpdate() {\n this.handleAutodismiss()\n }\n\n render() {\n const { isIn, title, description } = this.state\n\n return (\n \n \n
\n
\n

{title}

\n {description}\n
\n
\n \n )\n }\n}\n\nexport const LoadingToast = props => (\n } autodismiss={false} />\n)\n\nexport default Toast","export const SHOW = 'consigaz_web/toast/SHOW'\nexport const DISMISS = 'consigaz_web/toast/DISMISS'","export default ( initialState ) => ( reducerMap ) => ( state = initialState, action ) => {\n const reducer = reducerMap[ action.type ];\n return reducer ? reducer( state, action ) : state;\n};","import * as types from './types'\nimport { createReducer } from '../../utils'\n\n/* State shape\n {\n title,\n description\n }\n*/\n\nconst initialState = null\n\nconst reducer = createReducer(initialState)({\n [types.SHOW]: (state, action) => {\n return action.payload\n },\n [types.DISMISS]: () => ({}),\n})\n\nexport default reducer","import * as types from \"./types\";\n\nexport const show = ( title, description, timeout=2000 ) => ({\n type: types.SHOW,\n payload: {\n title,\n description,\n timeout\n },\n} )\n\nexport const dismiss = ( ) => ({\n type: types.DISMISS,\n payload: {},\n} )","import reducer from './reducers'\n\nimport * as toastOperations from './operations'\n\nexport {\n toastOperations\n}\n\nexport default reducer","import React from 'react'\n\nimport './Page.scss'\n\nimport FooterImage from '../../assets/footer.png'\nimport LogoImage from '../../assets/logo.png'\nimport { Redirect } from 'react-router-dom'\nimport { Component } from 'react'\nimport Toast, { LoadingToast } from '../Toast/Toast'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { toastOperations } from '../../state/ducks/toast'\n\nexport const redirect = (props, redirectTo, redirectState = {}) => {\n const { history } = props\n\n if (history && redirectTo) {\n Object.assign(redirectState, {\n from: history.location && history.location.pathname\n })\n\n history.push(redirectTo, redirectState)\n }\n}\n\nclass Page extends Component {\n\n constructor(props) {\n super(props)\n\n this.state = {\n pathname: null,\n toastTitle: props.toast && props.toast.title,\n toastDescription: props.toast && props.toast.description,\n toastTimeout: props.toast && props.toast.timeout,\n isLoading: props.loading\n }\n }\n\n componentDidUpdate() {\n const { toast, loading, history } = this.props\n\n const newState = {}\n\n if (toast && this.state.toastDescription !== toast.description)\n Object.assign(newState, {\n toastTitle: toast && toast.title,\n toastDescription: toast && toast.description,\n toastTimeout: toast && toast.timeout,\n })\n\n if (loading !== undefined && loading !== this.state.isLoading)\n Object.assign(newState, { isLoading: loading })\n\n if (history && history.location.pathname !== this.state.pathname)\n Object.assign(newState, { pathname: history.location.pathname, isLoading: false })\n\n if (Object.keys(newState).length > 0)\n this.setState(newState)\n }\n\n render() {\n const { toastTitle, toastDescription, toastTimeout } = this.state\n const {\n whiteBackground,\n className,\n style,\n children,\n redirectTo,\n redirectFrom,\n redirectState,\n loading\n } = this.props\n\n return (\n c).join(' ')}\n style={style}>\n {children}\n {!whiteBackground && <>\n \n \n }\n {redirectTo &&\n }\n {toastDescription &&\n this.props.dismissToast()} />}\n {loading && }\n \n )\n }\n}\n\nfunction mapStateToProps({ toast, loading }) {\n return {\n toast,\n loading\n }\n}\n\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators({\n dismissToast: toastOperations.dismiss\n }, dispatch)\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Page)","import React from 'react'\n\nimport './PageCenterContent.scss'\n\nexport default props =>\n
\n {props.children}\n
\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nimport './Modal.scss'\n\nimport { IconClose } from '../Icons/Icons'\n\nexport default class Modal extends Component {\n\n static propTypes = {\n className: PropTypes.string,\n title: PropTypes.string,\n imgSrc: PropTypes.string,\n children: PropTypes.node,\n shown: PropTypes.bool,\n closeButton: PropTypes.bool,\n declineButton: PropTypes.bool,\n declineButtonAction: PropTypes.func,\n declineButtonText: PropTypes.string,\n confirmButton: PropTypes.bool,\n confirmButtonAction: PropTypes.func,\n onClose: PropTypes.func,\n confirmButtonText: PropTypes.string\n }\n\n constructor(props) {\n super(props)\n\n this.state = {\n shown: props.shown !== undefined ? props.shown : true\n }\n }\n\n get className() {\n return [\n `modal`,\n this.props.className,\n this.state.shown ? 'shown' : 'hidden'\n ].filter(c => c).join(' ')\n }\n\n get backdropClassName() {\n return [\n `modal-backdrop`,\n this.state.shown ? 'shown' : 'hidden'\n ].filter(c => c).join(' ')\n }\n\n close = () => this.setState({ shown: false }, () => this.props.onDismiss && this.props.onDismiss())\n\n handleClose = () => {\n if(this.props.onClose) this.props.onClose();\n this.close();\n }\n \n open = () => this.setState({ shown: true })\n\n renderTitle() {\n const { title } = this.props\n\n if (title)\n return

{title}

\n }\n\n renderImg() {\n const { imgSrc } = this.props\n\n if (imgSrc)\n return (\n <>\n
\n \"Modal\n \n )\n }\n\n renderCloseButton() {\n const { closeButton } = this.props\n\n if (closeButton)\n return (\n \n \n )\n }\n\n renderFooterButtons() {\n const {\n declineButton,\n declineButtonAction,\n declineButtonText,\n confirmButton,\n confirmButtonAction,\n confirmButtonText\n } = this.props\n\n return (\n <>\n {declineButton &&\n declineButtonAction ? declineButtonAction(this) : this.close()}>\n {declineButtonText || 'Desistir'}\n }\n {confirmButton &&\n confirmButtonAction ? confirmButtonAction(this) : this.close()}>\n {confirmButtonText || 'Confirmar'}\n }\n \n )\n }\n\n render() {\n const {\n declineButton,\n confirmButton,\n } = this.props\n\n return <>\n \n
{\n e.preventDefault()\n e.stopPropagation()\n }}>\n {this.renderCloseButton()}\n {this.renderTitle()}\n {this.props.children}\n {this.renderImg()}\n {(declineButton || confirmButton) &&\n
\n {this.renderFooterButtons()}\n
\n }\n
\n \n \n }\n}","/* eslint-disable no-useless-escape */\n\nexport const maskPhoneNumber = (phoneNumber) => {\n if (!phoneNumber) return \"\";\n\n phoneNumber = `${+phoneNumber.replace(/[^\\d]/g, \"\")}`;\n if (phoneNumber.length > 10) {\n return phoneNumber\n .replace(/[^\\d]+/g, \"\")\n .replace(/\\D/g, \"\")\n .replace(/(\\d{2})(\\d)/, \"($1) $2\")\n .replace(/(\\d{5})(\\d)/, \"$1-$2\")\n .replace(/(-\\d{4})\\d+?$/, \"$1\");\n } else {\n return phoneNumber\n .replace(/[^\\d]+/g, \"\")\n .replace(/\\D/g, \"\")\n .replace(/(\\d{2})(\\d)/, \"($1) $2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\")\n .replace(/(-\\d{4})\\d+?$/, \"$1\");\n }\n};\n\nexport const percentualFormat = (value) => {\n if (!value) return \"\";\n\n return (value = `${value\n .replace(/[^\\d]+/g, \"\")\n .replace(/\\D/g, \"\")\n .replace(/(\\d{3})(\\d)/, \"$1,$2\")}%`);\n};\n\nexport const timeFormat = (value) => {\n if (!value) return \"\";\n\n return (value = `${value.replace(/(\\d{2})(\\d)/, \"$1:$2\")}`);\n};\n\nexport const validatePhoneNumber = (phoneNumber) => {\n const haveMoreThanOneNumber = !phoneNumber\n .replace(/[^\\d]/g, \"\")\n .split(\"\")\n .reduce(\n (reduced, value) => {\n if (reduced[0] === null) reduced[0] = value;\n else return [reduced[0], reduced[1] && reduced[0] === value];\n return reduced;\n },\n [null, true]\n )[1];\n\n return (\n (haveMoreThanOneNumber && (\n /^\\((\\d{2})\\) (\\d{4})-(\\d{4})$/g.test(phoneNumber) ||\n /^\\((\\d{2})\\) (\\d{5})-(\\d{4})$/g.test(phoneNumber)))\n );\n};\n\nexport const maskCep = (cep) => {\n return cep\n .replace(/[^\\d]+/g, \"\")\n .replace(/\\D/g, \"\")\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1-$2\")\n .replace(/(-\\d{3})\\d+?$/, \"$1\");\n};\n\nexport const validateCep = (cep) =>\n /^([\\d]{2}).([\\d]{3})-([\\d]{3})$/.test(cep) && cep.length === 10;\n\nexport const validateEmailAddress = (emailAddress) =>\n /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i.test(\n emailAddress\n );\n\nexport const maskCpfCnpj = (value = \"\") => {\n if (value.length <= 14) {\n // Mask for cpf\n return value\n .replace(/\\D/g, \"\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d{1,2})/, \"$1-$2\")\n .replace(/(-\\d{2})\\d+?$/, \"$1\");\n } else {\n // Mask for cnpj\n return value\n .replace(/\\D/g, \"\")\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\")\n .replace(/(-\\d{2})\\d+?$/, \"$1\");\n }\n};\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\nexport const validateCpf = function (cpf) {\n if (\n !cpf ||\n cpf.length != 11 ||\n cpf == \"00000000000\" ||\n cpf == \"11111111111\" ||\n cpf == \"22222222222\" ||\n cpf == \"33333333333\" ||\n cpf == \"44444444444\" ||\n cpf == \"55555555555\" ||\n cpf == \"66666666666\" ||\n cpf == \"77777777777\" ||\n cpf == \"88888888888\" ||\n cpf == \"99999999999\"\n )\n return false;\n var soma = 0;\n var resto;\n for (var i = 1; i <= 9; i++)\n soma = soma + parseInt(cpf.substring(i - 1, i)) * (11 - i);\n resto = (soma * 10) % 11;\n if (resto == 10 || resto == 11) resto = 0;\n if (resto != parseInt(cpf.substring(9, 10))) return false;\n soma = 0;\n for (var i = 1; i <= 10; i++)\n soma = soma + parseInt(cpf.substring(i - 1, i)) * (12 - i);\n resto = (soma * 10) % 11;\n if (resto == 10 || resto == 11) resto = 0;\n if (resto != parseInt(cpf.substring(10, 11))) return false;\n return true;\n};\nexport const validateCnpj = function (cnpj) {\n if (\n !cnpj ||\n cnpj.length != 14 ||\n cnpj == \"00000000000000\" ||\n cnpj == \"11111111111111\" ||\n cnpj == \"22222222222222\" ||\n cnpj == \"33333333333333\" ||\n cnpj == \"44444444444444\" ||\n cnpj == \"55555555555555\" ||\n cnpj == \"66666666666666\" ||\n cnpj == \"77777777777777\" ||\n cnpj == \"88888888888888\" ||\n cnpj == \"99999999999999\"\n )\n return false;\n var tamanho = cnpj.length - 2;\n var numeros = cnpj.substring(0, tamanho);\n var digitos = cnpj.substring(tamanho);\n var soma = 0;\n var pos = tamanho - 7;\n for (var i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--;\n if (pos < 2) pos = 9;\n }\n var resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n if (resultado != digitos.charAt(0)) return false;\n tamanho = tamanho + 1;\n numeros = cnpj.substring(0, tamanho);\n soma = 0;\n pos = tamanho - 7;\n for (var i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--;\n if (pos < 2) pos = 9;\n }\n resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n if (resultado != digitos.charAt(1)) return false;\n return true;\n};\n/* eslint-enable no-redeclare */\n/* eslint-enable eqeqeq */\n\nexport const validateCpfCnpj = (cpfcnpj) => {\n const cleanCpfcnpj = cpfcnpj.replace(/[^\\d]+/g, \"\");\n if (cleanCpfcnpj.length <= 11) {\n return validateCpf(cleanCpfcnpj);\n } else {\n return validateCnpj(cleanCpfcnpj);\n }\n};\n\n/* eslint-enable no-useless-escape */\n\nexport const moneyFormat = (value) =>\n value\n ? `R$ ${parseFloat(value)\n .toFixed(2)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"{thousand}\")\n .replace(\".\", \",\")\n .replace(/{thousand}/g, \".\")}`\n : \"--\";\n\n// export const weightFormat = (value, sufix = null) => `${parseFloat(value || 0).toFixed(3).replace('.', ',')} ${sufix !== null ? sufix : 'kg'}`\nexport const weightFormat = (value, sufix = null) =>\n `${parseFloat(value || 0)\n .toFixed(3)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"{thousand}\")\n .replace(\".\", \",\")\n .replace(/{thousand}/g, \".\")} ${sufix !== null ? sufix : \"kg\"}`;\n\nexport const toTitleCase = (str) => {\n return str.replace(/\\w\\S*/g, function (txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n};\n","import * as types from './types'\nimport { createReducer } from '../../utils'\n\n/* State shape\n false\n*/\n\nconst initialState = false\n\nconst reducer = createReducer(initialState)({\n [types.SHOW]: () => true,\n [types.DISMISS]: () => false,\n})\n\nexport default reducer","import * as types from \"./types\";\n\nexport const show = () => ({\n type: types.SHOW,\n payload: true,\n} )\n\nexport const dismiss = () => ({\n type: types.DISMISS,\n payload: false,\n} )","export const SHOW = 'consigaz_web/loading/SHOW'\nexport const DISMISS = 'consigaz_web/loading/DISMISS'","import reducer from './reducers'\n\nimport * as loadingOperations from './operations'\n\nexport {\n loadingOperations\n}\n\nexport default reducer","import React, { Component } from \"react\";\n\nimport ClienteService from \"../../services/cliente\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\n\nimport apiContext from \"../../api\";\n\nimport Modal from \"../../components/Modal/Modal\";\n\nimport BackgroundImage from \"../../assets/background.jpg\";\nimport { validateCpfCnpj, maskCpfCnpj } from \"../../components/Masks/Masks\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\n\nclass Wellcome extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n haveSubmited: false,\n cpfcnpj: \"\",\n isCpfcnpjValid: false,\n haveOpenedTheApp: null,\n };\n\n if (ClienteService.localEntrega !== undefined) redirect(props, \"/home\");\n }\n\n get existentClientRedirectPath() {\n const { haveOpenedTheApp, cpfcnpj } = this.state;\n\n if (haveOpenedTheApp === null)\n this.setState({\n haveOpenedTheApp: ClienteService.haveJoinedTheApp(cpfcnpj),\n });\n\n ClienteService.setHaveJoinedTheApp(cpfcnpj);\n\n return haveOpenedTheApp ? \"/wellcome-again\" : \"/existent-client\";\n }\n\n handleCpfcnpjChange = (e) => {\n const maskedCpfcnpj = maskCpfCnpj(e.target.value);\n\n this.setState({\n cpfcnpj: maskedCpfcnpj,\n isCpfcnpjValid: validateCpfCnpj(maskedCpfcnpj),\n });\n };\n\n onSubmit = () => {\n const { haveOpenedTheApp } = this.state;\n if (this.state.isCpfcnpjValid) {\n const cleanCpfcnpj = this.state.cpfcnpj.replace(/[^\\d]+/g, \"\");\n\n // if (cleanCpfcnpj == '01597589000209') // CNPJ da consigaz\n // return redirect(this.props, '/admnistrative-login')\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaLocalEntrega(cleanCpfcnpj).then(\n ({ Cliente, Erros }) => {\n this.props.dismissLoading();\n if (\n Cliente &&\n Cliente.ClienteRetorno &&\n Cliente.ClienteRetorno.length\n )\n if (Cliente.ClienteRetorno[0].segmento === \"ADM\")\n redirect(this.props, \"/admnistrative-login\");\n else if (\n [\"CONTASIM\", \"INDUSTRIAL\"].indexOf(\n Cliente.ClienteRetorno[0].segmento\n ) > -1\n ) {\n const { segmento } = Cliente.ClienteRetorno[0];\n redirect(\n this.props,\n segmento === \"INDUSTRIAL\"\n ? \"/wellcome-again\"\n : this.existentClientRedirectPath,\n {\n cliente: Cliente.ClienteRetorno[0],\n haveOpenedTheApp,\n }\n );\n } else {\n // this.props.showToast(\n // \"Em breve!\",\n // \"Estamos preparando uma novidade pra você e em breve ela estará disponível aqui! Você poderá consultar suas faturas e entregas, contratar serviços e muito mais!\",\n // 10000\n // );\n this.openModal();\n }\n },\n () => {\n this.context.CpfApi[\n cleanCpfcnpj.length <= 11 ? \"validateCpf\" : \"validateCnpj\"\n ](cleanCpfcnpj).then(\n ({ nome, situacao, situacaoCadastral, nomeFantasia, nomeEmpresarial }) => {\n this.props.dismissLoading();\n if (situacao || situacaoCadastral) {\n if (\n (situacao?.codigo === \"0\") ||\n (situacaoCadastral?.codigo === \"2\")\n ) {\n ClienteService.newClienteData = {\n cpfcnpj: cleanCpfcnpj,\n };\n redirect(this.props, \"/new-client\", {\n name: nomeFantasia || nomeEmpresarial || nome,\n });\n } else {\n this.props.showToast(\n \"Ops\",\n `Não foi possível cadastrar o cliente, situação do CPF/CNPJ: ${\n (situacao?.descricao) ||\n (situacaoCadastral?.motivo)\n }`\n );\n }\n } else {\n this.props.showToast(\n \"Ops\",\n `Não foi possível identificar a situação do CPF/CNPJ informado.`\n );\n }\n },\n (error) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops\", `CPF/CNPJ não encontrado.`);\n }\n );\n }\n );\n }\n this.setState({\n haveSubmited: true,\n });\n };\n\n openModal = () => this.modalRef && this.modalRef.open();\n\n render() {\n return (\n <>\n \n \n

Olá!

\n

\n Que bom ter você aqui! Vamos começar!
Insira abaixo seu CPF\n ou CNPJ para verificarmos se já possui cadastro em nosso sistema.\n

\n\n
\n
\n\n e.charCode === 13 && this.onSubmit()}\n />\n\n
\n\n \n
\n \n (this.modalRef = ref)}\n className=\"consumption-modal\"\n title=\"Atenção!\"\n closeButton={true}\n >\n
\n

\n Para acessar a plataforma, entre em contato com a central de\n atendimento.\n

\n
\n

\n Entre em contato conosco pelo Whatsapp. Caso não tenha instalado em\n seu smartphone, envie um e-mail que em breve entraremos em contato\n com você!\n

\n
\n \n Whatsapp\n \n
\n \n cac@consigaz.com.br\n \n
\n

Ou pode nos ligar também

\n\n

Telefones da CAC (Central de atendimento ao cliente)

\n\n \n
\n \n
\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(Wellcome);\n","import React, { Component } from 'react'\n\nimport ClienteService from '../../services/cliente'\n\nimport Page, { redirect } from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\nimport { IconInfo } from '../../components/Icons/Icons'\nimport Modal from '../../components/Modal/Modal'\n\nimport BackgroundImage from '../../assets/background.jpg'\nimport ProfileImage from '../../assets/illustrations/client-code.png'\nimport { bindActionCreators } from 'redux'\nimport { toastOperations } from '../../state/ducks/toast'\nimport { connect } from 'react-redux'\n\n\nclass WellcomeAgain extends Component {\n\n constructor(props){\n super(props)\n\n this.state = {\n title: 'Bem vindo novamente!',\n description: 'Felizes em tê-lo como cliente. Digite seu código de cliente para entrar no seu perfil.',\n codCliente: '',\n haveSubmited: false,\n isCodClienteValid: false,\n cliente: undefined\n }\n\n if (props.location && props.location.state) {\n const locationState = props.location.state\n\n if (locationState.from === '/existent-client' || locationState.haveOpenedTheApp === false || locationState.haveOpenedTheApp === null)\n Object.assign(this.state, {\n title: \"Só mais um passo!\",\n description: 'Insira o Código do Cliente de um dos seus imóveis e carregaremos todos os seus registros no aplicativo.',\n cliente: locationState.cliente\n })\n else if (locationState.from === '/wellcome')\n Object.assign(this.state, {\n cliente: locationState.cliente\n })\n else\n redirect(props, '/')\n }\n }\n\n handleAccept = () => {\n redirect(this.props, '/home')\n }\n\n handleSubmit = () => {\n if (this.state.codCliente) {\n if (parseInt(this.state.codCliente) === this.state.cliente['cod-emitente']) {\n const { segmento } = this.state.cliente;\n if (segmento === \"INDUSTRIAL\") {\n redirect(this.props, \"/new-industrial-client\", {industrialClientInfos: this.state});\n } else {\n ClienteService.localEntrega = this.state.cliente\n redirect(this.props, '/address-select')\n }\n } else {\n // The code provided is incorrect\n this.setState({\n haveSubmited: true,\n isCodClienteValid: false\n }, () => this.errorModal && this.errorModal.setState({ shown: true }))\n }\n } else {\n // No code priveded\n this.setState({\n haveSubmited: true,\n isCodClienteValid: false\n }, () => this.props.showToast('Ops', 'Você precisa informar um código de cliente'))\n }\n\n\n\n // if (this.state.codCliente) {\n // const { segmento } = this.state.cliente;\n // if (segmento === \"INDUSTRIAL\"){\n // if (parseInt(this.state.codCliente) === this.state.cliente['cod-emitente']) {\n // redirect(this.props, \"/new-industrial-client\")\n // } else {\n // // The code provided is incorrect\n // this.setState({\n // haveSubmited: true,\n // isCodClienteValid: false\n // }, () => this.errorModal && this.errorModal.setState({ shown: true }))\n // }\n // } else {\n // if (parseInt(this.state.codCliente) === this.state.cliente['cod-emitente']) {\n // ClienteService.localEntrega = this.state.cliente\n // const { segmento } = ClienteService.localEntrega\n // redirect(this.props, '/address-select')\n // } else {\n // // The code provided is incorrect\n // this.setState({\n // haveSubmited: true,\n // isCodClienteValid: false\n // }, () => this.errorModal && this.errorModal.setState({ shown: true }))\n // }\n // }\n // } else {\n // // No code priveded\n // this.setState({\n // haveSubmited: true,\n // isCodClienteValid: false\n // }, () => this.props.showToast('Ops', 'Você precisa informar um código de cliente'))\n // }\n\n\n\n // if (this.state.codCliente) {\n // if (parseInt(this.state.codCliente) === this.state.cliente['cod-emitente']) {\n // ClienteService.localEntrega = this.state.cliente\n // const { segmento } = ClienteService.localEntrega;\n // if (segmento === \"INDUSTRIAL\")\n // redirect(this.props, \"/new-industrial-client\");\n // else\n // redirect(this.props, '/address-select')\n // } else {\n // // The code provided is incorrect\n // this.setState({\n // haveSubmited: true,\n // isCodClienteValid: false\n // }, () => this.errorModal && this.errorModal.setState({ shown: true }))\n // }\n // } else {\n // // No code priveded\n // this.setState({\n // haveSubmited: true,\n // isCodClienteValid: false\n // }, () => this.props.showToast('Ops', 'Você precisa informar um código de cliente'))\n // }\n }\n\n render () {\n return (\n \n \n

{this.state.title}

\n

{this.state.description}

\n\n this.setState({ codCliente: (e.target.value.match(/\\d+/g) || []).join('') })}\n onKeyPress={e => e.charCode === 13 && this.handleSubmit()} />
\n\n this.termsModal && this.termsModal.setState({ shown: true })}>\n onClick={this.handleSubmit}>\n Entrar\n
\n\n this.helpModal && this.helpModal.setState({ shown: true })}>\n \n Encontrar meu código de cliente\n \n
\n\n\n\n this.helpModal = ref}\n title=\"Localize seu código!\"\n shown={false}\n confirmButton={true}\n confirmButtonText=\"OK\"\n imgSrc={ProfileImage}>\n

Seu código de cliente está localizado no canto superior esquerdo do boleto.

\n \n\n this.errorModal = ref}\n title=\"Ops!\"\n shown={false}\n confirmButton={true}\n confirmButtonText=\"OK\"\n imgSrc={ProfileImage}>\n

Você inseriu o código do cliente errado, veja abaixo onde você pode achá-lo.

\n \n\n \n )\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators({\n showToast: toastOperations.show\n }, dispatch)\n}\n\nexport default connect(null, mapDispatchToProps)(WellcomeAgain)","import React from \"react\";\n\nexport default (props) => \"Header\";\n","import React, { Component } from 'react'\n\nimport ClienteService from '../../services/cliente'\n\nimport Page, { redirect } from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\nimport PageHeaderImage from '../../components/PageHeaderImage/PageHeaderImage'\nimport { maskPhoneNumber, validatePhoneNumber, validateEmailAddress } from '../../components/Masks/Masks'\n\nimport ProfileImage from '../../assets/illustrations/profile.png'\n\nexport default class NewClient extends Component {\n\n constructor(props) {\n super(props)\n\n let name = ''\n if (props.location && props.location.state)\n name = props.location.state.name || name\n\n this.state = {\n phoneNumber: '',\n isPhoneNumberValid: false,\n emailAddress: '',\n isEmailAddressValid: false,\n name,\n isNameValid: name !== '',\n }\n }\n\n get shouldLockName() {\n const { location } = this.props\n if (location && location.state)\n return !!location.state.name\n return false\n }\n\n handleNameChange = e => {\n const name = e.target.value\n\n this.setState({\n name,\n isNameValid: name !== ''\n })\n }\n\n handlePhoneNumberChange = e => {\n const phoneNumberMasked = maskPhoneNumber(e.target.value)\n\n this.setState({\n phoneNumber: phoneNumberMasked,\n isPhoneNumberValid: validatePhoneNumber(phoneNumberMasked)\n })\n }\n\n handleEmailAddressChange = e => {\n const emailAddress = e.target.value\n\n this.setState({\n emailAddress: emailAddress,\n isEmailAddressValid: validateEmailAddress(emailAddress)\n })\n }\n\n handleSubmit = () => {\n const { isNameValid, isPhoneNumberValid, isEmailAddressValid } = this.state\n\n if (isNameValid && isPhoneNumberValid && isEmailAddressValid) {\n ClienteService.newClienteData = {\n ...ClienteService.newClienteData,\n name: this.state.name,\n phoneNumber: this.state.phoneNumber,\n emailAddress: this.state.emailAddress ,\n }\n redirect(this.props, '/address-search')\n }\n\n this.setState({\n haveSubmited: true\n })\n }\n\n render() {\n return (\n \n \n \n\n

Ainda não é cliente?
Vamos começar!

\n

Insira nome, celular e email para começar:

\n\n \n\n
\n\n \n\n
\n\n \n\n
\n\n \n Avançar\n \n
\n \n )\n }\n}","import React from \"react\";\n\nimport { IconChevonDown } from \"../Icons/Icons\";\n\nexport default ({\n className,\n onChange,\n options,\n value,\n disabled,\n background,\n style,\n titleSelect,\n}) => (\n <>\n \n \n {options.map((option, idx) => (\n \n ))}\n \n {options && options.length > 1 && (\n \n )}\n \n);\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nimport './TermOfUseModal.scss'\n\nexport default class TermOfUseModal extends Component {\n\n static propTypes = {\n className: PropTypes.string,\n title: PropTypes.string,\n imgSrc: PropTypes.string,\n children: PropTypes.node,\n shown: PropTypes.bool,\n confirmButton: PropTypes.bool,\n confirmButtonAction: PropTypes.func,\n confirmButtonText: PropTypes.string\n }\n\n constructor(props) {\n super(props)\n\n this.state = {\n shown: props.shown !== undefined ? props.shown : true\n }\n }\n\n get className() {\n return [\n `TermOfUseModal`,\n this.props.className,\n this.state.shown ? 'shown' : 'hidden'\n ].filter(c => c).join(' ')\n }\n\n get backdropClassName() {\n return [\n `TermOfUseModal-backdrop`,\n this.state.shown ? 'shown' : 'hidden'\n ].filter(c => c).join(' ')\n }\n\n close = () => this.setState({ shown: false }, () => this.props.onDismiss && this.props.onDismiss())\n\n open = () => this.setState({ shown: true })\n\n renderTitle() {\n const { title } = this.props\n\n if (title)\n return

{title}

\n }\n\n renderImg() {\n const { imgSrc } = this.props\n\n if (imgSrc)\n return (\n <>\n
\n \"Modal\n \n )\n }\n\n renderFooterButtons() {\n const {\n confirmButton,\n confirmButtonAction,\n confirmButtonText\n } = this.props\n\n return (\n <>\n {confirmButton &&\n confirmButtonAction ? confirmButtonAction(this) : this.close()}>\n {confirmButtonText || 'Confirmar'}\n }\n \n )\n }\n\n render() {\n const {\n confirmButton\n } = this.props\n\n return <>\n \n
{\n e.preventDefault()\n e.stopPropagation()\n }}>\n {this.renderTitle()}\n {this.props.children}\n {this.renderImg()}\n {(confirmButton) &&\n
\n {this.renderFooterButtons()}\n
\n }\n
\n \n \n }\n}","import React, { Component } from \"react\";\n\nimport apiContext from \"../../api\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\nimport PageHeaderImage from \"../../components/PageHeaderImage/PageHeaderImage\";\nimport Select from \"../../components/Select/Select\";\nimport {\n maskPhoneNumber,\n validatePhoneNumber,\n maskCpfCnpj,\n validateCpf,\n toTitleCase,\n validateEmailAddress,\n} from \"../../components/Masks/Masks\";\n\nimport ProfileImage from \"../../assets/user.svg\";\nimport TermOfUseModal from \"../../components/TermsOfUseModal/TermOfUseModal\";\nimport ClienteService from \"../../services/cliente\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\n\nclass NewIndustrialClient extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n let name = \"\";\n let department = \"\";\n let phoneNumber = \"\";\n let emailAddress = \"\";\n if (props.location && props.location.state)\n name = props.location.state.name || name;\n\n const lastAccess = ClienteService.industrialContato;\n if (lastAccess) {\n name = lastAccess.name;\n department = lastAccess.department;\n phoneNumber = lastAccess.phoneNumber;\n emailAddress = lastAccess.emailAddress;\n }\n\n this.state = {\n phoneNumber,\n emailAddress,\n isEmailAddressValid: validateEmailAddress(emailAddress),\n isPhoneNumberValid: validatePhoneNumber(phoneNumber),\n name,\n isNameValid: name ? true : false,\n department,\n contactTypes: null,\n contactTypesLoaded: false,\n };\n }\n\n componentDidMount() {\n this.context.ConsigazApi.tiposContato().then(\n ({ Retorno }) => {\n if (Retorno && Retorno.length) {\n const contactTypes = Retorno[0].descricao.split(\",\");\n this.setState({\n contactTypesLoaded: true,\n contactTypes,\n department:\n contactTypes && contactTypes.length > 0 && contactTypes[0],\n isDepartmentValid: contactTypes && contactTypes.length > 0,\n });\n } else\n this.props.showToast(\"Ops\", \"Não foram encontrados tipos de contato\");\n },\n (error) => {\n this.setState({\n ...this.state,\n contactTypesLoaded: false,\n })\n this.props.showToast(\"Ops\", \"Erro ao buscar os tipos de contato\");\n }\n );\n }\n\n handleNameChange = (e) => {\n const name = e.target.value;\n\n this.setState({\n name,\n isNameValid: name !== \"\",\n });\n };\n\n handleCpfChange = (e) => {\n const cpf = e.target.value.replace(/[^\\d]+/g, \"\");\n\n this.setState({\n cpf: cpf,\n isCpfValid: validateCpf(cpf),\n });\n };\n\n handleDepartmentChange = (e) => {\n const department = e.target.value;\n\n this.setState({\n department: department,\n isDepartmentValid: department !== \"\",\n });\n };\n\n handlePhoneNumberChange = (e) => {\n const phoneNumberMasked = maskPhoneNumber(e.target.value);\n\n this.setState({\n phoneNumber: phoneNumberMasked,\n isPhoneNumberValid: validatePhoneNumber(phoneNumberMasked),\n });\n };\n\n handleEmailAddressChange = (e) => {\n const emailAddress = e.target.value;\n\n this.setState({\n emailAddress,\n isEmailAddressValid: validateEmailAddress(emailAddress),\n });\n };\n\n handleSubmit = () => {\n const { name, cpf, department, phoneNumber, emailAddress } = this.state;\n\n const isNameValid = name ? true : false;\n const isCpfValid = validateCpf(cpf);\n const isDepartmentValid = department ? true : false;\n const isPhoneNumberValid = validatePhoneNumber(phoneNumber);\n\n if (isNameValid && isCpfValid && isDepartmentValid && isPhoneNumberValid && emailAddress) {\n const { industrialClientInfos } = this.props.location.state;\n ClienteService.localEntrega = industrialClientInfos.cliente;\n const { [`cod-emitente`]: codEmitente } =\n ClienteService.localEntrega || {};\n\n this.context.ConsigazApi.verificaAceiteTermo(codEmitente, cpf).then(\n ({ Retorno }) => {\n if (Retorno && Retorno.length) {\n if (Retorno[0].situacao === \"OK\") {\n this.handleManutencaoContato();\n } else {\n this.termsModal && this.termsModal.open();\n }\n }\n }\n );\n }\n\n this.setState({\n haveSubmited: true,\n isNameValid,\n isCpfValid,\n isDepartmentValid,\n isPhoneNumberValid,\n });\n };\n\n handleAcceptedTerms = () => {\n const { cpf } = this.state;\n\n const { [`cod-emitente`]: codEmitente } = ClienteService.localEntrega || {};\n\n this.context.ConsigazApi.aceiteTermo(codEmitente, cpf).then(\n () => {\n this.handleManutencaoContato();\n },\n (error) => this.props.showToast(\"Ops\", error)\n );\n };\n\n handleManutencaoContato() {\n const { cpf, name, phoneNumber, department, emailAddress } = this.state;\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n\n const saveData = (sequencia = undefined) => {\n this.context.ConsigazApi.manutencaoContatos(\n CPFCNPJ,\n cpf,\n name,\n phoneNumber,\n emailAddress,\n sequencia,\n department\n ).then(\n ({ ClienteRetorno }) => {\n if (ClienteRetorno && ClienteRetorno.length) {\n this.saveDataToStorage(ClienteRetorno[0].sequencia || sequencia);\n redirect(this.props, \"/address-select\");\n } else {\n this.props.showToast(\n \"Ops\",\n \"Não foi possível atualizar os dados de contato.\"\n );\n }\n },\n (error) => this.props.showToast(\"Ops\", error)\n );\n };\n\n this.context.ConsigazApi.consultaContatos(CPFCNPJ).then(\n ({ Cliente }) => {\n if (Cliente && Cliente.ClienteRetorno && Cliente.ClienteRetorno.length)\n if (Cliente.ClienteRetorno[0].ClienteContatoRetorno) {\n const contatos = Cliente.ClienteRetorno[0].ClienteContatoRetorno;\n\n const filtered = contatos.filter((c) => c[\"cpf-contato\"] === cpf);\n\n if (filtered.length) {\n saveData(filtered[0].sequencia);\n return;\n }\n }\n saveData();\n },\n (error) => this.props.showToast(\"Ops\", error)\n );\n }\n\n saveDataToStorage = (sequencia) => {\n const { name, cpf, phoneNumber, department, emailAddress } = this.state;\n\n ClienteService.industrialContato = {\n sequencia,\n name,\n cpf,\n phoneNumber,\n department,\n email: emailAddress,\n };\n };\n\n render() {\n const {\n contactTypes,\n haveSubmited,\n name,\n isNameValid,\n cpf,\n isCpfValid,\n department,\n phoneNumber,\n isPhoneNumberValid,\n emailAddress,\n isEmailAddressValid,\n } = this.state;\n return (\n \n \n \n\n

Identifique-se!

\n

\n Identifique-se abaixo.\n
Tenha em mente que esses serão os dados utilizados na\n contratação\n
de novos serviços e solicitações de abastecimento para esse\n endereço.\n
O preenchimento de todos os campos é obrigatório.\n

\n\n {!this.state.contactTypesLoaded &&

Aguarde, carregando...

}\n \n \n\n
\n\n \n\n
\n\n ({\n title: toTitleCase(contactType),\n value: contactType,\n }))}\n placeholder=\"Departamento\"\n value={department}\n onChange={this.handleDepartmentChange}\n style={{ 'text-align-last': 'center' }}\n disabled={!this.state.contactTypesLoaded}\n />\n\n
\n\n \n\n
\n\n \n\n
\n\n \n Salvar\n \n
\n (this.termsModal = ref)}\n title=\"Termos de Uso\"\n shown={false}\n confirmButton={true}\n confirmButtonText=\"Aceitar\"\n confirmButtonAction={this.handleAcceptedTerms}\n >\n \n \n
\n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(NewIndustrialClient);\n","import React, { Component } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport Page from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\nimport PageHeaderImage from '../../components/PageHeaderImage/PageHeaderImage'\n\nimport BuildingImage from '../../assets/illustrations/building.png'\n\nimport './ExistentClient.scss'\nimport ClienteService from '../../services/cliente'\nexport default class ExistentClient extends Component {\n\n getRedirectState() {\n if (this.props.location && this.props.location.state) {\n const locationState = this.props.location.state\n\n locationState.from = undefined\n\n return locationState\n }\n }\n\n setCurrentClient = () => {\n if (this.props.location && this.props.location.state) {\n const { cliente } = this.props.location.state || {}\n\n if (cliente) {\n ClienteService.localEntrega = cliente\n }\n }\n }\n\n render () {\n return (\n \n \n \n\n

Você já é cadastrado!

\n

Encontramos pelo menos um imóvel vinculado ao seu CPF/CNPJ. Se quiser, você pode carregar os registros dos seus imóveis no aplicativo e já começar a usar.

\n\n \n Carregar registros dos meus endereços\n \n\n
\n\n

Ou, se preferir, você pode cadastrar um novo imóvel no seu CPF/CNPJ.

\n\n Cadastrar um novo imóvel
\n
\n \n )\n }\n}","import React from \"react\";\nimport { IconLocation, IconForwardArrow } from \"../Icons/Icons\";\n\nexport const SearchOption = (props) => (\n props.onClick(props.value)}\n style={{\n display: \"grid\",\n gridTemplateRows: \"50px\",\n gridTemplateColumns: \"50px 250px 50px\",\n padding: \".3rem 0\",\n borderTop: \"1px solid lightgrey\",\n cursor: \"pointer\"\n }}\n >\n
\n {props.leftIcon ? (\n \n ) : (\n \n )}\n
\n
\n \n {props.title}\n

\n \n {props.description}\n

\n
\n
\n {props.showRightIcon && (\n \n )}\n
\n \n);\n\nexport const SearchOptions = (props) => (\n \n {(props.options || []).map((opt, idx) => (\n \n ))}\n {props.showEmptyMessage &&\n

Não foram encontrados resultados

}\n \n);\n","import React, { Component } from \"react\";\n\nimport CondominioService from \"../../services/condominio\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\nimport PageHeaderImage from \"../../components/PageHeaderImage/PageHeaderImage\";\nimport Modal from \"../../components/Modal/Modal\";\nimport { maskCep, validateCep } from \"../../components/Masks/Masks\";\n\nimport apiContext from \"../../api\";\n\nimport LocationImage from \"../../assets/illustrations/location.png\";\nimport AddressNotFoundImage from \"../../assets/illustrations/address-not-found.png\";\n\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport { SearchOptions } from \"../../components/SearchOptions/SearchOptions\";\n\nclass AddressSearch extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n errorMessage: null,\n };\n this.debouncedSearch = this.debounce(this.search, 600);\n const locationState = props.location && props.location.state;\n if (locationState) {\n if (locationState.errorMessage)\n Object.assign(this.state, { errorMessage: locationState.errorMessage });\n\n if (locationState.from)\n sessionStorage.setItem(\"address_flow_origin\", locationState.from);\n else sessionStorage.removeItem(\"address_flow_origin\");\n } else {\n sessionStorage.removeItem(\"address_flow_origin\");\n }\n }\n\n debounce = (func, delay) => {\n let timerId;\n return function () {\n clearTimeout(timerId);\n timerId = setTimeout(() => {\n func.apply(this, arguments);\n }, delay);\n };\n };\n\n handleInputChange = (event) => {\n const { value } = event.target;\n this.setState({ cep: maskCep(value) });\n this.debouncedSearch(value);\n };\n\n handleSelectHelp = () => {\n redirect(this.props, \"/help\");\n };\n\n handlePlaceSelect = (value) => {\n CondominioService.inRegistration = value;\n redirect(this.props, \"/address-complement\", { condominioData: value });\n };\n\n search = (cep) => {\n if(!cep) return;\n cep = cep.replace(/\\D/g, \"\");\n if (cep.length !== 8) return;\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaCondominios(\n cep.replace(/\\.|\\-/g, \"\")\n )\n .then(({ Retorno }) => {\n if (Retorno.Condominio) {\n this.props.dismissLoading();\n this.setState({\n searchResults: Retorno.Condominio.map((cond) => ({\n title: cond.nome,\n description: `${cond.endereco} - ${cond.cidade}`,\n value: cond,\n onClick: this.handlePlaceSelect,\n })),\n });\n } else {\n this.props.dismissLoading();\n this.addressNotFoundModal &&\n this.addressNotFoundModal.open()\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState({ cep: \"false\" }, () => {\n this.props.showToast(\"Ops!\", errorDescription);\n this.addressNotFoundModal && this.addressNotFoundModal.open();\n });\n })\n };\n\n render() {\n return (\n \n \n \n\n

Vamos encontrar seu imóvel/estabelecimento?

\n

Busque com o CEP.

\n\n
\n
\n\n \n
\n \n
\n (this.errorModal = ref)}\n shown={false}\n title={\"Atenção\"}\n confirmButton={true}\n confirmButtonText={\"OK\"}\n >\n {this.state.errorMessage}\n \n (this.addressNotFoundModal = ref)}\n title=\"Ops, nada encontrado!\"\n shown={false}\n imgSrc={AddressNotFoundImage}\n declineButton={true}\n declineButtonText={\"Preciso de ajuda\"}\n declineButtonAction={this.handleSelectHelp}\n confirmButton={true}\n confirmButtonText={\"OK\"}\n >\n Nenhum resultado foi encontrado com este CEP. Tente pesquisar por\n outro?\n \n
\n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(AddressSearch);\n","import React from \"react\";\n\nimport \"./ServiceItem.scss\";\n\nimport { IconClose } from \"../Icons/Icons\";\n\nexport default (props) => (\n \n {props.endereco && (\n \n {props.endereco}\n

\n )}\n {props.title && (\n \n {props.title}\n

\n )}\n {props.children}\n {props.iconClose && (\n \n )}\n \n);\n","import React from 'react'\nimport Switch from 'react-switch'\n\nimport './Switch.scss'\n\nexport default props => (\n \n)","import React from \"react\";\n\nimport { Select, MenuItem } from \"@material-ui/core\";\n\nconst Select2 = ({ options, label, onSelect }) => {\n return (\n \n {label}\n option.title}\n style={{ width: 200 }}\n onChange={(ev) => onSelect(ev.target.value)}\n noOptionsText=\"Opção não encontrada\"\n >\n {options.map((option, idx) => (\n \n {option.title}\n \n ))}\n \n \n );\n};\n\nexport default Select2;\n","import React, { Component } from \"react\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\nimport ServiceItem from \"../../components/ServiceItem/ServiceItem\";\nimport PageHeaderImage from \"../../components/PageHeaderImage/PageHeaderImage\";\nimport Switch from \"../../components/Switch/Switch\";\n\nimport BuildingImage from \"../../assets/illustrations/building.png\";\nimport apiContext from \"../../api\";\n\nimport CondominioService from \"../../services/condominio\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport Modal from \"../../components/Modal/Modal\";\nimport Select2 from \"../../components/Select2/Select\";\n\nconst getTypeValidator = (type) =>\n ({\n INTEGER: /\\d+/g,\n CHARACTER: null,\n }[type]);\n\nclass AddressComplement extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n condominioData: {},\n fields: [],\n termsAcknowledged: false,\n haveSubmited: false,\n addressValues: {}\n };\n\n Object.assign(this.state, this.mapLocationToState(props.location));\n\n if (\n this.state.condominioData &&\n Object.keys(this.state.condominioData).length === 0 &&\n this.state.addressOnReactivation &&\n Object.keys(this.state.addressOnReactivation).length === 0\n )\n redirect(props, this.redirectPath);\n }\n\n get redirectPath() {\n const { condominioData, addressOnReactivation } = this.state;\n const { location } = this.props;\n\n if (Object.keys(condominioData || {}).length > 0) return \"/address-search\";\n else if (Object.keys(addressOnReactivation || {}).length > 0)\n return \"/address-list\";\n else return (location.state && location.state.from) || \"/home\";\n }\n\n mapLocationToState(location) {\n if (location && location.state)\n if (location.state.condominioData)\n return {\n condominioData: location.state.condominioData,\n ...this.getDataFields(location.state.condominioData),\n };\n else if (location.state.addressOnReactivation) {\n const addressOnReactivation = location.state.addressOnReactivation;\n return {\n addressOnReactivation: addressOnReactivation,\n [`local-entrega`]: addressOnReactivation[\"cod-entrega-cond\"],\n ...this.getDataFromReactivation(addressOnReactivation),\n };\n }\n }\n\n getDataFields(condominio) {\n let fields = [];\n\n if (condominio[\"tt-tipo-inst\"]) {\n fields = condominio[\"tt-tipo-inst\"][0][\"tt-item-tipo-inst\"].map(\n (item) => ({\n maxLength: item.formato.length,\n description: item.descricao,\n codTipo: item[\"cod-tipo-complemento\"],\n validator: getTypeValidator(item[\"tipo-dado\"]),\n tipoDado: item[\"tipo-dado\"],\n })\n );\n }\n return {\n addressTitle: condominio.nome,\n addressDescription: `${condominio.endereco}, ${condominio.cidade}`,\n fields,\n };\n }\n\n getDataFromReactivation(addressOnReactivation) {\n if (addressOnReactivation)\n return {\n addressTitle: addressOnReactivation[\"nome-condominio\"],\n addressDescription: `${addressOnReactivation.endereco}, ${addressOnReactivation.cidade}`,\n };\n\n return {};\n }\n\n handleConsultaOcupacaoIsEmpty = (data) =>\n !(\n data.Erros &&\n data.Erros.length &&\n data.Erros[0].Descricao === \"Localizacao ocupada\"\n );\n\n getApiLocationInfo = (join = true, pad = false) => {\n const { fields, addressOnReactivation } = this.state;\n if (join) {\n if (addressOnReactivation) return addressOnReactivation.localizacao;\n else\n return (fields || [])\n .map(\n (field) => `${field.codTipo}${this.getFieldValue(field, \"\", pad)}`\n )\n .join(\" \");\n } else {\n if (addressOnReactivation) return addressOnReactivation.conteudo;\n else\n return (fields || []).map((field) =>\n this.getFieldValue(field, \"\", pad)\n );\n }\n };\n\n getLocationLabel = () => {\n const { fields, addressOnReactivation } = this.state;\n\n if (addressOnReactivation) return addressOnReactivation.localizacao;\n else\n return (fields || [])\n .map(\n (field) =>\n `${field.description} ${this.getFieldValue(field, \"\", \"pad\")}`\n )\n .join(\" - \");\n };\n\n handleSubmit = () => {\n if (this.state.termsAcknowledged && this.validateFields()) {\n const { condominioData, addressOnReactivation } = this.state;\n const localizacao = this.getApiLocationInfo(true, true);\n\n CondominioService.inRegistration = {\n ...(addressOnReactivation || {}),\n // 'cod-entrega-cond': addressOnReactivation && addressOnReactivation['cod-entrega-cond'],\n codigo:\n addressOnReactivation && addressOnReactivation[\"cod-condominio\"],\n ...(condominioData || {}),\n localizacao,\n conteudo: this.getApiLocationInfo(false, true),\n localizacaoLabel: this.getLocationLabel(),\n isReactivation: Object.keys(addressOnReactivation || {}).length > 0,\n };\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaOcupacao(\n addressOnReactivation\n ? addressOnReactivation[\"cod-condominio\"]\n : condominioData.codigo,\n addressOnReactivation\n ? addressOnReactivation[\"cod-entrega-cond\"]\n : condominioData[\"cod-entrega-cond\"],\n localizacao\n )\n .then(this.handleConsultaOcupacaoIsEmpty)\n .then((isEmpty) => {\n this.props.dismissLoading();\n if (isEmpty)\n redirect(this.props, \"/address-done\", { isAddressEmpty: true });\n else redirect(this.props, \"/address-active\");\n })\n .catch((err) => {\n this.props.dismissLoading();\n redirect(this.props, \"/address-active\");\n });\n } else {\n this.setState({ haveSubmited: true }, () => {\n if (!this.state.termsAcknowledged)\n this.props.showToast(\n \"Ops!\",\n \"Para continuar você precisa aceitar os termos\"\n );\n });\n }\n };\n\n handleInputChange = (field, value) => { \n if (field.validator) {\n value = (value.match(field.validator) || []).join(\"\");\n } else if(value?.length > 0 && value?.toLowerCase()?.includes(\"selecione\")) {\n value = null;\n }\n \n this.setState({\n [field.description.toLowerCase()]: value,\n });\n };\n\n getFieldValue = (field, defaultValue, pad = false) => {\n let value = this.state[field.description.toLowerCase()];\n\n if (pad && field.tipoDado === \"INTEGER\") {\n value = value ? `${value}`.padStart(field.maxLength, \"0\") : value;\n }\n\n return value || defaultValue;\n };\n\n validateFields = () =>\n this.state.fields.reduce((reduced, field) => {\n return reduced && this.getFieldValue(field, \"\").length > 0;\n }, true);\n\n componentDidMount() {\n const options = this.state.condominioData;\n\n let locations = {};\n\n const arr1 = options.Unidades?.forEach((unidade) => {\n const arr2 = unidade.descricao?.map((item) => {\n if(item?.length > 0) {\n const index = unidade.descricao.indexOf(item)\n const obj = { title: unidade.conteudo[index], value: unidade.conteudo[index] }\n\n if(locations[item]) {\n locations[item].push(obj)\n } else {\n locations[item] = [obj]\n }\n }\n });\n });\n\n const noRepeatValues = {}\n\n Object.keys(locations).forEach(key => {\n noRepeatValues[key] = Array.from(new Set(locations[key].map(obj => JSON.stringify(obj))))\n .map(str => JSON.parse(str));\n });\n\n this.setState({\n ...this.state,\n fields: this.state.fields.map((field) => {\n return {\n ...field,\n values: noRepeatValues[field.description]\n }\n })\n });\n }\n\n open = () => this.modalRef && this.modalRef.open();\n close = () => this.modalRef && this.modalRef.close();\n\n isToggle = () => {\n this.open();\n };\n\n render() {\n const { addressOnReactivation } = this.state;\n\n return (\n \n \n \n\n

Este é o seu imóvel:

\n\n redirect(this.props, this.redirectPath)}\n >\n {this.state.addressDescription}\n \n\n {this.state.fields.length > 0 && this.state?.fields[0]?.values && (\n <>\n

Informe o complemento

\n
\n {this.state.fields.map((field) => (\n <>\n this.handleInputChange(field, value)}\n />\n \n ))}\n
\n \n )}\n\n
\n\n
\n \n this.setState({\n termsAcknowledged: !this.state.termsAcknowledged,\n })\n }\n />\n \n Li e concordo com os{\" \"}\n \n Termos de uso\n \n .\n \n
\n (this.modalRef = ref)}\n className=\"consumption-modal\"\n title=\"Confirmação de dados\"\n closeButton={true}\n >\n
\n

Os dados cadastrados estão certos?

\n\n \n \n Não\n \n \n Sim\n \n \n \n\n \n
\n
\n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(AddressComplement);\n","import React, { Component } from 'react'\n\nimport Page, { redirect } from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\nimport Modal from '../../components/Modal/Modal'\nimport PageHeaderImage from '../../components/PageHeaderImage/PageHeaderImage'\n\nimport BuildingWarningImage from '../../assets/illustrations/building-warning.png'\nimport WarningImage from '../../assets/illustrations/warning.png'\n\nexport default class AddressActive extends Component {\n\n constructor(props) {\n super(props)\n\n this.state = {\n redirectState: {},\n haveSubmited: false,\n contentVariationKey: 'default'\n }\n }\n\n getContentVariation = key => ({\n default: {\n title: 'Cadastro ativo no imóvel',\n description: 'Notamos que já tem um cadastro vinculado ao imóvel, deseja fazer a substituição da titularidade?',\n confirmButtonText: 'Quero substituir',\n confirmButtonAction: () => this.confirmModal && this.confirmModal.setState({ shown: true }),\n declineButtonText: 'Não quero substituir',\n declineButtonAction: () => this.setState({ contentVariationKey: 'advice' }),\n },\n advice: {\n title: 'Tem certeza?',\n description: 'Para vincular este imóvel à sua conta, será necessário substituir o cadastro atualmente ativo.',\n confirmButtonText: 'Ok, realizar substituição',\n confirmButtonAction: () => this.confirmModal && this.confirmModal.open(),\n declineButtonText: 'Desistir do cadastramento',\n declineButtonAction: () => redirect(this.props, '/'),\n }\n })[key || 'default']\n\n render() {\n const content = this.getContentVariation(this.state.contentVariationKey)\n\n return (\n \n \n \n\n

{content.title}

\n\n

{content.description}

\n\n
\n \n
\n this.confirmModal = ref}\n title=\"Atenção\"\n shown={false}\n imgSrc={WarningImage}\n declineButton={true}\n declineButtonText=\"Desistir\"\n declineButtonAction={() => {\n this.setState({ contentVariationKey: 'advice' })\n this.confirmModal.close()\n }}\n confirmButton={true}\n confirmButtonText=\"Confirmar\"\n confirmButtonAction={() => redirect(this.props, '/address-done', { shouldOverwrite: true })}\n >\n

O cadastro atualmente ativo deste imóvel será substituido pelo seu novo cadastro.

\n \n \n )\n }\n}","import React, { Component } from \"react\";\n\nimport ClienteService from \"../../services/cliente\";\nimport CondominioService from \"../../services/condominio\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\nimport ServiceItem from \"../../components/ServiceItem/ServiceItem\";\nimport PageHeaderImage from \"../../components/PageHeaderImage/PageHeaderImage\";\n\nimport BuildingImage from \"../../assets/illustrations/building.png\";\nimport apiContext from \"../../api\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\n\nclass AddressDone extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n addressComponents: {},\n clientCode: null,\n requestSuccess: null,\n isExistentClient: (ClienteService.localEntrega || null) !== null,\n };\n\n if (props.location && props.location.state) {\n if (\n !(\n props.location.state.shouldOverwrite ||\n props.location.state.isAddressEmpty\n )\n )\n // prevent direct access to the page\n redirect(props, \"/\");\n }\n }\n\n componentDidMount() {\n if (\n !(ClienteService.newClienteData || ClienteService.localEntrega) ||\n !CondominioService.inRegistration\n ) {\n this.props.showToast(\n \"Ops!\",\n \"Dados insuficientes para continuar o cadastro\"\n );\n return;\n }\n\n let cpfcnpj, nome, telefone, email;\n\n const newClienteData = ClienteService.newClienteData;\n const localEntregaCliente = ClienteService.localEntrega;\n if (localEntregaCliente) {\n cpfcnpj = localEntregaCliente.CPFCNPJ;\n nome = localEntregaCliente[\"nome-emit\"];\n telefone = localEntregaCliente.telefone;\n email = localEntregaCliente.email;\n } else if (newClienteData) {\n cpfcnpj = newClienteData.cpfcnpj;\n nome = newClienteData.name;\n telefone = newClienteData.phoneNumber;\n email = newClienteData.emailAddress;\n }\n\n const {\n [`cod-entrega`]: codEntrega,\n [`cod-entrega-cond`]: codEntregaCond,\n [`local-entrega`]: localEntrega,\n codigo,\n localizacao,\n conteudo,\n endereco,\n [`tt-tipo-inst`]: ttTipoInst,\n } = CondominioService.inRegistration;\n\n this.props.showLoading();\n this.context.ConsigazApi.cadastraCondominio(\n cpfcnpj,\n nome,\n telefone,\n email,\n localizacao,\n codigo,\n codEntrega || localEntrega,\n codEntregaCond,\n (ttTipoInst && ttTipoInst.length && ttTipoInst[0][\"nr-sequencia\"]) || 0,\n [\n conteudo[0] || \"\",\n conteudo[1] || \"\",\n conteudo[2] || \"\",\n conteudo[3] || \"\",\n conteudo[4] || \"\",\n conteudo[5] || \"\",\n conteudo[6] || \"\",\n conteudo[7] || \"\",\n conteudo[8] || \"\",\n conteudo[9] || \"\",\n ]\n )\n .then(({ Sucesso, Retorno }) => {\n if (Sucesso) {\n this.context.ConsigazApi.consultaLocalEntrega(cpfcnpj).then(\n data => {\n ClienteService.consultaLocalEntregaApiParser(data)\n\n try {\n // eslint-disable-next-line\n const selected = data.Cliente.ClienteRetorno[0].ClienteEntrRetorno.filter(cond => cond.endereco == endereco)[0]\n CondominioService.selected = selected\n } catch (error) {\n console.warn(error)\n }\n }\n );\n\n this.props.dismissLoading();\n this.setState({\n requestSuccess: Sucesso !== undefined,\n clientCode: Sucesso && Sucesso[0].codigo,\n });\n } else if (Retorno) {\n this.props.dismissLoading();\n this.setState(\n {\n requestSuccess: false,\n },\n () => {\n if (Retorno[0].Descricao === \"Condominio nao esta ativo em nosso sistema\")\n this.props.showToast(\n \"Ops!\",\n \"Este condomínio não é mais cliente da Consigaz. Entre em contato com o síndico do condomínio para verificar o atual fornecedor.\"\n );\n else this.props.showToast(\"Ops!\", JSON.stringify(Retorno[0].Descricao));\n }\n );\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState(\n {\n requestSuccess: false,\n },\n () => this.props.showToast(\"Ops!\", JSON.stringify(errorDescription))\n );\n });\n }\n\n encontrarUltimoLocalDeEntregaCriado(locais) {\n let maiorEntrega = '';\n let maiorNumero = -1;\n\n locais.forEach(local => {\n // Extrai o número do local\n const numero = parseInt(local.replace(/\\D/g, ''), 10);\n \n // Verifica se o número extraído é maior que o atual maior número\n if (numero > maiorNumero) {\n maiorNumero = numero;\n maiorEntrega = local;\n }\n });\n\n return maiorEntrega;\n}\n\n generateOrder = () => {\n this.setState({ ...this.state, redirectTo: '/save-time' })\n const { CPFCNPJ, email, ClienteEntrRetorno } = ClienteService.localEntrega;\n\n let localEntrega;\n\n if(ClienteEntrRetorno?.length === 1) {\n localEntrega = ClienteEntrRetorno[0]['local-entrega'] \n } else {\n const locais = ClienteEntrRetorno.map((item) => item['local-entrega'])\n localEntrega = this.encontrarUltimoLocalDeEntregaCriado(locais)\n }\n\n this.props.showLoading();\n\n this.context.ConsigazApi.geraOcorrencia(\n \"\",\n \"Religue\",\n 0,\n 0,\n 0,\n CPFCNPJ,\n localEntrega,\n { email }\n ).then(\n ({ Ocorrencia }) => {\n this.props.dismissLoading();\n if (Ocorrencia) {\n redirect(this.props, \"/religue-protocol\", { protocolNumber: Ocorrencia[0]['v-nr-ocorrencia'] })\n }\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n };\n\n render() {\n const { isExistentClient } = this.state;\n\n let addressTitle, addressDescription, addressComplement;\n\n const condominio = CondominioService.inRegistration;\n\n if (condominio) {\n addressTitle = condominio.nome;\n addressDescription = `${condominio.endereco}, ${condominio.cidade}`;\n addressComplement = condominio.localizacaoLabel || condominio.localizacao;\n }\n\n return (\n \n \n \n\n
\n
\n\n {this.state.requestSuccess === false && (\n <>\n

Erro ao realizar o cadastro

\n redirect(this.props, \"/home\")}\n >\n Voltar\n \n \n )}\n\n {this.state.requestSuccess === true && (\n <>\n

Parabéns, cadastro feito!

\n\n

O imóvel abaixo foi vinculado ao seu CPF/CNPJ.

\n\n \n {addressDescription && (\n

{addressDescription || \"\"}

\n )}\n {addressComplement && (\n

{addressComplement || \"\"}

\n )}\n
\n\n
\n
\n\n {isExistentClient ? (\n

Seu código de cliente permanece:

\n ) : (\n

\n Anote o código de cliente, você irá utiliza-lo na próxima vez\n que acessar a plataforma.\n

\n )}\n\n \n {this.state.clientCode}\n

\n\n\n
\n

Deseja solicitar o religue do gás?

\n
\n this.generateOrder()}\n >\n Solicitar\n \n redirect(this.props, '/save-time')}\n >\n Não\n \n
\n
\n \n )}\n
\n
\n );\n }\n}\n\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(AddressDone);\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport \"./NavigationBar.scss\";\n\nexport default class NavigationBar extends Component {\n static propTypes = {\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequred,\n onClick: PropTypes.func,\n value: PropTypes.any,\n })\n ).isRequired,\n activeTab: PropTypes.number,\n activeStyle: PropTypes.oneOf([\"undermark\", \"fill\"]),\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n activeTab: props.activeTab,\n };\n }\n\n getTabClassName(idx) {\n const { activeTab } = this.state;\n const { tabs, activeStyle, defineActive } = this.props;\n\n if (defineActive)\n return `${\n tabs[idx].active ? `active-${activeStyle || \"undermark\"}` : \"\"\n }`;\n else\n return `${\n idx === activeTab ? `active-${activeStyle || \"undermark\"}` : \"\"\n }`;\n }\n\n handleTabClick(e, tab, idx) {\n this.setState(\n { activeTab: idx },\n () => tab.onClick && tab.onClick(tab.value)\n );\n }\n\n renderTabs() {\n const { tabs } = this.props;\n\n if (tabs)\n return tabs.map((tab, idx) => !!tab.label && (\n this.handleTabClick(e, tab, idx))}\n >\n \n {tab.icon && }\n {tab.label && {tab.label}}\n \n \n ));\n }\n\n render() {\n const { style } = this.props;\n return (\n
\n {this.renderTabs()}\n
\n );\n }\n}\n","import React from 'react'\nimport { CSSTransition } from 'react-transition-group'\n\nimport './Sidebar.scss'\n\nexport default props => (\n \n
\n
    \n {props.options.map((opt, idx) =>\n
  • \n \n {opt.label}\n \n
  • \n )}\n
\n
\n \n)","import React, { Component } from \"react\";\n\nimport \"./HomeTemplate.scss\";\n\nimport apiContext from \"../../api\";\n\nimport ClienteService from \"../../services/cliente\";\nimport CondominioService from \"../../services/condominio\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport NavigationBar from \"../../components/NavigationBar/NavigationBar\";\nimport Select from \"../../components/Select/Select\";\nimport Sidebar from \"../../components/Sidebar/Sidebar\";\nimport {\n IconClose,\n IconMenu,\n IconAdmin,\n IconHomeSign,\n IconDollar,\n IconHomeOutline,\n IconDelivery,\n} from \"../../components/Icons/Icons\";\n\nimport HomeHeaderImage from \"../../assets/home-header.svg\";\nimport UserImage from \"../../assets/user.svg\";\n\nexport { redirect } from \"../../components/Page/Page\";\n\nclass HomeTemplate extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n sidebarIn: false,\n redirectState: null,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n activeTab: props.activeTab,\n };\n if (!ClienteService.isLoggedIn) redirect(this.props, \"/\");\n }\n\n static contextType = apiContext;\n\n getAddressKey = (addr) =>\n `${addr[\"cod-condominio\"]}-${addr[\"local-entrega\"]}`;\n\n componentDidMount() {\n if (!ClienteService.isLoggedIn) redirect(this.props, \"/\");\n }\n\n renderAdmLogin() {\n const { isAdmLogin } = ClienteService.localEntrega || {};\n if (isAdmLogin) return ⬤ Login de suporte;\n }\n\n handleAddressChange = (e) => {\n const { ClienteEntrRetorno: addressList } =\n ClienteService.localEntrega || {};\n const cod = e.target.value;\n\n if (cod === \"all\") {\n CondominioService.selectAll = true;\n this.context.ConsigazApi.clearMemoize();\n window.location.reload();\n } else {\n const filter = addressList.filter(\n (addr) => this.getAddressKey(addr) === cod\n );\n\n if (filter.length) {\n CondominioService.selected = filter[0];\n this.context.ConsigazApi.clearMemoize();\n window.location.reload();\n }\n }\n };\n\n render() {\n const { sidebarIn, activeTab, selectedCondominio } = this.state;\n const {\n segmento,\n [`nome-emit`]: name,\n ClienteEntrRetorno: addressList,\n isAdmLogin,\n } = ClienteService.localEntrega || {};\n\n let nomeContato;\n if (segmento === \"INDUSTRIAL\")\n nomeContato = (ClienteService.industrialContato || {}).name;\n\n const addressOptions = [\n ...(segmento === \"INDUSTRIAL\"\n ? [{ title: \"Todos os endereços\", value: \"all\" }]\n : []),\n ...(addressList || []).map((address) => ({\n title: address[\"endereco\"],\n value: this.getAddressKey(address),\n })),\n ];\n\n const sidebarOpts = [\n {\n label: \"Home\",\n onClick: () => redirect(this.props, \"/home\"),\n },\n {\n label: \"Dados Pessoais\",\n onClick: () => redirect(this.props, \"/personal-data\"),\n },\n (segmento === \"INDUSTRIAL\" && {\n label: \"Contatos da empresa\",\n onClick: () => redirect(this.props, \"/industrial-contact\"),\n }) ||\n null,\n (segmento === \"INDUSTRIAL\" && {\n label: \"Indicação de Clientes\",\n onClick: () => redirect(this.props, \"/recommendation\"),\n }) ||\n null,\n {\n label: \"Meus Endereços\",\n onClick: () => redirect(this.props, \"/address-list\"),\n },\n (segmento !== \"INDUSTRIAL\" && {\n label: \"Lista de Protocolos\",\n onClick: () =>\n redirect(this.props, \"/home-services\", { tab: \"protocol\" }),\n }) ||\n null,\n {\n label: \"Ajuda\",\n onClick: () => redirect(this.props, \"/help\"),\n },\n {\n label: \"Termos de Uso\",\n href: \"/termo.html\",\n target: \"blank\",\n },\n {\n label: \"Sair\",\n onClick: () =>\n ClienteService.logout().then(() => redirect(this.props, \"/\")),\n },\n ].filter((e) => e);\n\n const sidebarOptsAdm = [\n {\n label: \"Home\",\n onClick: () => redirect(this.props, \"/home\"),\n },\n {\n label: \"Dados Pessoais\",\n onClick: () => redirect(this.props, \"/personal-data\"),\n },\n {\n label: \"Meus Endereços\",\n onClick: () => redirect(this.props, \"/address-list\"),\n },\n (segmento !== \"INDUSTRIAL\" && {\n label: \"Lista de Protocolos\",\n onClick: () =>\n redirect(this.props, \"/home-services\", { tab: \"protocol\" }),\n }) ||\n null,\n {\n label: \"Sair\",\n onClick: () =>\n ClienteService.logout().then(() => redirect(this.props, \"/\")),\n },\n ].filter((e) => e);\n\n const navbarTabs = [\n {\n label: \"Home\",\n icon: IconHomeOutline,\n onClick: () => redirect(this.props, \"/home\"),\n },\n {\n label: \"Consumo\",\n icon: IconHomeSign,\n onClick: () => redirect(this.props, \"/consumption\"),\n },\n {\n label: \"Financeiro\",\n icon: IconDollar,\n onClick: () => redirect(this.props, \"/finances\"),\n },\n {\n label: \"Serviços\",\n icon: IconAdmin,\n onClick: () => redirect(this.props, \"/home-services\"),\n },\n segmento === \"INDUSTRIAL\" && {\n label: \"Entregas\",\n icon: IconDelivery,\n onClick: () => redirect(this.props, \"/home-delivery\"),\n },\n ];\n\n return (\n \n
\n \n \n
\n
\n {sidebarIn ? (\n this.setState({ sidebarIn: !sidebarIn })}\n />\n ) : (\n this.setState({ sidebarIn: !sidebarIn })}\n />\n )}\n\n

\n {this.renderAdmLogin()}\n Olá, {(nomeContato || name || \"\").split(\" \")[0]}\n

\n \n
\n
\n {\n if (tab.label === activeTab) return idx;\n else return reduced !== undefined ? reduced : undefined;\n }, undefined)}\n activeStyle=\"fill\"\n />\n \"user\"\n
\n
\n
{this.props.children}
\n
\n
\n );\n }\n}\n\nexport default HomeTemplate;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport \"./Card.scss\";\n\nconst getSolidStyle = (baseColor, textColor, gradient) => ({\n [`--color`]: textColor,\n [`--bg-color`]: baseColor,\n [`--bg-gradient`]: gradient,\n});\nconst getOutlineStyle = (baseColor, textColor, customStyle = {}) => ({\n [`--color`]: textColor,\n [`--bg-color`]: \"#fff\",\n [`--bg-gradient`]: \"#fff\",\n [`--border-color`]: baseColor,\n borderWidth: \"1px\",\n borderColor: \"var(--border-color)\",\n borderStyle: \"solid\",\n ...customStyle,\n});\nconst getToplineStyle = (baseColor, textColor) => ({\n [`--color`]: textColor,\n [`--bg-color`]: \"#fff\",\n [`--bg-gradient`]: \"#fff\",\n [`--border-color`]: baseColor,\n borderTopWidth: \"3px\",\n});\n\nconst cardStyles = {\n primary: getSolidStyle(\n \"#2065a8\",\n \"#fff\",\n \"linear-gradient(33deg, rgba(11,50,100,1) 0%, rgba(32,101,168,1) 100%)\"\n ),\n outlineWhite: getOutlineStyle(\"#FFF\", \"#FFF\", {\n backgroundColor: \"transparent\",\n }),\n outlinePrimary: getOutlineStyle(\"var(--light-blue)\", \"#000\"),\n outlinePrimaryClear: getOutlineStyle(\"var(--light-blue)\", \"#FFF\", {\n backgroundColor: \"transparent\",\n }),\n toplinePrimary: getToplineStyle(\"var(--light-blue)\", \"#000\"),\n danger: getSolidStyle(\"#dc3e31\", \"#fff\", \"#dc3e31\"),\n ontlineDanger: getOutlineStyle(\"#dc3e31\", \"#000\"),\n toplineDanger: getToplineStyle(\"#dc3e31\", \"#000\"),\n warning: getSolidStyle(\"#ff8f3b\", \"#fff\", \"#ff8f3b\"),\n ontlineWarning: getOutlineStyle(\"#ff8f3b\", \"#000\"),\n toplineWarning: getToplineStyle(\"#ff8f3b\", \"#000\"),\n toplineCancel: getToplineStyle(\"#808080\", \"#000\"),\n success: getSolidStyle(\"#00a23b\", \"#fff\", \"#00a23b\"),\n ontlineSuccess: getOutlineStyle(\"#00a23b\", \"#000\"),\n toplineSuccess: getToplineStyle(\"#00a23b\", \"#000\"),\n ontlineSecondary: getOutlineStyle(\"#999\", \"#333\"),\n outlineSecondaryClear: getOutlineStyle(\"#999\", \"#666\", {\n backgroundColor: \"transparent\",\n }),\n outlineSecondaryDashed: {\n [`--color`]: \"#000\",\n [`--bg-color`]: \"#fff\",\n [`--bg-gradient`]: \"#fff\",\n [`--border-color`]: \"#999\",\n borderStyle: \"dashed\",\n borderWidth: \"1px\",\n },\n clear: {\n [`--color`]: \"#000\",\n [`--bg-color`]: \"#fff\",\n [`--bg-gradient`]: \"#fff\",\n },\n};\n\nexport const getStyle = (key) => cardStyles[key || \"primary\"];\n\nexport default class Card extends Component {\n static propTypes = {\n styleName: PropTypes.oneOf(Object.keys(cardStyles)),\n children: PropTypes.node,\n footerButtons: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n })\n ),\n className: PropTypes.string,\n };\n\n get className() {\n return `card ${this.props.className}`;\n }\n\n renderTitle() {\n const { title } = this.props;\n\n if (title) return

{title}

;\n }\n\n renderFooterButtons() {\n const { footerButtons } = this.props;\n\n if (footerButtons)\n return (\n
\n {footerButtons.map((btn, idx) => (\n \n {btn.label}\n \n ))}\n
\n );\n }\n\n render() {\n const { children, style, onClick } = this.props;\n const cardStyle = cardStyles[this.props.styleName || \"primary\"];\n\n return (\n \n {this.renderTitle()}\n {children}\n {this.renderFooterButtons()}\n \n );\n }\n}\n","import React from 'react';\nimport Modal from \"../../components/Modal/Modal\";\nimport WarningImage from \"../../assets/illustrations/warning.png\";\nimport { redirect } from '../../components/Page/Page';\n\nconst ReactivationModal = (props) => (\n \n redirect(props, \"/address-complement\", {\n addressOnReactivation: props.addressOnReactivation,\n })\n }\n declineButton={true}\n declineButtonText=\"Cancelar\"\n declineButtonAction={(modal) => {\n modal.close();\n props.declineButtonAction && props.declineButtonAction(modal)\n }}\n >\n Reative seu cadastro para ter acesso aos nossos serviços\n \n)\n\nexport default ReactivationModal","import React from \"react\";\nimport { IconSearch } from \"../Icons/Icons\";\n\nexport default ({ className, onChange, disabled, style, placeholder }) => (\n <>\n
\n
\n \n \n
\n
\n
\n \n);\n","import React, { Component } from \"react\";\n\nimport \"./AddressList.scss\";\n\nimport apiContext from \"../../api\";\nimport ClienteService from \"../../services/cliente\";\n\nimport HomeTemplate, { redirect } from \"../HomeTemplate/HomeTemplate\";\nimport Card from \"../../components/Card/Card\";\nimport {\n IconHome,\n IconPlus,\n IconClose,\n IconCheck,\n} from \"../../components/Icons/Icons\";\nimport CondominioService from \"../../services/condominio\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport ReactivationModal from \"./ReactivationModal\";\nimport Search from \"../../components/Search/Search\";\nimport Modal from \"../../components/Modal/Modal\";\n\nclass AddressList extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n addressList: [],\n redirectState: {},\n selectedCondominio: CondominioService.selected || {},\n addressOnReactivation: null,\n selectedAddress: \"\",\n reactivationButton: false,\n complementaryData: [],\n service: \"reativacao\",\n };\n }\n\n componentDidMount() {\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ)\n .then(ClienteService.consultaLocalEntregaApiParser)\n .then(({ Cliente }) => {\n if (Cliente) {\n this.props.dismissLoading();\n this.setState({\n addressList: Cliente.ClienteRetorno[0].ClienteEntrRetorno,\n });\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState({}, () => this.props.showToast(\"Ops!\", errorDescription));\n });\n }\n\n isSelected = (address) =>\n address[\"cod-condominio\"] ===\n this.state.selectedCondominio[\"cod-condominio\"] &&\n address[\"local-entrega\"] === this.state.selectedCondominio[\"local-entrega\"];\n\n isSelectedForReactivation = (address) =>\n address[\"cod-condominio\"] ===\n this.state.selectedCondominio[\"cod-condominio\"] &&\n address[\"local-entrega\"] === this.state.selectedCondominio[\"local-entrega\"];\n\n iscomplementaryData = (address) => {\n const { complementaryData } = this.state;\n if (complementaryData.indexOf(address) > -1) return true;\n };\n\n getAddressStyleName = (address) => {\n if (this.isSelected(address)) return \"primary\";\n else if (address.situacao === 1) return \"ontlineSecondary\";\n else if (address.situacao === 2) return \"outlineSecondaryDashed\";\n else return \"outlineSecondaryDashed\";\n };\n\n getStyleReactivation = (address) => {\n const { reactivationButton } = this.state;\n if (reactivationButton === true && this.iscomplementaryData(address))\n return \"primary\";\n else return \"ontlineSecondary\";\n };\n\n selectCondominio = (address) => {\n if (address) {\n CondominioService.selected = address;\n this.setState({ selectedCondominio: address }, () =>\n setTimeout(() => redirect(this.props, \"/home\"), 500)\n );\n }\n };\n\n selectCondominioReactivation = (address) => {\n const { complementaryData } = this.state;\n if (complementaryData.indexOf(address) === -1)\n this.setState({\n complementaryData: [...complementaryData, address],\n });\n else\n this.setState({\n complementaryData: complementaryData.filter((un) => un !== address),\n });\n };\n\n renderButton() {\n const { CPFCNPJ, segmento } = ClienteService.localEntrega || {};\n const { reactivationButton, complementaryData } = this.state;\n if (!CPFCNPJ) return null;\n\n if (segmento === \"CONTASIM\") {\n return (\n
\n redirect(this.props, \"/address-search\")}\n className=\"fab-add-address\"\n >\n \n \n
\n );\n }\n if (\n segmento === \"INDUSTRIAL\" &&\n reactivationButton === true &&\n complementaryData.length !== 0\n ) {\n return (\n \n {\n e.preventDefault();\n e.stopPropagation();\n this.setState(\n () =>\n this.confirmReactivationModal &&\n this.confirmReactivationModal.open()\n );\n }}\n >\n Avançar\n \n \n );\n }\n }\n\n renderAddressList() {\n const {\n addressList,\n selectedAddress,\n reactivationButton,\n } = this.state;\n const { isAdmLogin, segmento } = ClienteService.localEntrega || {};\n\n const addressFilter = addressList\n .filter((address) => {\n if (reactivationButton === false)\n return (\n address[\"endereco\"].indexOf(selectedAddress.toUpperCase()) > -1\n );\n else return address;\n })\n .filter((address) => {\n if (reactivationButton === true && !selectedAddress)\n return address[\"situacao\"] === 2;\n else if (reactivationButton === true && selectedAddress)\n return (\n address[\"situacao\"] === 2 &&\n address[\"endereco\"].indexOf(selectedAddress.toUpperCase()) > -1\n );\n else return address;\n });\n\n const addressInactiveFilter = (addressList || []).filter(\n (address) => address[\"situacao\"] === 2\n );\n\n return (\n <>\n {reactivationButton === false &&\n !selectedAddress &&\n addressList &&\n addressList.map((address) => (\n this.selectCondominio(address)}\n >\n
\n \n
\n
\n

{address[\"nome-condominio\"]}

\n

{address.endereco}

\n

{`${address.cidade} / ${address.estado}`}

\n\n {address.situacao === 2 && segmento === \"INDUSTRIAL\" && (\n \n Local inativo\n \n )}\n {address.situacao === 2 &&\n !isAdmLogin &&\n segmento !== \"INDUSTRIAL\" && (\n {\n e.preventDefault();\n e.stopPropagation();\n this.setState(\n { addressOnReactivation: address },\n () =>\n this.reactivateModal && this.reactivateModal.open()\n );\n }}\n >\n Reativar Imóvel\n \n )}\n
\n
\n {!isAdmLogin &&\n segmento !== \"INDUSTRIAL\" &&\n (address.situacao !== 2 ? (\n {\n e.preventDefault();\n e.stopPropagation();\n redirect(this.props, \"/cancellation\", { address });\n }}\n >\n \n \n ) : (\n \n \n \n ))}\n
\n \n ))}\n\n {selectedAddress &&\n addressFilter &&\n addressFilter.map((address) => (\n {\n reactivationButton === false\n ? this.selectCondominio(address)\n : this.selectCondominioReactivation(address);\n }}\n >\n
\n \n
\n
\n

{address[\"nome-condominio\"]}

\n

{address.endereco}

\n

{`${address.cidade} / ${address.estado}`}

\n\n {address.situacao === 2 && segmento === \"INDUSTRIAL\" && (\n \n Local inativo\n \n )}\n {address.situacao === 2 &&\n !isAdmLogin &&\n segmento !== \"INDUSTRIAL\" && (\n {\n e.preventDefault();\n e.stopPropagation();\n this.setState(\n { addressOnReactivation: address },\n () =>\n this.reactivateModal && this.reactivateModal.open()\n );\n }}\n >\n Reativar Imóvel\n \n )}\n
\n\n
\n {reactivationButton === true &&\n this.iscomplementaryData(address) && (\n \n \n
\n )}\n \n\n
\n {!isAdmLogin &&\n segmento !== \"INDUSTRIAL\" &&\n (address.situacao !== 2 ? (\n {\n e.preventDefault();\n e.stopPropagation();\n redirect(this.props, \"/cancellation\", { address });\n }}\n >\n \n \n ) : (\n \n \n
\n ))}\n \n \n ))}\n\n {/* BOTAO ATIVADO E ENDERECO NAO PESQUISADO */}\n {reactivationButton === true &&\n !selectedAddress &&\n addressInactiveFilter &&\n addressInactiveFilter.map((address) => (\n this.selectCondominioReactivation(address)}\n >\n
\n \n
\n
\n

{address[\"nome-condominio\"]}

\n

{address.endereco}

\n

{`${address.cidade} / ${address.estado}`}

\n\n {address.situacao === 2 && segmento === \"INDUSTRIAL\" && (\n \n Local inativo\n \n )}\n {address.situacao === 2 &&\n !isAdmLogin &&\n segmento !== \"INDUSTRIAL\" && (\n {\n e.preventDefault();\n e.stopPropagation();\n this.setState(\n { addressOnReactivation: address },\n () =>\n this.reactivateModal && this.reactivateModal.open()\n );\n }}\n >\n Reativar Imóvel\n \n )}\n
\n\n
\n {this.iscomplementaryData(address) && (\n \n \n
\n )}\n \n\n
\n {!isAdmLogin &&\n segmento !== \"INDUSTRIAL\" &&\n (address.situacao !== 2 ? (\n {\n e.preventDefault();\n e.stopPropagation();\n redirect(this.props, \"/cancellation\", { address });\n }}\n >\n \n \n ) : (\n \n \n \n ))}\n
\n \n ))}\n \n );\n }\n\n generateOrder = () => {\n const { complementaryData } = this.state;\n const { [`local-entrega`]: localEntrega } = CondominioService.selected;\n\n const { CPFCNPJ } = ClienteService.localEntrega;\n\n this.context.ConsigazApi.geraOcorrencia(\n null,\n \"reativacao\",\n null,\n null,\n null,\n CPFCNPJ,\n localEntrega,\n complementaryData\n ).then(\n ({ Ocorrencia }) => {\n this.props.dismissLoading();\n\n if (Ocorrencia) {\n this.setState({\n protocol: {\n ...Ocorrencia[0],\n title: \"Reativação\",\n },\n content: \"protocol\",\n });\n this.happyToBeBackModal && this.happyToBeBackModal.open();\n } else\n this.props.showToast(\"Ops!\", \"Não foi possível gerar a ocorrencia.\");\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n };\n\n render() {\n const {\n redirectState,\n addressOnReactivation,\n selectedAddress,\n reactivationButton,\n complementaryData,\n addressList,\n } = this.state;\n const { segmento } = ClienteService.localEntrega;\n\n const addressInactiveFilter = (addressList || []).filter(\n (address) => address[\"situacao\"] === 2\n );\n\n\n return (\n (this.template = ref)}\n history={this.props.history}\n redirectFrom=\"AddressList\"\n redirectState={redirectState}\n className=\"address-list-page\"\n >\n {segmento === \"INDUSTRIAL\" ? (\n <>\n

Meus locais de entrega

\n {addressInactiveFilter.length === 0 ? (\n \"\"\n ) : (\n <>\n

\n Reative seu cadastro selecionando o botão abaixo e os\n endereços.\n

\n {\n if (reactivationButton === false)\n this.setState({ reactivationButton: true });\n else this.setState({ reactivationButton: false });\n }}\n >\n Reativar\n \n \n this.setState({ selectedAddress: e.target.value })\n }\n >\n \n )}\n \n ) : (\n \"\"\n )}\n {this.renderAddressList()}\n {this.renderButton()}\n\n (this.reactivateModal = ref)}\n history={this.props.history}\n shown={addressOnReactivation !== null}\n addressOnReactivation={addressOnReactivation}\n declineButtonAction={() =>\n this.setState({ addressOnReactivation: null })\n }\n />\n\n (this.confirmReactivationModal = ref)}\n title=\"Confirmar\"\n shown={false}\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Confirmar\"\n confirmButtonAction={this.generateOrder}\n >\n

Você deseja fazer a reativação dos estabelecimentos abaixo?

\n {complementaryData && complementaryData.length > 0 ? (\n <>\n {complementaryData &&\n complementaryData.map((address) => (\n \n
\n \n
\n
\n

{address[\"nome-condominio\"]}

\n

{address.endereco}

\n

{`${address.cidade} / ${address.estado}`}

\n
\n
\n \n this.selectCondominioReactivation(address)\n }\n />\n
\n \n ))}\n \n ) : (\n this.confirmReactivationModal &&\n this.confirmReactivationModal.close()\n )}\n \n (this.happyToBeBackModal = ref)}\n title=\"Reative!\"\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={() => {\n redirect(this.props, \"/home-services\", { tab: \"protocol\" });\n }}\n >\n Ficaremos muito felizes em tê-lo de volta! Entraremos em contato para\n apresentar os próximos passos.\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(AddressList);\n","import React, { Component } from \"react\";\nimport { MuiPickersUtilsProvider, DatePicker } from \"@material-ui/pickers\";\nimport { createMuiTheme, ThemeProvider } from \"@material-ui/core/styles\";\nimport { ptBR } from \"@material-ui/core/locale\";\nimport MomentUtils from \"@date-io/moment\";\nimport moment from \"moment\";\nimport \"moment/locale/pt-br\";\n\nimport \"./Cancellation.scss\";\n\nimport apiContext from \"../../api\";\n\nimport Modal from \"../../components/Modal/Modal\";\nimport HomeTemplate, { redirect } from \"../HomeTemplate/HomeTemplate\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport WarningImage from \"../../assets/illustrations/warning.png\";\nimport PageHeaderImage from \"../../components/PageHeaderImage/PageHeaderImage\";\nimport ServiceItem from \"../../components/ServiceItem/ServiceItem\";\nimport { IconHome, IconClose } from \"../../components/Icons/Icons\";\nimport ClienteService from \"../../services/cliente\";\n\nclass CancellationComplement extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n whenWillLeave: null,\n leavingDate: null,\n protocolExists: false,\n };\n }\n\n validateLeaveDate = (leavingDate) => {\n const dateObj = new Date(\n `${leavingDate.split(\"/\").reverse().join(\"-\")}T00:00:00.000Z`\n );\n\n const today = new Date();\n today.setHours(0);\n today.setMinutes(0);\n today.setSeconds(0);\n\n return +today + 3 * 24 * 60 * 60 * 1000 >= +dateObj;\n };\n\n handleAvancar(onSubmit, whenWillLeave, leavingDate) {\n if (\n leavingDate &&\n !this.validateLeaveDate(leavingDate)\n ) \n return onSubmit({ success: false });\n\n onSubmit({ whenWillLeave, leavingDate, success: true })\n }\n\n componentDidMount() {\n this.verificaProtocolo()\n }\n\n verificaProtocolo() {\n const { [`cod-emitente`]: codEmitente } = ClienteService.localEntrega;\n const { ['local-entrega']: localEntrega, ['cod-motivo']: codMotivo } = this.props.address\n\n this.props.showLoading();\n\n this.context.ConsigazApi.verificaProtocolos(\n codEmitente,\n localEntrega,\n codMotivo,\n \"Cancelamento\"\n ).then(\n ({ Retorno }) => {\n this.props.dismissLoading(); \n if (Retorno?.length > 0) {\n this.setState({ ...this.state, protocolExists: true })\n this.modalExistentProtocol &&\n this.modalExistentProtocol.open()\n }\n },\n () => {\n this.props.dismissLoading();\n }\n );\n }\n\n renderExistentProtocolModal() {\n return (\n (this.modalExistentProtocol = ref)}\n title=\"Fique Atento!\"\n shown={false}\n closeButton={true}\n declineButton={false}\n confirmButton={true}\n confirmButtonText=\"Fechar\"\n confirmButtonAction={(modal) => { modal.close() }}\n >\n Você já possui esse serviço contratado.\n
\n \n \"Modal\n \n );\n }\n\n render() {\n const { address, onSubmit } = this.props;\n const { whenWillLeave, leavingDate } = this.state;\n\n return (\n <>\n \n

Cancelamento de Cadastro

\n

\n Após o cancelamento,\n haverá interrupção no fornecimento de gás em até 6 dias úteis.\n

\n\n \n \n

{address.endereco}

\n redirect(this.props, \"/address-list\")}\n style={{ cursor: \"pointer\" }}\n >\n \n \n
\n\n

\n E quando sairá do imóvel?\n

\n

\n \n

\n

\n \n

\n\n \n \n {\n if (date.isSameOrAfter(moment(), \"day\"))\n this.setState({ leavingDate: date.format(\"DD/MM/YYYY\") });\n else\n this.props.showToast(\n \"Ops\",\n \"Você deve selecionar uma data futura.\"\n );\n }}\n labelFunc={() => leavingDate || \"00/00/0000\"}\n />\n \n \n\n
\n\n this.handleAvancar(onSubmit, whenWillLeave, leavingDate)}\n >\n Avançar\n \n\n {this.renderExistentProtocolModal()}\n \n );\n }\n}\n\nclass CancellationConfirmation extends Component {\n static contextType = apiContext;\n\n handleOrder = () => {\n const { address, complementaryData, onSubmit } = this.props;\n const {\n CPFCNPJ,\n email,\n [`nome-emit`]: nome,\n telefone,\n } = ClienteService.localEntrega;\n const { [`local-entrega`]: localEntrega } = address;\n\n const splitedName = nome.split(\" \");\n const firstName = splitedName.shift();\n const lastName = splitedName.join(\" \");\n\n this.props.showLoading()\n\n this.context.ConsigazApi.geraOcorrencia(\n null,\n \"Cancelamento\",\n null,\n null,\n null,\n CPFCNPJ,\n localEntrega,\n {\n contact: complementaryData?.whoWillReceiveTheTechnician || firstName,\n lastNameDept: lastName,\n phone: complementaryData?.userPhone || telefone,\n email: email,\n complementaryData,\n leavingDate: complementaryData.leavingDate,\n portariaEletronica: complementaryData.electronicConcierge ? 'YES' : 'NO',\n moradorNoLocal: complementaryData.presenceNext3Days ? 'YES' : 'NO',\n }\n ).then(\n ({ Ocorrencia }) => {\n this.props.dismissLoading()\n\n if (Ocorrencia)\n onSubmit &&\n onSubmit({\n protocolNumber: Ocorrencia[0][\"v-nr-ocorrencia\"],\n success: true,\n });\n else\n this.props.showToast(\n \"Ops!\",\n \"Não foi possível localizar o número do protocolo\"\n );\n },\n () => this.props.showToast(\"Ops!\", \"Erro ao realizar o cancelamento\")\n );\n };\n\n render() {\n const { handleGoBack, address, complementaryData } = this.props;\n\n return (\n <>\n \n

Confirmar Cancelamento?

\n

\n Você tem certeza que deseja cancelar o seu cadastro? Haverá\n interrupção do fornecimento de gás em até 6 dias úteis.\n

\n\n \n \n

{address.endereco}

\n redirect(this.props, \"/address-list\")}\n style={{ cursor: \"pointer\" }}\n >\n \n \n
\n\n {complementaryData.leavingDate && (\n \n

Data em que deixará o imóvel:

\n {complementaryData.leavingDate}\n
\n )}\n\n {complementaryData.whoWillReceiveTheTechnician && (\n \n

Quem irá receber o técnico:

\n {complementaryData.whoWillReceiveTheTechnician}\n
\n )}\n\n {complementaryData.leavingDate && (\n \n

Prazo de cancelamento:

\n 6 dias úteis\n
\n )}\n\n
\n
\n\n \n
\n \n \n );\n }\n}\n\nconst CancellationDone = (props) => (\n <>\n \n

Em processo de cancelamento

\n

Anote o protocolo informado abaixo

\n\n \n {props.complementaryData.protocolNumber}\n

\n\n \n \n);\n\nclass CancellationError extends Component {\n static contextType = apiContext;\n\n sendMail = () => {\n const { complementaryData } = this.props;\n const { CPFCNPJ, email, [`nome-emit`]: nome } = ClienteService.localEntrega;\n this.context.ConsigazReportApi.sendCancelationEmail(\n nome,\n CPFCNPJ,\n moment(complementaryData.leavingDate, \"DD/MM/YYYY\")\n .subtract(2, \"days\")\n .format(\"DD/MM/YYYY\"),\n email\n ).then(\n () => {\n this.props.showToast(\n \"Enviado\",\n \"Você receberá um email para lembrar de fazer o cancelamento.\"\n );\n setTimeout(() => {\n redirect(this.props, \"/home\");\n }, 2000);\n },\n () => this.props.showToast(\"Ops!\", \"Não foi possível enviar o email.\")\n );\n };\n\n render() {\n return (\n <>\n \n

Não foi possível cancelar

\n

\n Após o cancelamento da conta, o fornecimento de gás será interrompido\n dentro das próximas 72 horas. Deixe para efetuar o cancelamento a\n partir de 6 dias antes da data em que irá deixar o imóvel ou após a sua\n saída.\n

\n

\n Mas não se preocupe! Nós podemos te mandar um email 6 dias antes da data\n selecionada para te lembrar de fazer o cancelamento.\n

\n\n \n
\n redirect(this.props, \"/home\")}\n >\n Voltar para home\n \n \n );\n }\n}\n\nclass Cancellation extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentStep: 0,\n complementaryData: {},\n };\n }\n\n get address() {\n const { location } = this.props;\n\n if (location && location.state) return location.state.address;\n\n return null;\n }\n\n handleStepBack = () => {\n const { currentStep } = this.state;\n this.setState({ currentStep: currentStep - 1 });\n };\n\n handleStepSubmit = (data) => {\n const { currentStep, complementaryData } = this.state;\n this.setState({\n currentStep: currentStep + 1,\n complementaryData: { ...complementaryData, ...data },\n });\n };\n\n render() {\n const { redirectState, currentStep, complementaryData } = this.state;\n const address = this.address;\n\n return (\n (this.template = ref)}\n history={this.props.history}\n redirectFrom=\"Cancellation\"\n redirectState={redirectState}\n className=\"cancellation-page\"\n >\n {(\n [\n () => (\n \n ),\n () => complementaryData.success ? (\n \n ) : (\n \n ),\n () => (\n \n ),\n () => (\n \n )\n ][currentStep] || (() => null)\n )()}\n \n );\n }\n}\n\nclass CancellationExtraInfos extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n electronicConcierge: null,\n presenceNext3Days: null,\n whoWillReceiveTheTechnician: null,\n userPhone: null,\n };\n }\n\n maskPhone(v) {\n var r = v.replace(/\\D/g, \"\");\n r = r.replace(/^0/, \"\");\n\n if (r.length > 10) {\n r = r.replace(/^(\\d\\d)(\\d{5})(\\d{4}).*/, \"($1) $2-$3\");\n } else if (r.length > 5) {\n r = r.replace(/^(\\d\\d)(\\d{4})(\\d{0,4}).*/, \"($1) $2-$3\");\n } else if (r.length > 2) {\n r = r.replace(/^(\\d\\d)(\\d{0,5})/, \"($1) $2\");\n } else {\n r = r.replace(/^(\\d*)/, \"($1\");\n }\n\n if(r.length === 10) r = r.replace(\"-\", \"\")\n if(r.length === 1 && r === '(') r = r.replace(\"(\", \"\")\n \n this.setState({ ...this.state, userPhone: r })\n }\n\n componentDidMount() {\n \n this.setState({\n ...this.props.complementaryData\n })\n }\n \n handleChangeNex3Days(value) {\n if(value) {\n const { [`nome-emit`]: nome, telefone } = ClienteService.localEntrega;\n this.setState({ ...this.state, whoWillReceiveTheTechnician: nome, userPhone: telefone, presenceNext3Days: value })\n } else {\n this.setState({ ...this.state, whoWillReceiveTheTechnician: \"\", userPhone: \"\", presenceNext3Days: value })\n }\n }\n\n render() {\n const { onSubmit } = this.props;\n const { \n electronicConcierge, \n presenceNext3Days, \n whoWillReceiveTheTechnician, \n userPhone \n } = this.state;\n\n return (\n <>\n \n

Cancelamento de Cadastro

\n

\n Após o cancelamento,\n haverá interrupção no fornecimento de gás em até 6 dias úteis.\n

\n\n\n
\n\n
\n

\n O condomínio tem portaria eletrônica?\n

\n
\n

\n \n

\n\n

\n \n

\n
\n
\n\n {electronicConcierge && <>\n
\n

\n Estará no local nos próximos 6 dias úteis para liberar a entrada do técnico?\n

\n
\n

\n \n

\n\n

\n \n

\n
\n
\n\n {presenceNext3Days === false && \n
\n

\n Quem irá receber o técnico?\n

\n
\n \n this.setState({\n ...this.state,\n whoWillReceiveTheTechnician: e.target.value,\n })\n }\n />\n\n \n this.maskPhone(e.target.value)\n }\n />\n\n\n
\n
}\n }\n
\n\n
\n\n onSubmit({ ...this.state })}\n >\n Avançar\n \n \n );\n }\n}\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(Cancellation);\n","import React, { Component } from \"react\";\n\nimport \"./Contestation.scss\";\n\nimport apiContext from \"../../api\";\n\nimport HomeTemplate, { redirect } from \"../HomeTemplate/HomeTemplate\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport { weightFormat } from \"../../components/Masks/Masks\";\nimport Modal from \"../../components/Modal/Modal\";\n\nimport RelogioImage from \"../../assets/services/relogio.png\";\nimport { IconCheck } from \"../../components/Icons/Icons\";\nimport CondominioService from \"../../services/condominio\";\nimport ClienteService from \"../../services/cliente\";\nimport ServiceItem from \"../../components/ServiceItem/ServiceItem\";\n\nclass ContestationPage extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n content: \"landing\",\n currentStep: 0,\n };\n }\n\n get invoiceData() {\n const { location } = this.props;\n if (location && location.state) return location.state.invoiceData;\n return null;\n }\n\n get dadosGerais() {\n const invoiceData = this.invoiceData;\n if (\n invoiceData &&\n invoiceData[\"tt-dados-gerais\"] &&\n invoiceData[\"tt-dados-gerais\"].length\n )\n return invoiceData[\"tt-dados-gerais\"][0];\n return null;\n }\n\n checkOpenOrder = (isLeakage) => {\n return new Promise((resolve, reject) => {\n const { [`local-entrega`]: localEntrega } = CondominioService.selected;\n const { [`cod-emitente`]: codEmitente } = ClienteService.localEntrega;\n\n if (isLeakage)\n resolve()\n\n this.props.showLoading();\n this.context.ConsigazApi.verificaProtocolos(\n codEmitente,\n localEntrega,\n isLeakage ? 4 : null,\n isLeakage ? \"2;;\" : \"RevisaoLeitura\",\n )\n .then(\n ({ Retorno }) => {\n this.props.dismissLoading();\n\n if (Retorno && Retorno.length > 0) {\n reject()\n return;\n }\n resolve()\n },\n () => {\n this.props.dismissLoading();\n reject()\n }\n )\n })\n }\n\n handleOrder = (isLeakage) => {\n const dadosTotais = this.invoiceData;\n const { meterRead } = this.state;\n const {\n CPFCNPJ,\n email,\n [`nome-emit`]: nome,\n telefone,\n } = ClienteService.localEntrega;\n const { [`local-entrega`]: localEntrega } = CondominioService.selected;\n\n const splitedName = nome.split(\" \");\n const firstName = splitedName.shift();\n const lastName = splitedName.join(\" \");\n\n this.checkOpenOrder(isLeakage)\n .then(\n () => {\n this.props.showLoading();\n this.context.ConsigazApi.geraOcorrencia(\n null,\n isLeakage ? \"2;;\" : \"RevisaoLeitura\",\n isLeakage ? 0 : null,\n isLeakage ? 4 : null,\n null,\n CPFCNPJ,\n localEntrega,\n {\n informacoes: `${dadosTotais.cod_tit_acr} / ${dadosTotais.cod_ser_docto}`,\n contact: firstName,\n lastNameDept: lastName,\n phone: telefone,\n email: email,\n reading: meterRead,\n ...(isLeakage\n ? {\n tipoVazamento: \"Desconhecido\",\n localVazamento: null,\n }\n : {}),\n }\n ).then(\n ({ Ocorrencia }) => {\n this.props.dismissLoading();\n // redirect(this.props, '/home-services', { tab: \"protocol\" })\n if (Ocorrencia)\n this.setState({\n protocol: {\n ...Ocorrencia[0],\n title: isLeakage ? \"Vazamento\" : \"Revisao de Leitura\",\n },\n content: \"protocol\",\n });\n else\n this.props.showToast(\"Ops!\", \"Não foi possível gerar a ocorrencia.\");\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n },\n () => this.props.showToast(\"Ops\", \"Você já possui um pedido de revisão aberto.\")\n )\n\n };\n\n getInterval = () => {\n const dadosGerias = this.dadosGerais;\n\n const startDate = new Date(\n `${dadosGerias[\"dt-leitura-ant\"]} 00:00:00`\n ).toLocaleDateString(\"pt-br\");\n const endDate = new Date(\n `${dadosGerias[\"dt-leitura\"]} 00:00:00`\n ).toLocaleDateString(\"pt-br\");\n\n return `${startDate} - ${endDate}`;\n };\n\n openServiceOrder = () => {\n this.serviceOrderModal && this.serviceOrderModal.open();\n };\n\n analyseRead = () => {\n /* eslint-disable eqeqeq */\n const { meterRead } = this.state;\n const dadosGerais = this.dadosGerais;\n\n if (meterRead > dadosGerais[\"leitura-atual\"])\n this.looksAlrightModal && this.looksAlrightModal.open();\n else if (meterRead == dadosGerais[\"leitura-atual\"])\n this.looksEqualModal && this.looksEqualModal.open();\n else this.notOkModal && this.notOkModal.open();\n /* eslint-enable eqeqeq */\n };\n\n renderLandingContent() {\n const { meterRead } = this.state;\n const dadosGerais = this.dadosGerais;\n const { isAdmLogin } = ClienteService.localEntrega || {};\n\n return (\n <>\n Período do Consumo\n

{this.getInterval()}

\n\n Leitura inicial-final\n

\n {weightFormat(dadosGerais[\"leitura-ant\"], \"\")} -{\" \"}\n {weightFormat(dadosGerais[\"leitura-atual\"], \"\")}\n

\n\n Consumo em Kg\n

{weightFormat(dadosGerais[\"kg\"])}

\n\n \n {!isAdmLogin && (\n <>\n

Veja seu medidor

\n

\n Informe a leitura/numeração que marca no seu medidor como na imagem\n acima.\n

\n\n \n this.setState({\n meterRead: e.target.value.replace(/[^\\d]/g, '') / 1000\n })\n }\n />\n
\n\n \n Analisar\n \n \n )}\n \n );\n }\n\n renderHelpContent() {\n return (\n <>\n

Vamos te ajudar!

\n

\n O aumento na quantidade de kg apresentada pode ser em decorrência de\n um possível vazamento. Para identificar se este é o seu caso, faça o\n seguinte teste\n

\n

\n \n Desligue todos os equipamentos que consomem gás no imóvel e anote a\n leitura que está marcando no medidor agora. Aguarde cerca de 30\n minutos sem utilizar gás e verifique novamente a leitura\n

\n\n \n this.testConfirmationModal && this.testConfirmationModal.open()\n }\n >\n Já fiz o teste\n \n \n );\n }\n\n renderProtocolContent() {\n const { protocol } = this.state;\n\n if (!protocol) return;\n\n return (\n <>\n

Ocorrência(s) gerada(s)!

\n

Anote o(s) protocolo(s):

\n\n \n <>\n {protocol[\"v-dt-prev-atendimento\"] && (\n <>\n Serviço previsto para até o dia{\" \"}\n {protocol[\"v-dt-prev-atendimento\"]\n .split(\"-\")\n .reverse()\n .join(\"/\")}\n
\n \n )}\n Protocolo:\n \n {protocol[\"v-nr-ocorrencia\"] || \"Não encontrado\"}\n \n \n
\n\n \n \n );\n }\n\n render() {\n const { redirectState, content } = this.state;\n\n return (\n (this.template = ref)}\n history={this.props.history}\n redirectFrom=\"Contestation\"\n redirectState={redirectState}\n className=\"contestation-page\"\n >\n {content === \"landing\" && this.renderLandingContent()}\n {content === \"help\" && this.renderHelpContent()}\n {content === \"protocol\" && this.renderProtocolContent()}\n (this.looksAlrightModal = ref)}\n title=\"Parece normal\"\n shown={false}\n confirmButton={true}\n confirmButtonText=\"Ok, entendi\"\n confirmButtonAction={() => redirect(this.props, \"/home\")}\n declineButton={true}\n declineButtonText=\"Não concordo\"\n declineButtonAction={(modal) =>\n this.setState({ content: \"help\" }, () => modal.close())\n }\n >\n

\n Identificamos que seu consumo aparentemente está normal, pois a\n leitura atual é maior que a da fatura recebida\n

\n \n (this.looksEqualModal = ref)}\n title=\"Parece normal\"\n shown={false}\n confirmButton={true}\n confirmButtonText=\"Ok, entendi\"\n confirmButtonAction={() => redirect(this.props, \"/home\")}\n declineButton={true}\n declineButtonText=\"Não concordo\"\n declineButtonAction={(modal) => {\n modal.close();\n this.handleOrder(false);\n }}\n >\n

\n Aparentemente não houve consumo após a emissão da fatura, pois a\n leitura permanece a mesma\n

\n \n (this.testConfirmationModal = ref)}\n title=\"Tudo certo?\"\n confirmButton={true}\n confirmButtonText=\"Houve alteração\"\n confirmButtonAction={(modal) => {\n modal.close();\n this.openServiceOrder();\n }}\n declineButton={true}\n declineButtonText=\"Não teve alteração, tudo certo\"\n declineButtonAction={(modal) => {\n modal.close();\n this.checkAlwrightModal && this.checkAlwrightModal.open();\n }}\n >\n

Você conseguiu identificar se houve alterações na leitura?

\n \n (this.serviceOrderModal = ref)}\n title=\"Ordem de serviço\"\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={(modal) => {\n modal.close();\n this.handleOrder(true);\n }}\n >\n

\n Abriremos uma ordem de serviço de vazamento e será feita uma\n verificação no equipamento do medidor na parte externa do imóvel.\n

\n \n (this.checkServiceOrderModal = ref)}\n title=\"Ordem de serviço\"\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={(modal) => {\n modal.close();\n this.handleOrder(false);\n }}\n >\n

\n Sua fatura será encaminhada ao departamento responsável para\n revisão.\n

\n \n (this.notOkModal = ref)}\n title=\"Ops!\"\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={(modal) => {\n modal.close();\n\n this.handleOrder(false);\n }}\n >\n

\n Há indícios de erro na aferição da sua última leitura, pois a\n leitura informada está menor que a da fatura. Sendo assim, estamos\n registrando o pedido de revisão\n

\n \n (this.checkAlwrightModal = ref)}\n title=\"Parece normal\"\n confirmButton={true}\n confirmButtonText=\"Ok, entendi\"\n confirmButtonAction={() => redirect(this.props, \"/home\")}\n declineButton={true}\n declineButtonText=\"Não concordo\"\n declineButtonAction={(modal) => {\n modal.close();\n this.checkServiceOrderModal && this.checkServiceOrderModal.open()\n // this.handleOrder(false);\n }}\n >\n

\n Não há indícios de vazamento, portanto o aumento na quantidade de kg\n refere-se ao consumo.\n

\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(ContestationPage);\n","import React from 'react'\nimport { Link } from 'react-router-dom'\n\nimport Page from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\nimport PageHeaderImage from '../../components/PageHeaderImage/PageHeaderImage'\n\nimport TechnicianImage from '../../assets/illustrations/technician.png'\n\nimport './SaveTime.scss'\n\nexport default props => (\n \n \n \n\n

Precisa de alguma instalação em seu imóvel?

\n

Não deixe para depois. Peça já!

\n\n Ver serviços
\n\n

Ou, se preferir, você pode contrata-los mais tarde.

\n\n Me leve pra home
\n
\n \n)","import React, { Component } from \"react\";\n\nimport \"./ServiceCard.scss\";\n\nimport { IconCheck } from \"../Icons/Icons\";\nimport Switch from \"../Switch/Switch\";\nimport { moneyFormat } from \"../Masks/Masks\";\n\nexport default class ServiceCard extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n checked: this.props.checked || false,\n };\n }\n\n render() {\n const { className } = this.props;\n\n return (\n {\n e.stopPropagation();\n e.preventDefault();\n this.props.onDetail(this.props.serviceId);\n }}\n className={`service-card ${className || \"\"} ${\n this.state.checked && \"checked\"\n }`}\n >\n {this.state.checked && (\n \n )}\n {this.props.title &&

{this.props.title}

}\n \n {this.props.price ? moneyFormat(this.props.price) : \"--\"}\n \n {this.props.description && (\n

{this.props.description}

\n )}\n
\n null)}\n />\n\n \n\n this.props.onDetail(this.props.serviceId)}\n >\n Ver Mais\n \n
\n \n );\n }\n}\n","import React from \"react\";\n\nimport \"./ServiceDetail.scss\";\n\nexport default ({\n title,\n description,\n image,\n deadline,\n checked,\n rawData,\n onToggle,\n onWarranty,\n}) => (\n <>\n

{title}

\n {description &&\n description.split(\"\\n\").map((row, idx) => (\n \n {row}\n

\n ))}\n {image && (\n \n )}\n
\n
\n\n

Prazos

\n\n {rawData && rawData.condPagamento && (\n Prazo de pagamento é de {rawData.condPagamento}\n )}\n
\n {deadline && Prazo de atendimento é de {deadline}}\n
\n
\n \n \n
\n \n);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport Select from \"../../../components/Select/Select\";\nimport { IconCheck } from \"../../../components/Icons/Icons\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport WarningImage from \"../../../assets/illustrations/warning.png\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\n\nimport \"./ServiceDetail.scss\";\n\nclass LeakageDetail extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n haveSubmited: false,\n };\n }\n\n get isValid() {\n const { complementaryData } = this.state;\n return (\n (complementaryData[\"tipo-vazamento\"] &&\n complementaryData[\"local-vazamento\"] === null) ||\n (complementaryData[\"tipo-vazamento\"] === \"Desconhecido\" &&\n complementaryData[\"local-identificado\"] === false)\n );\n }\n\n get initialComplementaryData() {\n return {\n \"tipo-vazamento\": null,\n \"local-vazamento\": false,\n \"local-identificado\": null,\n };\n }\n\n submit = () => {\n const { complementaryData, haveSubmited } = this.state;\n const { checked } = this.props;\n\n if (!checked) {\n if (complementaryData[\"tipo-vazamento\"] === \"Desconhecido\") {\n if (!haveSubmited) {\n this.billingIfEnterWarningModal &&\n this.billingIfEnterWarningModal.open();\n this.setState({ haveSubmited: true });\n return;\n } else {\n this.priorityModal && this.priorityModal.open();\n return;\n }\n }\n }\n\n this.setState({ haveSubmited: true }, this.generateOrder);\n };\n\n get value() {\n const {\n complementaryData: {\n \"tipo-vazamento\": tipoVazamento,\n \"local-vazamento\": localVazamento,\n },\n } = this.state;\n const { rawData } = this.props;\n\n if (tipoVazamento === \"Interno\" && localVazamento !== \"prumada\")\n return rawData.priceConditional;\n\n return null;\n }\n\n generateOrder = () => {\n const {\n complementaryData: {\n \"tipo-vazamento\": tipoVazamento,\n \"local-vazamento\": localVazamento,\n informacoes,\n },\n } = this.state;\n const { onToggle } = this.props;\n\n this.priorityModal && this.priorityModal.close();\n onToggle &&\n onToggle({\n tipoVazamento,\n localVazamento,\n informacoes,\n value: this.value,\n });\n };\n\n render() {\n const { complementaryData, haveSubmited } = this.state;\n const { checked, onWarranty } = this.props;\n\n return (\n <>\n

Vazamento

\n {[\n \"Feche o registro de gás.\",\n \"Afaste as pessoas do local.\",\n \"Não acione interruptores de eletricidade.\",\n \"Não fume nem acenda fósforos ou isqueiros.\",\n \"Abra portas e janelas.\",\n \"Em casos mais graves também entre em contato com o Corpo de Bombeiros (193)\",\n ].map((item, idx) => (\n

\n {item}\n

\n ))}\n \n this.setState({\n complementaryData: {\n ...this.initialComplementaryData,\n \"tipo-vazamento\": e.target.value,\n },\n haveSubmited: false,\n })\n }\n disabled={checked}\n />\n
\n\n {complementaryData[\"tipo-vazamento\"] === \"Interno\" && (\n

\n A Consigaz não realiza manutenção em equipamentos domésticos como\n por exemplo fogões, chuveiros e aquecedores. Caso o problema seja em\n algum desses equipamentos, procure a assistência técnica dos mesmos.\n Os reparos na prumada (tubulação interna) do condomínio e das\n unidades cabem à construtora para condomínios com até 5 anos, e ao\n condomínio após este período.\n

\n )}\n\n {complementaryData[\"tipo-vazamento\"] === \"Externo\" && (\n

\n Os reparos na prumada (tubulação interna) do condomínio e das\n unidades cabem à construtora para condomínios com até 5 anos, e ao\n condomínio após este período.\n

\n )}\n\n {(complementaryData[\"tipo-vazamento\"] === \"Interno\" ||\n complementaryData[\"tipo-vazamento\"] === \"Externo\") && (\n <>\n

\n O vazamento é na prumada (tubulação interna)?\n

\n \n \n \n )}\n\n {complementaryData[\"tipo-vazamento\"] === \"Desconhecido\" && (\n

\n Para confirmar se realmente há vazamento ou o local do problema,\n passe uma esponja com água e sabão na superfície suspeita. O\n aparecimento de bolhas indicará a existência de vazamento.\n

\n )}\n\n {complementaryData[\"tipo-vazamento\"] === \"Desconhecido\" &&\n complementaryData[\"local-identificado\"] !== true && (\n <>\n

\n Conseguiu identificar onde é o vazamento?\n

\n \n \n \n )}\n\n {complementaryData[\"tipo-vazamento\"] === \"Desconhecido\" &&\n complementaryData[\"local-identificado\"] === false && (\n

\n A Consigaz não realiza manutenção em equipamentos domésticos como\n por exemplo fogões, chuveiros e aquecedores. Caso o problema seja\n em algum desses equipamentos, procure a assistência técnica dos\n mesmos. Os reparos na prumada (tubulação interna) do condomínio e\n das unidades cabem à construtora para condomínios com até 5 anos,\n e ao condomínio após este período.\n

\n )}\n\n {complementaryData[\"tipo-vazamento\"] !== null && (\n <>\n

\n Use o campo para detalhar\n

\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n />\n \n )}\n\n
\n \n \n {checked\n ? \"Desselecionar\"\n : haveSubmited\n ? \"Confirmar contratação\"\n : \"Selecionar\"}\n \n
\n (this.billingWarningModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"ok\"}\n >\n Será cobrada a visita no valor de R$ 150,00 e caso seja necessário\n trocar alguma peça fora da garantia, esta também será cobrada.\n \n (this.billingIfEnterWarningModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"ok\"}\n >\n Caso o técnico entre no imóvel, será cobrada a visita no valor de R$\n 150,00 e caso seja necessário trocar alguma peça fora da garantia,\n esta também será cobrada.\n \n (this.legalRepresentantModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"ok\"}\n >\n Você deve procurar o representante legal do condomínio.\n \n (this.priorityModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"ok\"}\n confirmButtonAction={this.generateOrder}\n >\n Sua solicitação será atendida com prioridade. O técnico mais próximo\n será direcionado ao local e prestará o atendimento. A fatura será\n emitida após a visita do técnico.\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(LeakageDetail);\n","import React, { useState } from 'react';\n\nexport const CustomRadio = ({ options, onChange }) => {\n const [selectedOption, setSelectedOption] = useState({});\n\n const handleSelect = (option) => {\n setSelectedOption(option);\n onChange(option)\n };\n\n return (\n
\n {options.map((option) => (\n <>\n handleSelect(option)}\n style={{\n ...styles.circle,\n border: selectedOption.id === option.id ? '6px solid #00c4ff' : '1px solid #929292',\n }}\n />\n handleSelect(option)} style={{ cursor: \"pointer\" }}\n >\n {option.label}\n \n \n ))}\n
\n );\n};\n\nconst styles = {\n container: {\n display: 'flex',\n gap: '10px',\n justifyContent: 'center',\n alignItems: 'center',\n marginTop: '20px',\n },\n circle: {\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n border: '1px solid #929292',\n cursor: 'pointer',\n boxSizing: 'border-box',\n },\n};","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport Select from \"../../../components/Select/Select\";\nimport { Component } from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport { moneyFormat } from \"../../../components/Masks/Masks\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport WarningImage from \"../../../assets/illustrations/warning.png\";\nimport { CustomRadio } from \"../../../components/CustomRadio/customRadio\";\n\nclass TightnessTest extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n haveSubmited: false,\n };\n }\n\n get isValid() {\n const { complementaryData } = this.state;\n\n\n const isCondominiumIsValid = (complementaryData.requestedByCondominium === \"SIM\" && complementaryData.numberOfApartments && complementaryData.numberOfConsumptionPoints ) || complementaryData.requestedByCondominium === \"NÃO\"; \n return (\n complementaryData[\"tipo-prumada\"] !== null &&\n complementaryData[\"suggestedTime\"] !== null &&\n complementaryData[\"suggestedTime\"] !== '' &&\n complementaryData[\"tipo-prumada\"] !== \"Tipos de prumada\" &&\n complementaryData[\"gasPlantHighOrLowPressure\"] !== null &&\n complementaryData[\"internalRegulator\"] !== null &&\n complementaryData[\"measuringBoard\"] !== null &&\n complementaryData[\"requestedByCondominium\"] !== null &&\n isCondominiumIsValid\n );\n }\n\n get initialComplementaryData() {\n return {\n \"tipo-prumada\": null,\n requestedByCondominium: null,\n suggestedTime: null,\n gasPlantHighOrLowPressure: null,\n internalRegulator: null,\n measuringBoard: null,\n numberOfApartments: null,\n numberOfConsumptionPoints: null,\n };\n }\n\n get value() {\n const { complementaryData } = this.state;\n\n if (complementaryData[\"tipo-prumada\"] === \"individual\") {\n return 180;\n } else if (complementaryData[\"tipo-prumada\"] === \"coletiva\") {\n return 712;\n } else {\n return null;\n }\n }\n\n submit = () => {\n const { complementaryData } = this.state;\n\n if ((complementaryData.requestedByCondominium === \"SIM\" && complementaryData.numberOfApartments < 1) || (complementaryData.requestedByCondominium === \"SIM\" && complementaryData.numberOfConsumptionPoints < 1)) {\n return this.props.showToast(\"Ops!\", \"Por favor, informe um número positivo de apartamentos e pontos de consumo.\");\n }\n\n if (complementaryData[\"tipo-prumada\"] === \"indefinido\") {\n this.undefinedModal && this.undefinedModal.open();\n return;\n }\n\n this.setState({ haveSubmited: true }, this.generateOrder);\n };\n\n generateOrder = () => {\n const { onToggle } = this.props;\n this.priorityModal && this.priorityModal.close();\n\n const {\n \"tipo-prumada\": tipoPrumada,\n informacoes,\n requestedByCondominium,\n suggestedTime,\n gasPlantHighOrLowPressure,\n internalRegulator,\n measuringBoard,\n numberOfApartments,\n numberOfConsumptionPoints } = this.state.complementaryData;\n\n onToggle &&\n onToggle({\n informacoes: `A prumada é ${tipoPrumada}\n ${requestedByCondominium ? `O serviço está sendo solicitado por condomínio: ${requestedByCondominium}` : \"\"}\n ${suggestedTime ? `Sugira um horário de atendimento: ${suggestedTime}` : \"\"}\n ${gasPlantHighOrLowPressure ? `A central de gás é de alta ou baixa pressão: ${gasPlantHighOrLowPressure}` : \"\"}\n ${internalRegulator ? `O regulador está interno na residência: ${internalRegulator}` : \"\"}\n ${measuringBoard ? `O quadro de medição está no hall ou área externa: ${measuringBoard}` : \"\"}\n ${numberOfApartments ? `Número de apartamentos: ${numberOfApartments}` : \"\"}\n ${numberOfConsumptionPoints ? `Número de pontos de consumo: ${numberOfConsumptionPoints}` : \"\"}\n ${informacoes ? `Observações: ${informacoes}` : \"\"}`,\n servico: tipoPrumada === \"indefinido\" ? \"Estanqueidade\" : null,\n value: this.value,\n });\n };\n\n handleSelectInfo(field, value) {\n this.setState({ ...this.state, complementaryData: {\n ...this.state.complementaryData,\n [field]: value,\n }})\n }\n\n render() {\n const { complementaryData } = this.state;\n const { checked, onWarranty, rawData, removeServiceSelection } = this.props;\n\n return (\n <>\n \n {rawData.title}\n \n

{rawData.description}

\n\n

\n Por favor, informe qual é o tipo de prumada do seu condomínio.\n

\n \n this.setState({\n complementaryData: {\n ...this.initialComplementaryData,\n \"tipo-prumada\": e.target.value,\n },\n haveSubmited: false,\n })\n }\n disabled={checked}\n />\n
\n\n {complementaryData[\"tipo-prumada\"] === \"individual\" && (\n <>\n

\n O valor cobrado para este serviço é de\n  \n {moneyFormat(this.value)}\n

\n
\n

Prazos

\n

\n \n {rawData.condPagamento && (\n <>\n Prazo para pagamento: {rawData.condPagamento || \"\"}\n
\n \n )}\n {rawData.deadline &&\n `Prazo para atendimento: ${rawData.deadline || \"\"}`}\n
\n

\n

\n Para a sua realização será necessário fechar o registro de gás do\n seu apartamento.\n

\n \n )}\n\n {complementaryData[\"tipo-prumada\"] === \"coletiva\" && (\n <>\n

\n O valor cobrado para este serviço é de\n  \n {moneyFormat(this.value)}\n

\n
\n

Prazos

\n

\n \n {rawData.condPagamento && (\n <>\n Prazo para pagamento: {rawData.condPagamento || \"\"}\n
\n \n )}\n {rawData.deadline &&\n `Prazo para atendimento: ${rawData.deadline || \"\"}`}\n
\n

\n

\n Para a sua realização será necessário fechar o registro de gás do\n seu prédio, portanto sugerimos que entre em contato com o síndico\n ou zelador antes da contratação do serviço.\n

\n \n )}\n\n {complementaryData[\"tipo-prumada\"] === \"indefinido\" && (\n <>\n

\n Para que possamos orçar o serviço, é necessário sabermos o tipo de\n prumada. Neste caso sugerimos que entre em contato com o sindico\n ou zelador do condomínio para que possam lhe orientar\n

\n
\n

Informação Adicional

\n

\n \n O boleto para pagamento será enviado para o e-mail cadastrado,\n após a conclusão do serviço.\n \n

\n \n )}\n\n {complementaryData[\"tipo-prumada\"] &&\n complementaryData[\"tipo-prumada\"] !== \"indefinido\" &&\n complementaryData[\"tipo-prumada\"] !== \"Tipos de prumada\" && (\n <>\n
\n
\n \n Sugira um horário de atendimento\n

\n this.handleSelectInfo(\"suggestedTime\", e.target.value)}\n />\n
\n
\n \n A central de gás é de alta ou baixa pressão?\n

\n this.handleSelectInfo(\"gasPlantHighOrLowPressure\", option.label)}\n options={[\n { id: \"option_1\", label: \"ALTA PRESSÃO\" },\n { id: \"option_2\", label: \"BAIXA PRESSÃO\" },\n ]}\n />\n
\n\n
\n \n O regulador está interno na residência?\n

\n this.handleSelectInfo(\"internalRegulator\", option.label)}\n options={[\n { id: \"option_1\", label: \"SIM\" },\n { id: \"option_2\", label: \"NÃO\" },\n ]}\n />\n
\n\n
\n \n O quadro de medição está no hall ou área externa?\n

\n this.handleSelectInfo(\"measuringBoard\", option.label)}\n options={[\n { id: \"option_1\", label: \"HALL\" },\n { id: \"option_2\", label: \"ÁREA EXTERNA\" },\n ]}\n />\n
\n\n
\n \n O serviço está sendo solicitado por condomínio?\n

\n this.handleSelectInfo(\"requestedByCondominium\", option.label)}\n options={[\n { id: \"option_1\", label: \"SIM\" },\n { id: \"option_2\", label: \"NÃO\" },\n ]}\n />\n
\n\n {complementaryData.requestedByCondominium === \"SIM\" && <>\n
\n \n Número de apartamentos:\n

\n this.handleSelectInfo(\"numberOfApartments\", e.target.value)} />\n
\n\n
\n \n Número de pontos de consumo:\n

\n this.handleSelectInfo(\"numberOfConsumptionPoints\", e.target.value)} />\n
\n }\n
\n

\n Use o campo para detalhar\n

\n this.handleSelectInfo(\"informacoes\", e.target.value)}\n />\n \n )}\n\n \n
\n {complementaryData[\"tipo-prumada\"] !== \"indefinido\" && (\n onWarranty && onWarranty()}\n className=\"inline-link\"\n >\n Termos de garantia\n \n )}\n
\n \n {complementaryData[\"tipo-prumada\"] === null || complementaryData[\"tipo-prumada\"] === 'Tipos de prumada' \n ? \"Selecione o tipo de prumada\"\n : complementaryData[\"tipo-prumada\"] === \"indefinido\"\n ? checked\n ? \"Desselecionar\"\n : \"Selecionar\"\n : !this.isValid ? \"Preencha todos os campos\":\"Confirmar a solicitação do serviço\"}\n \n \n (this.undefinedModal = ref)}\n shown={false}\n title=\"Ops\"\n closeButton={true}\n onClose={() => removeServiceSelection(rawData)}\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={(modal) => {\n modal.close();\n removeServiceSelection(rawData);\n }}\n >\n
\n Para que possamos orçar o serviço, é necessário sabermos o tipo de\n prumada. Neste caso sugerimos que entre em contato com o sindico ou\n zelador do condomínio para que possam lhe orientar.\n
\n
\n \"Modal\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(TightnessTest);\n","import React from \"react\";\nimport moment from \"moment\";\nimport CondominioService from \"./condominio\";\n\nexport default class TicketService {\n static getTicketStatus(ticketData) {\n if (!ticketData) return null;\n\n var status = \"\";\n var dateNow = moment();\n var dateVencimento = \"\";\n\n if ((ticketData.Duplicatas || []).length) {\n const duplicata = ticketData.Duplicatas.find((duplicata) => duplicata.serie === ticketData.serie);\n \n if(!duplicata) return;\n\n status = duplicata[\"situacao\"];\n dateVencimento = moment(duplicata[\"dt-venc\"]);\n }\n\n if (ticketData[\"dt-cancela\"] !== null) return \"cancel\";\n else if (status === \"Quitado\") return \"paid\";\n else if (status === \"Aberto\" && dateVencimento.isSameOrBefore(dateNow))\n return \"outdated\";\n else if (status === \"Aberto\") return \"avencer\";\n else return \"open\";\n }\n\n static getTicketBadge(ticketData) {\n return {\n paid: Nota fiscal paga,\n outdated: Nota fiscal vencida,\n open: Aguardando pagamento,\n avencer: Nota fiscal a vencer,\n cancel: (\n Nota fiscal cancelada/devolvida\n ),\n }[TicketService.getTicketStatus(ticketData)];\n }\n\n static getValidTickets(tickets) {\n if (!tickets) return null;\n return tickets.filter((i) => i[\"tt-dados-gerais\"] !== undefined);\n }\n\n static getNextDelivery(itCodigo) {\n if (!CondominioService.selectAll) {\n const selectedDeliveryPlace = CondominioService.selected;\n\n if (!selectedDeliveryPlace) return null;\n\n var itens = selectedDeliveryPlace[\"Itens\"];\n\n if ((itens || []).length)\n for (const item of itens) {\n if ((!itCodigo || item['it-codigo'] === itCodigo) && item[\"dt-prox-entrega\"]) return item;\n }\n }\n return null;\n }\n\n static getNextDeliveryFromAddress(address) {\n if (!address) return;\n var itens = address[\"Itens\"];\n if ((itens || []).length) {\n for (const item of itens) {\n if (item[\"dt-prox-entrega\"]) return item;\n }\n }\n }\n\n static getConsumptionValues(ticketData, verifica) {\n var vlunit = \"\";\n var qt = \"\";\n var dateVencimento = \"\";\n var nameItem = [];\n var unidade = \"\";\n\n if ((ticketData.Itens || []).length) {\n const item = ticketData.Itens[0];\n vlunit = item[\"vl-preuni\"];\n qt = item[\"qt-faturada\"];\n nameItem = item[\"desc-item\"];\n unidade = item[\"un\"];\n }\n\n if ((ticketData.Duplicatas || []).length) {\n const duplicata = ticketData.Duplicatas[0];\n dateVencimento = moment(duplicata[\"dt-venc\"]).format(\"DD/MM/YYYY\");\n }\n\n if (verifica === \"unitario\") return vlunit;\n else if (verifica === \"quantidade\") return qt;\n else if (verifica === \"vencimento\") return dateVencimento;\n else if (verifica === \"itens\") return nameItem;\n else if (verifica === \"un\") return unidade;\n }\n}\n","import React from \"react\";\nimport apiContext from \"../../api\";\nimport { Component } from \"react\";\n\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport Card from \"../../components/Card/Card\";\nimport Modal from \"../../components/Modal/Modal\";\nimport CondominioService from \"../../services/condominio\";\nimport ClienteService from \"../../services/cliente\";\nimport Search from \"../../components/Search/Search\";\nimport { IconHome } from \"../../components/Icons/Icons\";\nimport TicketService from \"../../services/ticket\";\nimport moment from \"moment\";\n\nclass selectAddressList extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n addressList: [],\n selectedAddress: \"\",\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n isDenied: false,\n outdatedTickets: [],\n verifyStatus: [],\n complementaryData: [],\n };\n }\n\n componentDidMount() {\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n const { endereco } = CondominioService.selected || {};\n const dataFim = moment().startOf(\"month\").format(\"YYYY/MM/DD\");\n const dataIni = moment()\n .subtract(1, \"year\")\n .endOf(\"month\")\n .format(\"YYYY/MM/DD\");\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ)\n .then(ClienteService.consultaLocalEntregaApiParser)\n .then(({ Cliente }) => {\n if (Cliente) {\n this.props.dismissLoading();\n this.setState({\n addressList: Cliente.ClienteRetorno[0].ClienteEntrRetorno,\n });\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState({}, () => this.props.showToast(\"Ops!\", errorDescription));\n });\n\n this.context.ConsigazApi.memConsultaNotaFiscal(\n CPFCNPJ,\n dataIni,\n dataFim\n ).then(({ Notas }) => {\n if (Notas && Notas.NotasFiscais && Notas.NotasFiscais.length) {\n const tickets = Notas.NotasFiscais.filter((ticket) => {\n if (endereco) return ticket[\"endereco\"] === endereco;\n return true;\n });\n if (tickets && tickets.length) {\n this.setState({\n outdatedTickets: tickets.filter(\n (i) => TicketService.getTicketStatus(i) === \"outdated\"\n ),\n });\n }\n }\n });\n }\n\n isSelected = (address) =>\n address[\"cod-condominio\"] ===\n this.state.selectedCondominio[\"cod-condominio\"] &&\n address[\"local-entrega\"] === this.state.selectedCondominio[\"local-entrega\"];\n\n iscomplementaryData = (address) => {\n const { complementaryData } = this.state;\n const { addressList } = this.state;\n if (\n (complementaryData.indexOf(address) > -1 &&\n complementaryData.length !== addressList.length) ||\n (address === \"all\" && complementaryData.length === addressList.length)\n )\n return true;\n };\n\n getAddressStyleName = (address) => {\n const { cardClass } = this.props;\n\n if (\n (cardClass === \"service\" && this.iscomplementaryData(address)) ||\n (cardClass !== \"service\" && this.isSelected(address))\n )\n return \"primary\";\n else return \"ontlineSecondary\";\n };\n\n selectCondominio = (address, qntd) => {\n const { complementaryData, outdatedTickets } = this.state;\n const { cardClass, service } = this.props;\n const verifyStatus =\n cardClass !== \"service\"\n ? outdatedTickets &&\n outdatedTickets.filter(\n (i) => address[\"endereco\"].indexOf(i[\"endereco\"]) > -1\n )\n : {};\n\n if (cardClass !== \"service\") {\n CondominioService.selected = address;\n this.setState({\n complementaryData: {\n ...complementaryData,\n address: address,\n },\n selectedCondominio: address,\n });\n } else if (qntd !== \"all\") {\n address[\"idservice\"] = service.service;\n address[\"price\"] = service.price;\n address[\"codMotivo\"] = service.codMotivo;\n address[\"nrAcordoComercial\"] = service.nrAcordoComercial;\n if (complementaryData.indexOf(address) === -1)\n this.setState({\n complementaryData: [...complementaryData, address],\n });\n else\n this.setState({\n complementaryData: complementaryData.filter((un) => un !== address),\n });\n } else {\n address &&\n address\n .filter((addr) => addr.situacao !== 2)\n .map((address) => {\n address[\"idservice\"] = service.service;\n address[\"price\"] = service.price;\n address[\"codMotivo\"] = service.codMotivo;\n address[\"nrAcordoComercial\"] = service.nrAcordoComercial;\n return address;\n });\n if (complementaryData.length === 0)\n this.setState({\n complementaryData: address,\n });\n if (complementaryData.indexOf(address) > -1)\n this.setState({\n complementaryData: [],\n });\n else complementaryData.push(address);\n }\n if (\n cardClass !== \"service\" &&\n (address.situacao === 2 || (address.credito || '').toLowerCase() === 'suspenso')\n )\n this.modalDenied && this.modalDenied.open();\n\n return verifyStatus;\n };\n\n onSubmit = () => {\n const { onSubmit, cardClass } = this.props;\n const {\n complementaryData: { address },\n complementaryData,\n } = this.state;\n if (\n cardClass !== \"service\" &&\n (address.situacao === 2 || (address.credito || '').toLowerCase() === 'suspenso')\n ) {\n this.modalDenied && this.modalDenied.close();\n } else if (cardClass !== \"service\") {\n onSubmit && onSubmit(address);\n } else {\n onSubmit && onSubmit(complementaryData);\n }\n };\n\n render() {\n const {\n addressList,\n selectedAddress,\n selectedCondominio,\n } = this.state;\n const { cardClass } = this.props;\n const { segmento } = ClienteService.localEntrega;\n\n const addressFilter = addressList.filter((address) => {\n if (selectedCondominio === \"all\") return address[\"situacao\"] !== 2;\n if (selectedAddress !== \"\")\n return address[\"endereco\"].indexOf(selectedAddress.toUpperCase()) > -1;\n else return address;\n });\n\n return (\n <>\n
\n

Meus locais de entrega

\n

\n Selecione um endereço para efetuar a contratação do serviço.\n

\n this.setState({ selectedAddress: e.target.value })}\n >\n \n {segmento === \"INDUSTRIAL\" && cardClass === \"service\" && (\n {\n this.selectCondominio(addressList, \"all\");\n }}\n >\n
\n \n
\n

Selecionar TODOS os meus endereços

\n
\n
\n \n )}\n {addressFilter &&\n addressFilter.map((address) => (\n {\n this.selectCondominio(address);\n }}\n style={{ height: 100 }}\n >\n
\n \n
\n

{address[\"nome-condominio\"]}

\n

{address.endereco}

\n

{`${address.cidade} / ${address.estado}`}

\n
\n
\n \n ))}\n \n
\n \n Avançar\n \n
\n\n (this.modalDenied = ref)}\n shown={false}\n title=\"Fique Atento!\"\n confirmButton={true}\n confirmButtonText=\"OK\"\n confirmButtonAction={() => {\n this.onSubmit();\n }}\n >\n
\n {selectedCondominio[\"situacao\"] !== 2\n ? \"Cadastro bloqueado para abastecimento. Para restabelecer o fornecimento, efetue o pagamento das faturas atrasadas.\"\n : \"Este local de entrega está bloqueado para abastecimento. Para restabelecer o fornecimento, clique aqui e solicite a reativação do seu cadastro.\"}\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(selectAddressList);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport WarningImage from \"../../../assets/illustrations/warning.png\";\nimport { moneyFormat } from \"../../../components/Masks/Masks\";\nimport SelectAddressList from \"../SelectAddressList\";\nimport CondominioService from \"../../../services/condominio\";\n\nclass IndustrialTightnessTest extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n haveSubmited: false,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n get isValid() {\n const { complementaryData } = this.state;\n return (\n complementaryData[\"tipo-teste\"] !== null &&\n complementaryData[\"tipo-teste\"] !== \"indefinido\"\n );\n }\n\n get initialComplementaryData() {\n return {\n \"tipo-teste\": null,\n \"local-teste\": null,\n tipoSelecionado: null,\n };\n }\n\n get value() {\n const { complementaryData } = this.state;\n\n if (complementaryData[\"tipo-teste\"] === \"teste-e-laudo\") {\n return 2312.96;\n } else if (complementaryData[\"tipo-teste\"] === \"teste-estanqueidade\") {\n return 810.96;\n } else {\n return null;\n }\n }\n\n submit = () => {\n const { complementaryData } = this.state;\n const { checked } = this.props;\n\n if (!checked) {\n if (\n complementaryData[\"tipo-teste\"] !== null &&\n complementaryData[\"tipo-teste\"] !== \"indefinido\"\n ) {\n this.localModal && this.localModal.open();\n return;\n }\n }\n\n this.setState({ haveSubmited: true }, this.generateOrder);\n };\n\n generateOrder = () => {\n const {\n complementaryData: { \"tipo-teste\": tipoTeste, \"local-teste\": localTeste, informacoes },\n selectedCondominio,\n selectedAddress,\n } = this.state;\n const { onToggle } = this.props;\n\n if (selectedCondominio === \"all\") {\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedAddress.push(teste)\n );\n CondominioService.selectMany = selectedAddress;\n } else CondominioService.selectMany = selectedAddress;\n }\n this.setState({ haveSubmited: false });\n\n onToggle &&\n onToggle({\n informacoes: `Tipo: ${tipoTeste}. ${informacoes || \"\"};\\n Local: ${localTeste}`,\n value: this.value,\n });\n };\n\n render() {\n const { complementaryData, haveSubmited, selectedCondominio } = this.state;\n const { checked, onWarranty, rawData } = this.props;\n\n return (\n <>\n {selectedCondominio === \"all\" && haveSubmited === true && (\n <>\n \n this.setState(\n {\n selectedAddress: address,\n },\n () => this.generateOrder()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n )}\n {haveSubmited === false && (\n <>\n \n {rawData.title}\n \n

{rawData.description}

\n\n

\n Por favor, nos informe o tipo de teste que será realizado.\n

\n \n \n\n \n \n\n
\n\n {complementaryData.tipoSelecionado && (\n <>\n

\n Use o campo para detalhar\n

\n\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n />\n \n )}\n\n
\n\n \n
\n {complementaryData[\"tipo-teste\"] !== \"indefinido\" && (\n onWarranty && onWarranty()}\n className=\"inline-link\"\n >\n Termos de garantia\n \n )}\n
\n \n {checked\n ? \"Desselecionar\"\n : haveSubmited\n ? \"Confirmar a solicitação do serviço\"\n : \"Selecionar\"}\n \n \n \n )}\n (this.localModal = ref)}\n shown={false}\n title=\"Nos informe\"\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Confirmar\"\n confirmButtonAction={(modal) => {\n modal.close();\n this.serviceValueModal && this.serviceValueModal.open();\n }}\n >\n

Onde será o local que será realizado o teste?

\n
\n \n \n \n
\n \n (this.serviceValueModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"Confirmar\"}\n confirmButtonAction={(modal) => {\n modal.close();\n if (selectedCondominio !== \"all\") this.generateOrder();\n else this.setState({ haveSubmited: true });\n }}\n >\n O valor dos serviços é de {moneyFormat(this.value)}{\" \"}\n por local de entrega.\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(IndustrialTightnessTest);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport WarningImage from \"../../../assets/illustrations/warning.png\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\n\nimport \"./ServiceDetail.scss\";\n\nclass RegulationDetail extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n };\n }\n\n get initialComplementaryData() {\n return {\n isReady: null,\n };\n }\n\n submit = () => {\n const { complementaryData } = this.state;\n const { checked } = this.props;\n\n if (!checked) {\n // if (complementaryData[\"tipo-vazamento\"] === \"Desconhecido\") {\n // if (!haveSubmited) {\n // this.billingIfEnterWarningModal &&\n // this.billingIfEnterWarningModal.open();\n // this.setState({ haveSubmited: true });\n // return;\n // } else {\n // this.priorityModal && this.priorityModal.open();\n // return;\n // }\n // }\n }\n\n if (complementaryData.isReady === false) {\n this.assistanceModal && this.assistanceModal.open();\n } else {\n this.confirmationModal && this.confirmationModal.open();\n }\n };\n\n generateOrder = () => {\n const {\n complementaryData: { isReady, informacoes },\n } = this.state;\n const { onToggle } = this.props;\n\n this.priorityModal && this.priorityModal.close();\n onToggle &&\n onToggle({\n informacoes: `O fogão ${\n isReady ? \"está\" : \"não está\"\n } preparado para GLP. ${informacoes}`,\n });\n };\n\n render() {\n const { complementaryData } = this.state;\n const { checked, onWarranty, rawData } = this.props;\n\n return (\n <>\n

{rawData.title}

\n

\n \n Os registros interno e externo (próximo ao medidor) estão abertos?\n \n

\n

\n Observe a imagem abaixo e verifique se os seus registros estão abertos\n . Caso não estejam, você poderá abri-los.\n

\n\n {rawData.image && (\n \n )}\n\n

\n O seu fogão está preparado para a utilização do GLP?\n

\n\n \n \n\n

\n Caso o seu fogão tenha sido convertido para a utilização de gás\n natural, será necessário contatar uma assistência técnica\n especializada para desfazê-la.\n

\n\n {complementaryData.isReady && (\n <>\n

\n Use o campo para detalhar\n

\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n />\n \n )}\n\n
\n \n \n {checked ? \"Desselecionar\" : \"Selecionar\"}\n \n
\n (this.assistanceModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n closeButton={true}\n confirmButton={true}\n confirmButtonText={\"ok\"}\n >\n Neste caso será necessário que você contrate uma assistência técnica\n especializada.\n \n (this.confirmationModal = ref)}\n title=\"Ordem de Serviço\"\n imgSrc={WarningImage}\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Confirmar\"\n confirmButtonAction={(modal) => {\n modal.close();\n this.generateOrder();\n }}\n declineButton={true}\n declineButtonText=\"Desistir da contratação\"\n >\n Será aberta uma ordem de serviço.\n
    \n
  • O serviço na parte externa é gratuito.
  • \n
  • \n O morador deve estar no apartamento para atestar se o serviço foi\n executado corretamente.\n
  • \n
  • \n Caso haja necessidade de uma vistoria técnica dentro do\n apartamento, será cobrada uma taxa de R$ 150,00\n
  • \n
\n Ao confirmar você está autorizando a cobrança do serviço!\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(RegulationDetail);\n","import React, { Component } from \"react\";\nimport apiContext from \"../../../api\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport WarningImage from \"../../../assets/illustrations/warning.png\";\n\nimport \"./ServiceDetail.scss\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport { redirect } from \"../../../components/Page/Page\";\n\nclass MeterChangeDetail extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n };\n }\n\n get initialComplementaryData() {\n return {\n foiNotificado: null,\n informacoes: \"\",\n };\n }\n\n submit = () => {\n let {\n complementaryData: { foiNotificado, informacoes },\n } = this.state;\n const { onToggle } = this.props;\n\n if (foiNotificado === true)\n informacoes = `O usuário foi notificado sobre problemas no medidor. ${informacoes}`;\n if (foiNotificado === false)\n informacoes = `O usuário não foi notificado sobre problemas no medidor. ${informacoes}`;\n\n onToggle &&\n onToggle({\n informacoes,\n });\n };\n\n render() {\n const { complementaryData } = this.state;\n const { rawData, image, onWarranty, checked } = this.props;\n\n return (\n <>\n

{rawData.title}

\n

{rawData.description}

\n\n {image && (\n \n )}\n\n

\n Use o campo para detalhar\n

\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n />\n\n
\n
\n\n

\n Você foi notificado sobre problemas no medidor?\n

\n \n \n\n
\n \n {\n if (checked) {\n this.submit();\n } else {\n if (complementaryData.foiNotificado === true)\n this.confirmationModal && this.confirmationModal.open();\n else\n this.meterInstallationModal &&\n this.meterInstallationModal.open();\n }\n }}\n >\n {checked ? \"Desselecionar\" : \"Selecionar\"}\n \n
\n (this.meterInstallationModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Fale conosco\"\n confirmButtonAction={(modal) => {\n modal.close();\n redirect(this.props, \"help\");\n }}\n >\n Neste caso será necessário contratar o serviço de instalação de\n medidor ou entrar em contato com a nossa central de atendimento.\n \n (this.confirmationModal = ref)}\n title=\"Confirmar?\"\n imgSrc={WarningImage}\n closeButton={true}\n confirmButton={true}\n confirmButtonText={\"Confirmar\"}\n confirmButtonAction={(modal) => {\n modal.close();\n this.submit();\n }}\n declineButton={true}\n declineButtonText=\"Desistir\"\n >\n Sua solicitação será encaminhada ao responsável para análise.\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(MeterChangeDetail);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport { maskCpfCnpj, validateCpfCnpj } from \"../../../components/Masks/Masks\";\nimport CondominioService from \"../../../services/condominio\";\nimport SelectAddressList from \"../SelectAddressList\";\n\nclass ChangeDataDetail extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n selectedData: [],\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n isCpfCnpjValid: false,\n haveSubmited: false,\n };\n }\n\n get initialComplementaryData() {\n return {\n cpfcnp: null,\n name: null,\n inscricao: null,\n endereco: null,\n };\n }\n\n submit = () => {\n const { complementaryData, isCpfCnpjValid, selectedData } = this.state;\n if (\n complementaryData &&\n complementaryData.informacoes &&\n complementaryData.informacoes.length\n ) {\n if (\n selectedData.map((data) => data.indexOf(\"cnpj\")) > -1 &&\n isCpfCnpjValid === false\n )\n this.props.showToast(\"Ops!\", \"Insira um CPF/CNPJ válido!\");\n else {\n this.generateOrder();\n this.setState({ haveSubmited: true });\n }\n } else {\n this.assistanceModal && this.assistanceModal.open();\n }\n };\n\n generateOrder = () => {\n const {\n complementaryData: { cpfcnp, endereco, name, inscricao, informacoes },\n complementaryData,\n selectedCondominio,\n selectedAddress,\n } = this.state;\n const { onToggle } = this.props;\n if (selectedCondominio === \"all\") {\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedAddress.push(teste)\n );\n CondominioService.selectMany = selectedAddress;\n } else CondominioService.selectMany = selectedAddress;\n }\n this.setState({ haveSubmited: false });\n\n var newInfos = \"\";\n if (cpfcnp) newInfos += `Novo CNPJ: ${cpfcnp}\\n `;\n if (endereco) newInfos += `Novo Endereço: ${endereco}\\n `;\n if (name) newInfos += `Nova Razão social / Nome: ${name}\\n `;\n if (inscricao) newInfos += `Nova Inscrição Estadual: ${inscricao}\\n `;\n\n newInfos += `Detalhes: ${informacoes || \"\"}`;\n\n onToggle &&\n onToggle({\n complementaryData,\n informacoes: newInfos,\n });\n };\n\n toggleData(data) {\n const { selectedData } = this.state;\n\n if (selectedData.indexOf(data) === -1)\n this.setState({ selectedData: [...selectedData, data] });\n else\n this.setState({\n selectedData: selectedData.filter((un) => un !== data),\n });\n }\n\n handleCpfcnpjChange = (e) => {\n const { complementaryData } = this.state;\n const maskedCpfcnpj = maskCpfCnpj(e.target.value);\n\n this.setState({\n complementaryData: {\n ...complementaryData,\n cpfcnp: maskedCpfcnpj,\n },\n isCpfCnpjValid: validateCpfCnpj(maskedCpfcnpj),\n });\n };\n\n render() {\n const {\n complementaryData,\n selectedData,\n selectedCondominio,\n haveSubmited,\n } = this.state;\n const { checked, rawData } = this.props;\n\n return (\n <>\n {selectedCondominio === \"all\" && haveSubmited === true && (\n <>\n \n this.setState(\n {\n selectedAddress: address,\n },\n () => this.generateOrder()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n )}\n {haveSubmited === false && (\n <>\n

{rawData.title}

\n\n

{rawData.description}

\n

\n qual tipo de alteração deseja fazer?\n

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

\n

\n Use o campo para detalhar\n

\n\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n disabled={checked}\n />\n \n
\n {\n !checked ? this.submit() : this.generateOrder();\n }}\n disabled={selectedData.length === 0}\n >\n {checked ? \"Desselecionar\" : \"Selecionar\"}\n \n
\n \n )}\n (this.assistanceModal = ref)}\n title=\"OPS!\"\n closeButton={true}\n confirmButton={true}\n confirmButtonText={\"ok\"}\n >\n

\n É necessário que descreva o motivo das alterações solicitadas.\n

\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(ChangeDataDetail);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport Select from \"../../../components/Select/Select\";\nimport { IconCheck } from \"../../../components/Icons/Icons\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport WarningImage from \"../../../assets/illustrations/warning.png\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport moment from \"moment\";\nimport \"./ServiceDetail.scss\";\nimport Card from \"../../../components/Card/Card\";\nimport TicketService from \"../../../services/ticket\";\nimport { redirect } from \"../../../components/Page/Page\";\nimport SelectAddressList from \"../SelectAddressList\";\nimport CondominioService from \"../../../services/condominio\";\n\nclass IndustrialLeakageDetail extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n informationCilindro: this.initialInformationCilindro,\n haveSubmited: false,\n flagModel: true,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n get initialComplementaryData() {\n return {\n \"local-vazamento\": false,\n informacoes: \"\",\n \"vl-servico\": \"\",\n };\n }\n\n get initialInformationCilindro() {\n return {\n comodatado: \"\",\n selectedModel: [],\n quantCilindros: \"\",\n acceptNextDelivery: null,\n };\n }\n\n get isSubmitButtonDisabled() {\n const { complementaryData, informationCilindro } = this.state;\n return (\n complementaryData[\"local-vazamento\"] === false ||\n complementaryData[\"local-vazamento\"] === \"Não selecionado\" ||\n (informationCilindro[\"selectedModel\"].length > 0 &&\n informationCilindro[\"acceptNextDelivery\"] === \"\") ||\n (complementaryData[\"local-vazamento\"] === \"Interno\" &&\n complementaryData[\"informacoes\"] === \"\") ||\n complementaryData[\"local-vazamento\"] === \"Prumada\" ||\n (complementaryData[\"local-vazamento\"] === \"Cilindro\" &&\n !informationCilindro[\"comodatado\"])\n );\n }\n\n toggleModel(model) {\n const { informationCilindro } = this.state;\n const { selectedModel } = informationCilindro;\n\n if (informationCilindro[\"selectedModel\"].indexOf(model) === -1)\n this.setState({\n informationCilindro: {\n ...informationCilindro,\n selectedModel: [...selectedModel, model],\n },\n });\n else\n this.setState({\n informationCilindro: {\n ...informationCilindro,\n selectedModel: selectedModel.filter((un) => un !== model),\n },\n });\n }\n\n submit = () => {\n const {\n complementaryData,\n informationCilindro,\n checked,\n selectedCondominio,\n } = this.state;\n\n if (complementaryData[\"local-vazamento\"] === \"Interno\") {\n this.internModal && this.internModal.open();\n return;\n }\n\n complementaryData[\"vl-servico\"] = this.value;\n\n if (complementaryData[\"local-vazamento\"] === \"Cilindro\") {\n complementaryData[\"informacoes\"] = `\n Possui cilindro comodatado: ${informationCilindro[\"comodatado\"] || \"\"}\n A troca pode ser realizada na proxima entrega: ${\n informationCilindro[\"acceptNextDelivery\"] || \"\"\n }\n Modelo do cilindro: ${(informationCilindro[\"selectedModel\"] || []).join(\n \", \"\n )}\n Quantidade de cilindros: ${informationCilindro[\"quantCilindros\"] || \"\"}\n `;\n }\n\n if (!checked) {\n if (!checked && complementaryData[\"local-vazamento\"] === \"Interno\") {\n this.priorityModal && this.priorityModal.open();\n return;\n } else if (\n complementaryData[\"local-vazamento\"] === \"Cilindro\" &&\n informationCilindro[\"acceptNextDelivery\"] === \"nao\"\n ) {\n this.faleConoscoModal && this.faleConoscoModal.open();\n return;\n } else if (\n complementaryData[\"local-vazamento\"] === \"Cilindro\" &&\n informationCilindro[\"comodatado\"] === \"nao\" &&\n !informationCilindro[\"acceptNextDelivery\"]\n ) {\n this.verifyOriginModal && this.verifyOriginModal.open();\n return;\n } else if (\n complementaryData[\"local-vazamento\"] === \"Cilindro\" &&\n informationCilindro[\"comodatado\"] === \"sim\" &&\n !informationCilindro[\"acceptNextDelivery\"]\n ) {\n this.informModelModal && this.informModelModal.open();\n return;\n }\n }\n this.setState({ haveSubmited: true });\n selectedCondominio !== \"all\" && this.generateOrder();\n };\n\n get value() {\n const {\n complementaryData: { \"local-vazamento\": localVazamento },\n } = this.state;\n const { rawData } = this.props;\n if (localVazamento) return rawData.priceConditional;\n return null;\n }\n\n generateOrder = () => {\n const {\n complementaryData: {\n \"local-vazamento\": localVazamento,\n informacoes,\n \"vl-servico\": vlservico,\n },\n selectedCondominio,\n selectedAddress,\n } = this.state;\n\n if (selectedCondominio === \"all\") {\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedAddress.push(teste)\n );\n CondominioService.selectMany = selectedAddress;\n } else CondominioService.selectMany = selectedAddress;\n }\n\n const { onToggle } = this.props;\n this.setState({ haveSubmited: false });\n onToggle &&\n onToggle({\n localVazamento,\n informacoes,\n vlservico,\n });\n };\n\n render() {\n const {\n complementaryData,\n informationCilindro,\n haveSubmited,\n selectedCondominio,\n } = this.state;\n const { checked, onWarranty, rawData, showToast } = this.props;\n\n const nextDelivery = TicketService.getNextDelivery();\n\n return (\n <>\n {selectedCondominio === \"all\" && haveSubmited === true && (\n <>\n \n this.setState(\n {\n selectedAddress: address,\n },\n () => this.generateOrder()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n )}\n\n {haveSubmited === false && (\n <>\n

{rawData.title}

\n {[\n \"Feche o registro de gás.\",\n \"Afaste as pessoas do local.\",\n \"Não acione interruptores de eletricidade.\",\n \"Não fume nem acenda fósforos ou isqueiros.\",\n \"Abra portas e janelas.\",\n \"Em casos mais graves também entre em contato com o Corpo de Bombeiros (193)\",\n ].map((item, idx) => (\n \n {item}\n

\n ))}\n\n \n this.setState({\n complementaryData: {\n ...this.initialComplementaryData,\n \"local-vazamento\": e.target.value,\n },\n haveSubmited: false,\n })\n }\n disabled={checked}\n />\n
\n {(((complementaryData[\"local-vazamento\"] === \"Tanque\" && haveSubmited !== true) || complementaryData[\"local-vazamento\"] === \"Desconhecido\")) &&\n this.priorityModal &&\n this.priorityModal.open()}\n\n {complementaryData[\"local-vazamento\"] === \"Interno\" && (\n <>\n \n informe qual é a unidade consumidora que precisa do\n atendimento:\n \n
\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n disabled={checked}\n />\n \n )}\n\n {!checked &&\n complementaryData[\"local-vazamento\"] === \"Prumada\" &&\n this.prumadaModal &&\n this.prumadaModal.open()}\n\n {complementaryData[\"local-vazamento\"] === \"Cilindro\" && (\n <>\n

\n Você possui cilindro comodatado?\n

\n \n \n )}\n
\n\n {complementaryData[\"informacoes\"] &&\n informationCilindro[\"selectedModel\"].length > 0 && (\n <>\n

\n \n A troca pode ser realizada junto com a sua próxima\n entrega?\n \n

\n \n

Data da entrega:

\n \n {nextDelivery !== null &&\n moment(\n nextDelivery[\"dt-prox-entrega\"],\n \"YYYY-MM-DD\"\n ).format(\"DD/MM/YYYY\")}\n \n \n \n \n )}\n\n
\n \n this.submit()}\n disabled={this.isSubmitButtonDisabled}\n >\n {checked\n ? \"Desselecionar\"\n : complementaryData[\"local-vazamento\"] === \"Cilindro\" &&\n informationCilindro[\"selectedModel\"].length === 0\n ? \"Avançar\"\n : \"Selecionar\"}\n \n
\n \n )}\n\n (this.informModelModal = ref)}\n title=\"Nos informe\"\n confirmButton={true}\n confirmButtonText={\"ok\"}\n confirmButtonAction={() =>\n informationCilindro[\"selectedModel\"].length > 0\n ? informationCilindro[\"quantCilindros\"] !== \"\"\n ? this.informModelModal.close()\n : showToast(\n \"Ops\",\n \"Você precisa informar a quantidade de cilindros para continuar.\"\n )\n : showToast(\n \"Ops\",\n \"Você precisa informar ao menos um modelo para continuar.\"\n )\n }\n >\n Modelo do Cilindro\n
\n \n \n \n \n this.setState({\n informationCilindro: {\n ...informationCilindro,\n quantCilindros: e.target.value,\n },\n })\n }\n disabled={checked}\n />\n \n\n (this.verifyOriginModal = ref)}\n title=\"Fique atento!\"\n confirmButton={true}\n confirmButtonText={\"Sim\"}\n confirmButtonAction={() => {\n this.informModelModal && this.informModelModal.open();\n this.verifyOriginModal && this.verifyOriginModal.close();\n }}\n declineButton={true}\n declineButtonAction={() => {\n this.failModal && this.failModal.open();\n this.verifyOriginModal && this.verifyOriginModal.close();\n }}\n declineButtonText={\"Não\"}\n >\n

\n O cilindro (botijão) é da nossa marca?\n

\n \n\n (this.failModal = ref)}\n title=\"Fique atento!\"\n confirmButton={true}\n confirmButtonText={\"Ok\"}\n confirmButtonAction={() => {\n this.failModal && this.failModal.close();\n this.setState({\n flagModel: false,\n });\n }}\n >\n

\n A troca não poderá ser realizada. Por favor, entre em contato com o\n fornecedor do cilindro.\n

\n \n\n (this.priorityModal = ref)}\n title={\n complementaryData[\"local-vazamento\"] === \"Interno\"\n ? \"Prioridade!\"\n : \"Confirmar?\"\n }\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"Confirmar\"}\n confirmButtonAction={() =>\n selectedCondominio !== \"all\"\n ? this.submit()\n : this.setState(\n { haveSubmited: true },\n this.priorityModal && this.priorityModal.close()\n )\n }\n >\n {complementaryData[\"local-vazamento\"] === \"Interno\" ? (\n <>\n
\n

\n Solicitação com prioridade.\n

\n

\n O técnico mais próximo será direcionado ao local para prestar\n este atendimento.\n

\n \n ) : (\n

\n Sua solicitação será atendida com prioridade. O técnico mais\n próximo será direcionado ao local e prestará o atendimento.\n

\n )}\n \n\n (this.internModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"Confirmar visita técnica\"}\n confirmButtonAction={(modal) => {\n modal.close();\n this.priorityModal && this.priorityModal.open();\n }}\n >\n

\n A Consigaz não realiza manutenção em equipamentos domésticos como\n por exemplo fogões, chuveiros e aquecedores. Caso o problema seja em\n algum desses equipamentos, procure a assistência técnica dos mesmos.\n Para realizarmos a visita técnica dentro da unidade consumidora é\n cobrado o valor de R$150,00 e o prazo de pagamento\n de até 30 dias.\n

\n \n\n (this.prumadaModal = ref)}\n title=\"Fique atento!\"\n confirmButton={true}\n confirmButtonText={\"ok\"}\n >\n

\n Não realizamos reparos na prumada (tubulação) do condomínio e das\n unidades consumidoras.
\n Caso o condomínio ainda esteja dentro da garantia, entre em contato\n com a construtora. Caso o prazo de garantia tenha expirado, contate\n uma assistência técnica especializada.\n {/* Enviaremos uma ocorrência ao setor responsável para que tome conhecimento do caso. */}\n

\n \n\n (this.faleConoscoModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"Fale conosco\"}\n confirmButtonAction={() => redirect(this.props, \"/help\")}\n >\n

\n Por favor, entre em contato com a nossa central de atendimento ao\n cliente.\n

\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(IndustrialLeakageDetail);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport SelectAddressList from \"../SelectAddressList\";\nimport CondominioService from \"../../../services/condominio\";\nimport { timeFormat } from \"../../../components/Masks/Masks\";\nclass TechnicalReport extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n haveSubmited: false,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n get initialComplementaryData() {\n return {\n informacoes: null,\n horario: \"\",\n };\n }\n\n submit = () => {\n const { selectedCondominio } = this.state;\n this.confirmModal && this.confirmModal.close();\n this.setState({ haveSubmited: true });\n selectedCondominio !== \"all\" && this.generateOrder();\n };\n\n get value() {\n return null;\n }\n\n generateOrder = () => {\n const {\n complementaryData: { informacoes, horario },\n selectedCondominio,\n } = this.state;\n const { onToggle } = this.props;\n\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedCondominio.push(teste)\n );\n CondominioService.selectMany = selectedCondominio;\n } else CondominioService.selectMany = selectedCondominio;\n\n this.setState({ haveSubmited: false });\n\n onToggle &&\n onToggle({\n informacoes,\n horario,\n value: this.value,\n });\n };\n\n handleTimeChange = (e) => {\n const timeMask = timeFormat(e.target.value);\n const { complementaryData } = this.state;\n\n this.setState({\n complementaryData: {\n ...complementaryData,\n horario: timeMask,\n },\n });\n };\n\n render() {\n const { complementaryData, selectedCondominio, haveSubmited } = this.state;\n const { checked, onWarranty, rawData } = this.props;\n\n return (\n <>\n {selectedCondominio === \"all\" && haveSubmited === true && (\n <>\n \n this.setState(\n {\n selectedCondominio: address,\n },\n () => this.generateOrder()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n )}\n {haveSubmited === false && (\n <>\n

{rawData.title}

\n

{rawData.description}

\n \n
\n

\n {\" \"}\n O valor cobrado para este serviço é de\n

\n\n

R$1.502,00

\n
\n \n
\n \n {\n checked\n ? this.submit()\n : this.confirmModal && this.confirmModal.open();\n }}\n // disabled={!this.isValid}\n >\n {checked ? \"Desselecionar\" : \"Selecionar\"}\n \n
\n \n )}\n\n (this.confirmModal = ref)}\n title=\"Confirmar?\"\n confirmButton={true}\n confirmButtonText={\"Confirmar\"}\n confirmButtonAction={() =>\n complementaryData.informacoes && complementaryData.horario\n ? this.submit()\n : this.props.showToast(\"OPS!\", \"Preencha todas as informações.\")\n }\n >\n

\n Para este serviço será cobrado o valor de R$1.502,00.
\n Confirma a solicitação?\n

\n
\n Use o campo para detalhar o motivo\n
\n
\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n >\n
\n
\n \n Sugira um horário entre 08:00 e 17:00 para a execução do serviço\n \n
\n \n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(TechnicalReport);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport WarningImage from \"../../../assets/illustrations/warning.png\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\n\nimport \"./ServiceDetail.scss\";\nimport { redirect } from \"../../../components/Page/Page\";\nimport CondominioService from \"../../../services/condominio\";\nimport SelectAddressList from \"../SelectAddressList\";\n\nclass IndustrialRegulation extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n haveSubmited: false,\n };\n }\n\n get initialComplementaryData() {\n return {\n isReady: null,\n };\n }\n\n generateOrder = () => {\n const {\n complementaryData: { isReady, informacoes },\n selectedCondominio,\n selectedAddress,\n } = this.state;\n const { onToggle } = this.props;\n\n if (selectedCondominio === \"all\") {\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedAddress.push(teste)\n );\n CondominioService.selectMany = selectedAddress;\n } else CondominioService.selectMany = selectedAddress;\n }\n this.setState({ haveSubmited: false });\n this.detailModal && this.detailModal.close();\n\n onToggle &&\n onToggle({\n informacoes: `O fogão ${\n isReady ? \"está\" : \"não está\"\n } preparado para GLP. ${informacoes}`,\n });\n };\n\n \n\n render() {\n const { rawData, onWarranty } = this.props;\n const { selectedCondominio, haveSubmited } = this.state;\n\n console.log(rawData)\n\n return (\n <>\n <>\n {selectedCondominio === \"all\" &&\n haveSubmited === true &&\n this.detailModal &&\n this.detailModal.open()}\n\n{haveSubmited === false && (\n <>\n

{rawData.title}

\n

{rawData.description}

\n \n
\n \n {\n this.regulationModal && this.regulationModal.open();\n }}\n // disabled={!this.isValid}\n >\n selecionar\n \n
\n \n )}\n\n (this.detailModal = ref)}\n shown={false}\n className=\"large\"\n closeButton={true}\n >\n \n this.setState(\n {\n selectedAddress: address,\n },\n () => this.confirmModal.open()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n\n (this.regulationModal = ref)}\n title=\"Fique atento!\"\n imgSrc={WarningImage}\n closeButton={true}\n confirmButton={true}\n confirmButtonText={\"Solicitar regulagem de pressão\"}\n confirmButtonAction={() => {\n if (selectedCondominio === \"all\")\n this.setState(\n { haveSubmited: true },\n this.regulationModal.close()\n );\n else this.confirmModal && this.confirmModal.open();\n }}\n declineButton={true}\n declineButtonText={\"Solicitar abastecimento\"}\n declineButtonAction={() => {\n redirect(this.props, \"/home-delivery\");\n }}\n >\n
\n

\n Antes de solicitar a regulagem certifique-se de que o registro do\n gás está aberto e que o seu tanque/cilindro(botijão) tem gás\n suficiente. Caso não tenha gás suficiente, solicite um novo\n abastecimento.\n

\n \n \n (this.confirmModal = ref)}\n title=\"Confirmar?\"\n imgSrc={WarningImage}\n confirmButton={true}\n confirmButtonText={\"Confirmar\"}\n confirmButtonAction={(modal) => {\n modal.close();\n this.regulationModal && this.regulationModal.close();\n this.generateOrder();\n }}\n >\n

\n Abriremos uma ordem de serviço para que nossa equipe técnica vá ao\n local realizar o serviço.\n

\n \n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(IndustrialRegulation);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport ClienteService from \"../../../services/cliente\";\nimport SelectAddressList from \"../SelectAddressList\";\nimport CondominioService from \"../../../services/condominio\";\n\nclass ChangePayment extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n haveSubmited: false,\n };\n }\n\n get initialComplementaryData() {\n return {\n selectedDays: \"\",\n };\n }\n\n submit = () => {\n \n };\n\n generateOrder = () => {\n const {\n complementaryData,\n selectedCondominio,\n selectedAddress,\n } = this.state;\n const { onToggle } = this.props;\n\n if (selectedCondominio === \"all\") {\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedAddress.push(teste)\n );\n CondominioService.selectMany = selectedAddress;\n } else CondominioService.selectMany = selectedAddress;\n }\n this.setState({ haveSubmited: false });\n\n this.priorityModal && this.priorityModal.close();\n onToggle &&\n onToggle({\n informacoes: `Desejo alterar o prazo de pagamento em ${complementaryData.selectedDays}. Detalhes da solicitação: ${complementaryData.informacoes}`,\n });\n };\n\n render() {\n const { complementaryData, selectedCondominio, haveSubmited } = this.state;\n const { checked, rawData } = this.props;\n const { [`prazo-pagto`]: prazopgto } = ClienteService.localEntrega;\n\n return (\n <>\n

{rawData.title}

\n\n {selectedCondominio === \"all\" && haveSubmited === true && (\n <>\n \n this.setState(\n {\n selectedAddress: address,\n },\n () => this.generateOrder()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n )}\n\n {haveSubmited === false && (\n <>\n
\n

Prazo atual:

\n

{prazopgto}

\n
\n\n

Insira o prazo desejado:

\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n selectedDays: e.target.value,\n },\n })\n }\n />\n
\n
\n

\n \n Por favor, insira no campo abaixo o motivo da sua solicitação\n \n
\n Coloque o maior número de informações possíveis. Assim,\n garantiremos maior agilidade em seu atendimento!\n

\n <>\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n />\n \n\n
\n {\n selectedCondominio === \"all\" ? this.submit() : this.generateOrder();\n }}\n disabled={complementaryData[\"selectedDays\"].length === 0}\n >\n {!checked ? \"Selecionar\" : \"Desselecionar\"}\n \n
\n \n )}\n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(ChangePayment);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport Select from \"../../../components/Select/Select\";\nimport ClienteService from \"../../../services/cliente\";\nimport SelectAddressList from \"../SelectAddressList\";\nimport CondominioService from \"../../../services/condominio\";\n\nclass RepresentativeContact extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: this.initialComplementaryData,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n haveSubmited: false,\n };\n }\n\n get initialComplementaryData() {\n return {\n \"motivo-visita\": \"Não selecionado\",\n informacoes: [],\n };\n }\n\n submit = () => {\n const { complementaryData, selectedCondominio } = this.state;\n\n if (complementaryData.informacoes.length < 1) {\n this.props.showToast(\n \"Ops!\",\n \"Você precisa descrever o motivo da solicitação!\"\n );\n } else if (selectedCondominio !== \"all\") this.generateOrder();\n this.setState({ haveSubmited: true });\n };\n\n generateOrder = () => {\n const {\n complementaryData: { \"motivo-visita\": motivoVisita, informacoes },\n selectedCondominio,\n selectedAddress,\n } = this.state;\n\n const { onToggle } = this.props;\n if (selectedCondominio === \"all\") {\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedAddress.push(teste)\n );\n CondominioService.selectMany = selectedAddress;\n } else CondominioService.selectMany = selectedAddress;\n }\n this.setState({ haveSubmited: false });\n onToggle &&\n onToggle({\n informacoes: `\n O motivo da visita: ${motivoVisita}. Detalhes: ${informacoes}`,\n });\n };\n\n render() {\n const { complementaryData, selectedCondominio, haveSubmited } = this.state;\n const { checked, rawData } = this.props;\n const { segmento } = ClienteService.localEntrega;\n\n return (\n <>\n {selectedCondominio === \"all\" && haveSubmited === true && (\n <>\n \n this.setState(\n {\n selectedAddress: address,\n },\n () => this.generateOrder()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n )}\n\n {segmento === \"revenda\" && (\n \n this.setState({\n complementaryData: {\n ...this.initialComplementaryData,\n \"motivo-visita\": e.target.value,\n },\n haveSubmited: false,\n })\n }\n disabled={checked}\n />\n )}\n\n <>\n {(selectedCondominio !== \"all\" || haveSubmited === false) && (\n <>\n

{rawData.title}

\n\n

{rawData.description}

\n

\n Por favor, insira no campo abaixo o motivo da sua solicitação.\n

\n

\n Coloque o maior número de informações possíveis. Assim,\n garantiremos maior agilidade em seu atendimento!\n

\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n disabled={checked}\n />\n\n
\n {\n !checked ? this.submit() : this.generateOrder();\n }}\n >\n {checked ? \"Desselecionar\" : \"Selecionar\"}\n \n
\n \n )}\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(RepresentativeContact);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport CondominioService from \"../../../services/condominio\";\nimport { MuiPickersUtilsProvider, DatePicker } from \"@material-ui/pickers\";\nimport MomentUtils from \"@date-io/moment\";\nimport moment from \"moment\";\nimport ClienteService from \"../../../services/cliente\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport SelectAddressList from \"../SelectAddressList\";\n\nclass CollectiveVacation extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n complementaryData: this.initialComplementaryData,\n };\n }\n\n get initialComplementaryData() {\n const { data = {} } = this.props;\n\n return {\n initialDate: data[\"dt-ini-ferias\"]\n ? moment(data[\"dt-ini-ferias\"], \"YYYY-MM-DD\")\n : null,\n lastDate: data[\"dt-fim-ferias\"]\n ? moment(data[\"dt-fim-ferias\"], \"YYYY-MM-DD\")\n : null,\n selectedModel: data[\"it-codigo\"] || null,\n informacoes: \"\",\n };\n }\n\n componentDidUpdate() {\n const { complementaryData } = this.state;\n const { data } = this.props;\n\n if (data && !complementaryData.selectedModel) {\n this.setState({\n complementaryData: this.initialComplementaryData,\n });\n }\n }\n\n get formattedInitialDate() {\n const { complementaryData } = this.state;\n\n if (complementaryData && complementaryData[\"initialDate\"])\n return complementaryData[\"initialDate\"].format(\"DD/MM/YYYY\");\n }\n\n get formattedLastDate() {\n const { complementaryData } = this.state;\n\n if (complementaryData && complementaryData[\"lastDate\"])\n return complementaryData[\"lastDate\"].format(\"DD/MM/YYYY\");\n }\n\n componentDidMount() {\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ)\n .then(ClienteService.consultaLocalEntregaApiParser)\n .then(({ Cliente }) => {\n if (Cliente) {\n this.props.dismissLoading();\n this.setState({\n addressList: Cliente.ClienteRetorno[0].ClienteEntrRetorno,\n });\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState({}, () => this.props.showToast(\"Ops!\", errorDescription));\n });\n }\n\n toggleModel(model) {\n const { complementaryData } = this.state;\n\n if (complementaryData[\"selectedModel\"] === model)\n this.setState({\n complementaryData: {\n ...complementaryData,\n selectedModel: null,\n },\n });\n else\n this.setState({\n complementaryData: {\n ...complementaryData,\n selectedModel: model,\n },\n });\n }\n\n submit = () => {\n const { complementaryData } = this.state;\n const { checked } = this.props;\n if (!complementaryData[\"initialDate\"] || !complementaryData[\"lastDate\"]) {\n this.props.showToast(\"Ops!\", \"Você precisa escolher uma data!\");\n } else if (complementaryData[\"selectedModel\"] === null) {\n this.props.showToast(\n \"Ops!\",\n \"Você precisa selecionar no mínimo um modelo de cilindro!\"\n );\n } else if (complementaryData.informacoes.length < 1) {\n this.props.showToast(\n \"Ops!\",\n \"Você precisa descrever o motivo da solicitação!\"\n );\n } else if (!checked) this.modalConfirm && this.modalConfirm.open();\n else this.generateOrder();\n };\n\n generateOrder = () => {\n const {\n complementaryData: { initialDate, lastDate, selectedModel, informacoes },\n } = this.state;\n const { onToggle } = this.props;\n onToggle &&\n onToggle({\n itCodigo: selectedModel,\n dtInicio: initialDate.format(\"YYYY/MM/DD\"),\n dtFim: lastDate.format(\"YYYY/MM/DD\"),\n informacoes: informacoes,\n });\n };\n\n render() {\n const { complementaryData, selectedCondominio } = this.state;\n const { checked, rawData } = this.props;\n const { credito } = ClienteService.localEntrega || {};\n const { situacao } = CondominioService.selected || {};\n return (\n <>\n

{rawData.title}

\n

{rawData.description}

\n\n {selectedCondominio === \"all\" && (\n <>\n \n this.setState({\n selectedCondominio: address,\n })\n }\n />\n \n )}\n {selectedCondominio !== \"all\" &&\n situacao !== 2 &&\n credito !== \"Suspenso\" && (\n <>\n

Período (obrigatório)

\n \n \n {\n this.setState({\n complementaryData: {\n ...complementaryData,\n initialDate: date,\n },\n });\n }}\n shouldDisableDate={(momentDate) =>\n momentDate.day() === 0 || momentDate.day() === 6\n }\n labelFunc={() =>\n this.formattedInitialDate || \"Data inicial\"\n }\n />\n {\n this.setState({\n complementaryData: {\n ...complementaryData,\n lastDate: date,\n },\n });\n }}\n shouldDisableDate={(momentDate) =>\n momentDate < complementaryData[\"initialDate\"] ||\n momentDate.day() === 0 ||\n momentDate.day() === 6\n }\n labelFunc={() => this.formattedLastDate || \"Data final\"}\n />\n \n \n

\n Produtos que terão o fornecimento interrompido (obrigatório)\n

\n {(selectedCondominio.Itens || []).map((value) => {\n return (\n \n );\n })}\n

\n

Detalhamento da solicitação (obrigatório)

\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n disabled={checked}\n />\n
\n \n
\n \n )}\n\n (this.modalConfirm = ref)}\n title=\"Confirmar solicitação\"\n declineButton={true}\n declineButtonText=\"Cancelar\"\n confirmButton={true}\n confirmButtonText={\"Ok\"}\n confirmButtonAction={() => this.generateOrder()}\n >\n

\n O abastecimento dos produtos abaixo será interrompido dentro do\n período especificado. Deseja confirmar o envio da solicitação?\n

\n \n

\n Período\n

\n {this.formattedInitialDate} - {this.formattedLastDate}\n \n
\n \n

\n Produtos\n

\n {((selectedCondominio || {}).Itens || [])\n .filter(\n (item) =>\n item[\"it-codigo\"] === complementaryData[\"selectedModel\"]\n )\n .map((item) => (\n

{item[\"desc-comercial\"]}

\n ))}\n \n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(CollectiveVacation);\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nimport './LabelSwitch.scss'\n\nexport default class LabelSwitch extends Component {\n\n static propTypes = {\n options: PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.string.isRequred,\n onClick: PropTypes.func,\n value: PropTypes.any\n })).isRequired,\n className: PropTypes.string\n }\n\n constructor(props) {\n super(props)\n\n let activeOption = 0\n if (props.selected)\n activeOption = this.getSelectedIdxByValue(props.selected)\n\n this.state = {\n activeOption\n }\n }\n\n get className() {\n return [\n 'label-switch',\n `active-${this.state.activeOption}`,\n `steps-${this.props.options.length}`,\n this.props.className\n ].filter(c => c).join(' ')\n }\n\n getSelectedIdxByValue(value) {\n return this.props.options.reduce((reduced, opt, idx) => {\n if (opt.value === value)\n return idx\n\n return reduced\n }, 0)\n }\n\n componentDidUpdate() {\n if (this.props.selected) {\n const { activeOption } = this.state\n const selectedIdx = this.getSelectedIdxByValue(this.props.selected)\n\n if (selectedIdx !== activeOption)\n this.setState({ activeOption: selectedIdx })\n }\n }\n\n handleOptionClick = (e, opt, activeOption) => {\n this.setState({ activeOption },\n () => opt.onClick && opt.onClick(e, opt.value)\n )\n }\n\n renderOptions() {\n const { options } = this.props\n\n if (options && options.length > 0)\n return options.map(\n (opt, activeOption) => (\n this.handleOptionClick(e, opt, activeOption)}>\n {opt.label}\n \n ))\n }\n\n render() {\n return (\n \n {this.renderOptions()}\n \n )\n }\n\n}","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport LabelSwitch from \"../../../components/LabelSwitch/LabelSwitch\";\nimport Card from \"../../../components/Card/Card\";\nimport moment from \"moment\";\nimport TicketService from \"../../../services/ticket\";\nimport { redirect } from \"../../../components/Page/Page\";\nimport CondominioService from \"../../../services/condominio\";\nimport ClienteService from \"../../../services/cliente\";\nimport SelectAddressList from \"../SelectAddressList\";\nimport Select from \"../../../components/Select/Select\";\nimport { percentualFormat } from \"../../../components/Masks/Masks\";\nimport ServiceItem from \"../../../components/ServiceItem/ServiceItem\";\n\nclass RequestSupply extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n tab: \"programado\",\n complementaryData: this.initialComplementaryData,\n haveSubmited: false,\n nextPage: false,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n prevEntrega: null,\n status: null,\n nrpedido: null,\n };\n }\n\n get initialComplementaryData() {\n return {\n selectedProduct: \"\",\n selectedModel: null,\n data: null,\n initialTime: moment().format(\"HH:mm\"),\n lastTime: moment().format(\"HH:mm\"),\n qtde: 0,\n gasPercent: \"\",\n horarioPreferencia: \"\",\n };\n }\n\n get itensCilindro() {\n const { selectedCondominio = {} } = this.state;\n return (selectedCondominio.Itens || []).filter(\n (it) => it.tipo.toLowerCase().indexOf(\"glp envasado\") > -1\n );\n }\n\n get itensGranel() {\n const { selectedCondominio = {} } = this.state;\n return (selectedCondominio.Itens || []).filter(\n (it) => it.tipo.toLowerCase().indexOf(\"granel\") > -1\n );\n }\n\n get itensEspecial() {\n const { selectedCondominio = {} } = this.state;\n return (selectedCondominio.Itens || []).filter(\n (it) => it.tipo.toLowerCase().indexOf(\"gás especial\") > -1\n );\n }\n\n submit = () => {\n const { complementaryData, nextPage, tab } = this.state;\n const hourObj = new Date();\n const limitHour = new Date();\n limitHour.setHours(15);\n limitHour.setMinutes(0);\n limitHour.setSeconds(0);\n const limitedHour = moment(limitHour);\n\n if (tab === \"programado\" && nextPage === false) {\n if (\n complementaryData[\"selectedProduct\"] === \"cilindros\" &&\n complementaryData[\"selectedModel\"] === null\n )\n this.props.showToast(\n \"Ops!\",\n \"Você precisa selecionar um modelo de cilindro.\"\n );\n else this.setState({ nextPage: true, prevEntrega: false });\n } else if (tab === \"programado\" && nextPage === true) {\n if (!complementaryData[\"data\"]) {\n this.props.showToast(\"Ops!\", \"Você precisa selecionar uma data.\");\n return;\n } else if (complementaryData[\"data\"] === \"outra\") {\n this.modalHelp && this.modalHelp.open();\n return;\n } else if (\n complementaryData[\"selectedProduct\"] === \"cilindros\" &&\n complementaryData[\"qtde\"] === 0\n ) {\n this.props.showToast(\"Ops!\", \"Você precisa informar a quantidade.\");\n return;\n } else {\n this.generateOrder();\n this.modalConfirm && this.modalConfirm.open();\n }\n } else if (tab === \"emergencial\")\n if (\n complementaryData[\"selectedProduct\"] === \"cilindros\" &&\n complementaryData[\"selectedModel\"] === null\n )\n this.props.showToast(\n \"Ops!\",\n \"Você precisa selecionar um modelo de cilindro.\"\n );\n else if (moment(hourObj).isSameOrAfter(limitedHour))\n this.modalEmergencial && this.modalEmergencial.open();\n else this.modalConfirmEmergencial && this.modalConfirmEmergencial.open();\n };\n\n removeAccents = (str) => {\n return str?.normalize(\"NFD\")?.replace(/[\\u0300-\\u036f]/g, \"\");\n }\n\n generateOrder = () => {\n const {\n complementaryData: {\n selectedProduct,\n selectedModel,\n gasPercent,\n qtde,\n horarioPreferencia,\n },\n complementaryData,\n tab,\n } = this.state;\n const { onToggle } = this.props;\n this.setState({ nextPage: false });\n let { [`local-entrega`]: codEntrega } = CondominioService.selected || {};\n if (!codEntrega)\n codEntrega =\n ClienteService.localEntrega &&\n ClienteService.localEntrega.ClienteEntrRetorno[0][`cod-entrega`];\n const { [`cod-emitente`]: codEmitente } = ClienteService.localEntrega;\n\n if (tab === \"emergencial\") {\n onToggle &&\n onToggle({\n itCodigo: selectedModel,\n informacoes: `${\n selectedProduct === \"cilindros\"\n ? `Quantidade: ${qtde} un. \\n Tipo de cilindro: ${selectedModel}`\n : `Percentual: ${gasPercent}, \\n Tipo de item: Granel (${selectedModel})`\n }\n Horario de preferencia: ${this.removeAccents(horarioPreferencia)}`,\n });\n } else {\n this.context.ConsigazApi.geraAbastecimento(\n codEmitente,\n codEntrega,\n complementaryData\n ).then(\n ({ Retorno }) => {\n if (!Retorno)\n this.props.showToast(\n \"Ops!\",\n \"Não foi possível gerar o pedido de abastecimento.\"\n );\n else\n this.setState({\n nrpedido: Retorno[0][\"nr-pedido\"],\n });\n // onDismiss && onDismiss();\n },\n (errorDescription) => {\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n }\n };\n\n toggleModel(model) {\n const { complementaryData } = this.state;\n\n if (complementaryData[\"selectedModel\"] === model)\n this.setState({\n complementaryData: {\n ...complementaryData,\n selectedModel: null,\n },\n });\n else\n this.setState({\n complementaryData: {\n ...complementaryData,\n selectedModel: model,\n },\n });\n }\n\n getOptionsData() {\n const {\n complementaryData: { selectedModel },\n prevEntrega,\n selectedCondominio,\n } = this.state;\n\n if (!prevEntrega && selectedCondominio !== \"all\" && selectedModel) {\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n let { [`local-entrega`]: localEntrega } =\n CondominioService.selected || {};\n if (!localEntrega)\n localEntrega =\n ClienteService.localEntrega &&\n ClienteService.localEntrega.ClienteEntrRetorno[0][`cod-entrega`];\n\n this.context.ConsigazApi.memConsultaPrevEntrega(\n CPFCNPJ,\n localEntrega,\n selectedModel\n ).then(\n ({ Retorno }) => {\n this.setState({\n prevEntrega: (Retorno || []).map((prev) => prev[\"dt-prevista\"]),\n });\n },\n () => {\n this.props.showToast(\n \"Ops\",\n \"Não foram encontradas datas disponíveis.\"\n );\n }\n );\n }\n }\n\n renderOptions() {\n const { complementaryData, tab } = this.state;\n const nextDelivery = TicketService.getNextDelivery(complementaryData[\"selectedModel\"]);\n\n return (\n <>\n \n <>\n Produto selecionado\n {(this.itensGranel || []).length > 0 ? (\n \n ) : null}\n {this.itensCilindro.length > 0 && (\n \n )}\n
\n {this.itensCilindro.map((value) => {\n return (\n \n );\n })}\n
\n {(this.itensEspecial || []).length > 0 ? (\n \n ) : null}\n \n \n {(tab === \"emergencial\" && complementaryData[\"selectedProduct\"]) ||\n tab === \"programado\" ? (\n \n

Data da próxima entrega:

\n \n {nextDelivery !== null ? (\n moment(nextDelivery[\"dt-prox-entrega\"], \"YYYY-MM-DD\").isSame(\n moment().format(\"YYYY-MM-DD\")\n ) && tab === \"emergencial\" ? (\n this.sameDeliveryDateModal &&\n this.sameDeliveryDateModal.open()\n ) : (\n moment(nextDelivery[\"dt-prox-entrega\"], \"YYYY-MM-DD\").format(\n \"DD/MM/YYYY\"\n )\n )\n ) : (\n

\n Sem data prevista\n

\n )}{\" \"}\n
\n {this.state.status !== null && (\n Aguardando abastecimento\n )}\n \n \n ) : (\n \"\"\n )}\n \n );\n }\n\n handlePercentChange = (e) => {\n const percentMask = percentualFormat(e.target.value);\n const { complementaryData } = this.state;\n\n this.setState({\n complementaryData: {\n ...complementaryData,\n gasPercent: percentMask,\n },\n });\n };\n\n renderEmergencialTab() {\n const { complementaryData } = this.state;\n\n return (\n <>\n {this.renderOptions()}\n {complementaryData[\"selectedProduct\"] && (\n <>\n
\n {complementaryData[\"selectedProduct\"] === \"cilindros\" ? (\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n qtde: Math.abs(e.target.value),\n },\n })\n }\n />\n ) : (\n \n )}\n\n
\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n horarioPreferencia: e.target.value,\n },\n })\n }\n />\n \n )}\n \n );\n }\n\n renderProgramadoTab() {\n const { complementaryData, nextPage, prevEntrega } = this.state;\n\n return (\n <>\n {nextPage === false ? (\n this.renderOptions()\n ) : (\n <>\n

Escolha uma data

\n \n ({\n value: prev,\n title: moment(prev, \"YYYY-MM-DD\").format(\"DD/MM/YYYY\"),\n })),\n { value: \"outra\", title: \"Outra data\" },\n ]}\n value={complementaryData[\"data\"]}\n onChange={(e) =>\n this.setState({\n complementaryData: {\n ...complementaryData,\n data: e.target.value,\n },\n haveSubmited: false,\n })\n }\n />\n \n {complementaryData[\"selectedProduct\"] === \"cilindros\" ? (\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n qtde: Math.abs(e.target.value),\n },\n })\n }\n />\n ) : null}\n\n
\n\n \n \n )}\n \n );\n }\n\n render() {\n const {\n complementaryData,\n tab,\n nextPage,\n selectedCondominio,\n nrpedido,\n } = this.state;\n const { rawData } = this.props;\n\n this.getOptionsData();\n\n return (\n <>\n

{rawData.title}

\n\n

{rawData.description}

\n {selectedCondominio !== \"all\" && (\n this.setState({ tab }),\n },\n {\n label: \"Pedido Emergencial\",\n value: \"emergencial\",\n onClick: (e, tab) => this.setState({ tab }),\n },\n ]}\n />\n )}\n\n {selectedCondominio !== \"all\" ? (\n <>\n {tab === \"emergencial\"\n ? this.renderEmergencialTab()\n : this.renderProgramadoTab()}\n
\n this.submit()}\n disabled={\n (nextPage === true &&\n (complementaryData[\"data\"] === null ||\n complementaryData[\"data\"] === \"Selecione uma data\")) ||\n (tab === \"emergencial\" &&\n ((complementaryData[\"gasPercent\"] === \"\" && complementaryData[\"qtde\"] === \"\") ||\n complementaryData[\"horarioPreferencia\"] === \"\"))\n }\n >\n {tab === \"programado\" && nextPage === false\n ? \"Solicitar abastecimento\"\n : tab === \"programado\"\n ? \"Confirmar Pedido\"\n : \"Abastecimento para outra data\"}\n \n
\n \n ) : (\n \n this.setState({\n selectedCondominio: address,\n })\n }\n />\n )}\n\n (this.modalConfirm = ref)}\n title=\"Pedido feito!\"\n confirmButton={true}\n confirmButtonText={\"Ok\"}\n confirmButtonAction={() =>\n this.props.onDismiss && this.props.onDismiss()\n }\n >\n
\n\n

O seu pedido será programado conforme data solicitada!

\n\n

Anote o protocolo:

\n \n <>\n
\n Protocolo:\n \n {nrpedido || \"Não encontrado\"}\n \n \n
\n \n\n (this.modalHelp = ref)}\n title=\"Atendimento!\"\n confirmButton={true}\n confirmButtonText={\"Ok\"}\n >\n

\n Para solicitar abastecimento para outra data, entre em contato com a\n central de atendimento.\n

\n

\n \n \n

\n \n\n (this.modalConfirmEmergencial = ref)}\n title=\"Aguarde!\"\n confirmButton={true}\n confirmButtonText={\"Ok\"}\n confirmButtonAction={() => this.generateOrder()}\n >\n

\n Nossas entregas são realizadas de segunda a sábado e são programadas\n com, pelo menos, 1 dia de antecedência. Mas fique tranquilo que\n vamos verificar a possibilidade de lhe atender ainda hoje!\n

\n \n\n (this.modalEmergencial = ref)}\n title=\"Aguarde!\"\n confirmButton={true}\n confirmButtonText={\"Central de atendimento\"}\n confirmButtonAction={() => redirect(this.props, \"/help\")}\n declineButton={true}\n declineButtonText={\"Cancelar\"}\n >\n

\n Nossas entregas são programadas com, pelo menos, 1 dia de\n antecedência. Para solicitar abastecimento emergencial, por favor,\n clique aqui que direcionaremos você para nossa central de\n atendimento!\n

\n \n\n (this.sameDeliveryDateModal = ref)}\n title=\"Aguarde!\"\n shown={false}\n declineButton={true}\n declineButtonText={\"Manter data atual\"}\n declineButtonAction={() => {\n this.waitModal && this.waitModal.open();\n this.sameDeliveryDateModal && this.sameDeliveryDateModal.close();\n this.setState({ status: \"aguardando\" });\n }}\n confirmButton={true}\n confirmButtonText=\"Abastecimento para outra data\"\n confirmButtonAction={() => {\n this.setState({ tab: \"programado\" });\n this.sameDeliveryDateModal && this.sameDeliveryDateModal.close();\n }}\n >\n Já existe uma entrega prevista para hoje. Deseja solicitar\n abastecimento para outra data?\n \n\n (this.waitModal = ref)}\n title=\"Aguarde\"\n shown={false}\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={() => {\n this.waitModal && this.waitModal.close();\n this.sameDeliveryDateModal && this.sameDeliveryDateModal.close();\n this.setState({ tab: \"programado\" });\n }}\n >\n Por favor, aguarde o abastecimento que está previsto para hoje.\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(RequestSupply);\n","import React, { Component } from \"react\";\n\nimport \"./IndustrialCard.scss\";\nimport CondominioService from \"../../services/condominio\";\n\nimport IconCollectiveVacation from \"../../assets/illustrations/ic_collectivevacation_service.png\";\nimport IconChangeProgram from \"../../assets/illustrations/ic_changeprogram_service.png\";\nimport IconNextDelivery from \"../../assets/illustrations/ic_nextdelivery_service.png\";\nimport IconRequestSupply from \"../../assets/illustrations/ic_requestsupply_service.png\";\nimport { IconCheck } from \"../Icons/Icons\";\nimport IconChangePayment from \"../../assets/illustrations/ic_changepayment_service.png\";\nimport IconDuplicateContract from \"../../assets/illustrations/ic_duplicatecontract_service.png\";\nimport IconLeakage from \"../../assets/illustrations/ic_leakage_service.png\";\nimport IconRegulation from \"../../assets/illustrations/ic_regulation_service.png\";\nimport IconRepresentativeContact from \"../../assets/illustrations/ic_representativecontact_service.png\";\nimport IconTechnicalReport from \"../../assets/illustrations/ic_technicalreport_service.png\";\nimport IconTightnessTest from \"../../assets/illustrations/ic_tightnesstest_service.png\";\nimport IconChangeData from \"../../assets/illustrations/ic_changedata_service.png\";\n\nexport default class IndustrialCard extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n checked: this.props.checked || false,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n filterImage() {\n if (this.props.image === \"12;;\") return IconLeakage;\n if (this.props.image === \"14;;\") return IconRegulation;\n if (this.props.image === \"15;;\") return IconTightnessTest;\n if (this.props.image === \"17;;\") return IconTechnicalReport;\n if (this.props.image === \"18;;\") return IconChangePayment;\n if (this.props.image === \"19;;\") return IconCollectiveVacation;\n if (this.props.image === \"20;;\") return IconRepresentativeContact;\n if (this.props.image === \"21;;\") return IconChangeData;\n if (this.props.image === \"22;;\") return IconRequestSupply;\n if (this.props.image === \"23;;\") return IconChangeProgram;\n if (this.props.image === \"24;;\") return IconDuplicateContract;\n else return IconNextDelivery;\n }\n\n componentDidMount() {\n if (this.props.cardClass !== \"service\" && this.props.selectedService)\n this.props.onDetail(9);\n }\n\n render() {\n const { selectedCondominio } = this.state;\n\n return (\n this.props.onDetail(this.props.serviceId)}\n style={{ cursor: \"pointer\" }}\n >\n {this.state.checked &&\n (selectedCondominio === \"all\" ? (\n
\n

\n {CondominioService.selectMany &&\n CondominioService.selectMany.length > 0 &&\n CondominioService.selectMany.filter(\n (select) => select.idservice === this.props.image\n ).length}\n

\n \n
\n ) : (\n \n ))}\n {this.props.title &&

{this.props.title}

}\n {\n \n }\n \n );\n }\n}\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport CondominioService from \"../../../services/condominio\";\nimport ClienteService from \"../../../services/cliente\";\nimport SelectAddressList from \"../SelectAddressList\";\nimport Card from \"../../../components/Card/Card\";\nimport TicketService from \"../../../services/ticket\";\nimport Select from \"../../../components/Select/Select\";\n\nclass ScheduleRequest extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n complementaryData: this.initialComplementaryData,\n frequencyinfo: this.frequencyInfo,\n nextPage: false,\n };\n }\n\n get initialComplementaryData() {\n const nextDelivery = TicketService.getNextDelivery() || null;\n\n return {\n selectedProduct: nextDelivery\n ? nextDelivery[\"tipo\"] === \"GLP Granel\"\n ? \"granel\"\n : \"cilindros\"\n : \"\",\n selectedModel:\n nextDelivery && nextDelivery[\"tipo\"] === \"GLP Envasado\"\n ? nextDelivery[\"it-codigo\"]\n : null,\n };\n }\n\n get frequencyInfo() {\n return [\n \"Diária\",\n \"Trissemanal\",\n \"Bissemanal\",\n \"Semanal\",\n \"Quinzenal\",\n \"21x21\",\n \"Mensal\",\n \"42x42\",\n \"45x45\",\n \"Bimestral\",\n \"Trimestral\",\n \"Semestral\",\n \"Anual\",\n ];\n }\n\n get itensCilindro() {\n const { selectedCondominio = {} } = this.state;\n return (selectedCondominio.Itens || []).filter(\n (it) => it.tipo.toLowerCase().indexOf(\"glp envasado\") > -1\n );\n }\n\n get itensGranel() {\n const { selectedCondominio = {} } = this.state;\n return (selectedCondominio.Itens || []).filter(\n (it) => it.tipo.toLowerCase().indexOf(\"granel\") > -1\n );\n }\n\n get itensEspecial() {\n const { selectedCondominio = {} } = this.state;\n return (selectedCondominio.Itens || []).filter(\n (it) => it.tipo.toLowerCase().indexOf(\"gás especial\") > -1\n );\n }\n\n componentDidUpdate() {\n const { complementaryData } = this.state;\n const { data } = this.props;\n\n if (data && !complementaryData.selectedModel) {\n this.setState({\n complementaryData: this.initialComplementaryData,\n });\n }\n }\n\n componentDidMount() {\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ)\n .then(ClienteService.consultaLocalEntregaApiParser)\n .then(({ Cliente }) => {\n if (Cliente) {\n this.props.dismissLoading();\n this.setState({\n addressList: Cliente.ClienteRetorno[0].ClienteEntrRetorno,\n });\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState({}, () => this.props.showToast(\"Ops!\", errorDescription));\n });\n\n this.context.ConsigazApi.motivosAltProgcao().then(\n ({ Retorno }) => {\n if (Retorno && Retorno.length) {\n this.setState({\n reasons: Retorno,\n });\n } else\n this.props.showToast(\"Ops\", \"Não foram encontrados tipos de contato\");\n },\n (error) => {\n console.error(error);\n this.props.showToast(\"Ops\", \"Erro ao buscar os tipos de contato\");\n }\n );\n }\n\n toggleFrequency(value) {\n const { complementaryData } = this.state;\n\n if (complementaryData[\"frequency\"] === value)\n this.setState({\n complementaryData: {\n ...complementaryData,\n frequency: null,\n },\n });\n else\n this.setState({\n complementaryData: {\n ...complementaryData,\n frequency: value,\n },\n });\n }\n\n toggleModel(model) {\n const { complementaryData } = this.state;\n\n if (complementaryData[\"selectedModel\"] === model)\n this.setState({\n complementaryData: {\n ...complementaryData,\n selectedModel: null,\n },\n });\n else\n this.setState({\n complementaryData: {\n ...complementaryData,\n selectedModel: model,\n },\n });\n }\n\n submit = () => {\n const { complementaryData, nextPage } = this.state;\n\n if (\n complementaryData[\"selectedProduct\"] === \"cilindros\" &&\n complementaryData[\"selectedModel\"] === null\n ) {\n this.props.showToast(\n \"Ops!\",\n \"Você precisa selecionar no mínimo um modelo de cilindro!\"\n );\n } else if (complementaryData[\"selectedProduct\"] === \"\") {\n this.props.showToast(\"Ops!\", \"Você precisa selecionar um produto!\");\n } else if (!complementaryData[\"frequency\"] && nextPage === true) {\n this.props.showToast(\"Ops!\", \"Você precisa selecionar uma frequencia!\");\n } else if (\n (!complementaryData[\"motivo\"] ||\n (complementaryData[\"motivo\"] === \"Outros (Justifique)\" &&\n !complementaryData[\"informacoes\"])) &&\n nextPage === true\n ) {\n this.props.showToast(\n \"Ops!\",\n \"Você precisa justificar o motivo da alteração!\"\n );\n } else if (nextPage === false) this.setState({ nextPage: true });\n else this.generateOrder();\n };\n\n generateOrder = () => {\n const {\n complementaryData: {\n selectedProduct,\n informacoes,\n frequency,\n motivo,\n },\n } = this.state;\n const nextDelivery = TicketService.getNextDelivery();\n const { onToggle } = this.props;\n onToggle &&\n onToggle({\n informacoes: `${\n nextDelivery !== null ? \"Alteração\" : \"Solicitação\"\n } de programação;\\n Produto: ${selectedProduct};\\n Programação: ${frequency};\\n Motivo: ${motivo}; \n ${motivo === \"Outros (Justifique)\" ? `Justificativa: ${informacoes}` : \"\"}.`\n });\n };\n\n render() {\n const {\n complementaryData,\n selectedCondominio,\n reasons,\n nextPage,\n } = this.state;\n if (selectedCondominio !== \"all\") {\n var { Itens } = CondominioService.selected;\n }\n const { rawData } = this.props;\n const nextDelivery = TicketService.getNextDelivery();\n\n return (\n <>\n

{rawData.title}

\n {nextDelivery ? (\n

{rawData.description}

\n ) : (\n \"Este local de entrega não possui programação. Cadastre agora mesmo!\"\n )}\n {selectedCondominio === \"all\" && (\n <>\n \n this.setState({\n selectedCondominio: address,\n })\n }\n />\n \n )}\n {selectedCondominio !== \"all\" && (\n <>\n \n <>\n

Produto selecionado

\n {(this.itensGranel || []).length > 0 ? (\n \n ) : null}\n {this.itensCilindro.length > 0 && (\n \n )}\n
\n {this.itensCilindro.map((value) => {\n return (\n \n );\n })}\n
\n {(this.itensEspecial || []).length > 0 ? (\n \n ) : null}\n \n \n
\n {Itens ? (\n <>\n \n

Programação atual:

\n \n {nextDelivery !== null ? (\n

\n {nextDelivery[\"programacao\"]}\n

\n ) : (\n

\n Sem data prevista\n

\n )}{\" \"}\n \n \n
{\" \"}\n \n ) : null}\n {nextPage === true ? (\n <>\n \n

Nova frequencia

\n {this.frequencyInfo.map((value) => {\n return (\n \n );\n })}\n \n
\n ({\n title: r[\"descricao\"],\n value: r[\"descricao\"],\n }))}\n value={complementaryData[\"motivo\"]}\n onChange={(e) =>\n this.setState({\n complementaryData: {\n ...complementaryData,\n motivo: e.target.value,\n },\n })\n }\n />\n {complementaryData[\"motivo\"] === \"Outros (Justifique)\" && (\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n />\n )}\n \n ) : null}\n\n
\n {\n this.submit();\n }}\n >\n {Itens\n ? nextPage === false\n ? \"Alterar programação\"\n : \"Confirmar\"\n : \"Confirmar\"}\n \n
\n \n )}\n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(ScheduleRequest);\n","import React from \"react\";\nimport apiContext from \"../../../api\";\nimport { Component } from \"react\";\nimport Modal from \"../../../components/Modal/Modal\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../../state/ducks/loading\";\nimport \"./ServiceDetail.scss\";\nimport CondominioService from \"../../../services/condominio\";\nimport SelectAddressList from \"../SelectAddressList\";\n\nclass DuplicateContract extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n complementaryData: [],\n haveSubmited: false,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n submit = () => {\n const {\n complementaryData: { informacoes },\n } = this.state;\n if (!informacoes)\n this.props.showToast(\n \"Ops!\",\n \"Você deve inserir o motivo da sua solicitação.\"\n );\n else this.confirmationModal && this.confirmationModal.open();\n };\n\n generateOrder = () => {\n const {\n complementaryData: { informacoes },\n selectedCondominio,\n selectedAddress,\n } = this.state;\n\n this.priorityModal && this.priorityModal.close();\n\n const { onToggle } = this.props;\n\n if (selectedCondominio === \"all\") {\n if (\n CondominioService.selectMany &&\n CondominioService.selectMany.length > 0\n ) {\n CondominioService.selectMany &&\n CondominioService.selectMany.map((teste) =>\n selectedAddress.push(teste)\n );\n CondominioService.selectMany = selectedAddress;\n } else CondominioService.selectMany = selectedAddress;\n }\n this.setState({ haveSubmited: false });\n\n onToggle &&\n onToggle({\n informacoes: informacoes,\n });\n };\n\n render() {\n const { complementaryData, selectedCondominio, haveSubmited } = this.state;\n const { checked, rawData } = this.props;\n\n return (\n <>\n {selectedCondominio === \"all\" && haveSubmited === true && (\n <>\n \n this.setState(\n {\n selectedAddress: address,\n },\n () => this.generateOrder()\n )\n }\n cardClass={\"service\"}\n service={rawData}\n />\n \n )}\n\n {haveSubmited === false && (\n <>\n

{rawData.title}

\n

\n \n Por favor, insira no campo abaixo o motivo da sua solicitação\n \n
\n Coloque o maior número de informações possíveis. Assim,\n garantiremos maior agilidade em seu atendimento!\n

\n <>\n \n this.setState({\n complementaryData: {\n ...complementaryData,\n informacoes: e.target.value,\n },\n })\n }\n />\n \n\n
\n {\n !checked ? this.submit() : this.generateOrder();\n }}\n >\n {!checked ? \"Selecionar\" : \"Desselecionar\"}\n \n
\n \n )}\n\n (this.confirmationModal = ref)}\n title=\"Fique atento!\"\n confirmButton={true}\n confirmButtonText={\"Ok\"}\n confirmButtonAction={() => {\n selectedCondominio === \"all\"\n ? this.setState(\n { haveSubmited: true },\n this.confirmationModal && this.confirmationModal.close()\n )\n : this.generateOrder();\n }}\n >\n

\n Sua solicitação será encaminhada para o departamento responsável\n avaliar. Daremos retorno em até: {rawData.deadline}.\n

\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(DuplicateContract);\n","import React, { Component } from \"react\";\n\nimport \"./Services.scss\";\n\nimport ClienteService from \"../../services/cliente\";\nimport apiContext from \"../../api\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\nimport ServiceCard from \"../../components/ServiceCard/ServiceCard\";\nimport Modal from \"../../components/Modal/Modal\";\n\nimport ReligueImage from \"../../assets/services/religue.png\";\nimport EquipamentosImage from \"../../assets/services/equipamentos.png\";\nimport WarningImage from \"../../assets/illustrations/warning.png\";\nimport CondominioService from \"../../services/condominio\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport GenericDetail from \"./details/GenericDetail\";\nimport Leakage from \"./details/Leakage\";\nimport TightnessTest from \"./details/TightnessTest\";\nimport IndustrialTightnessTest from \"./details/IndustrialTightnessTest\";\nimport Regulation from \"./details/Regulation\";\nimport MeterChange from \"./details/MeterChange\";\nimport ChangeData from \"./details/ChangeData\";\nimport IndustrialLeakage from \"./details/IndustrialLeakage\";\nimport TechnicalReport from \"./details/TechnicalReport\";\nimport IndustrialRegulation from \"./details/IndustrialRegulation\";\nimport ChangePayment from \"./details/ChangePayment\";\nimport RepresentantiveContact from \"./details/RepresentantiveContact\";\nimport CollectiveVacation from \"./details/CollectiveVacation\";\nimport RequestSupply from \"./details/RequestSupply\";\nimport IndustrialCard from \"../../components/IndustrialCard/IndustrialCard\";\nimport moment from \"moment\";\nimport TicketService from \"../../services/ticket\";\nimport ScheduleRequest from \"./details/ScheduleRequest\";\nimport DuplicateContract from \"./details/DuplicateContract\";\nimport Card from \"../../components/Card/Card\";\nimport { IconHome } from \"../../components/Icons/Icons\";\n\nclass ServiceCardsComponent extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n props.editService && props.editService(this.editService);\n props.scheduleService && props.scheduleService(this.scheduleService);\n\n this.state = {\n services: null,\n detailModalServiceId: null,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n outdatedTickets: [],\n };\n }\n\n componentDidMount() {\n const { situacao } = CondominioService.selected || {};\n const { cardClass } = this.props;\n const { CPFCNPJ } = ClienteService.localEntrega;\n\n const dataFim = moment().startOf(\"month\").format(\"YYYY/MM/DD\");\n const dataIni = moment()\n .subtract(1, \"year\")\n .endOf(\"month\")\n .format(\"YYYY/MM/DD\");\n\n if (!ClienteService.localEntrega) {\n this.props.showToast(\n \"Opa!\",\n \"Dados insuficientes para continuar o cadastro\"\n );\n return;\n }\n\n if (\n (cardClass !== \"delivery\" && situacao !== 2) ||\n cardClass === \"delivery\"\n ) {\n this.props.showLoading();\n this.getServices()\n .then(({ ServicoRetorno }) => this.setServices(ServicoRetorno || []))\n .catch((errorDescription) =>\n this.setState({ services: [] }, () => {\n this.props.dismissLoading();\n if (\n !(\n errorDescription === \"Cliente não possuí serviço\" ||\n errorDescription === \"Não encontrado condomínio para o Cliente\"\n )\n )\n this.props.showToast(\"Opa!\", errorDescription);\n })\n );\n }\n\n this.context.ConsigazApi.memConsultaNotaFiscal(\n CPFCNPJ,\n dataIni,\n dataFim\n ).then(({ Notas }) => {\n if (Notas && Notas.NotasFiscais && Notas.NotasFiscais.length) {\n const { \"local-entrega\": localEntrega } =\n CondominioService.selected || {};\n const tickets = Notas.NotasFiscais.filter((ticket) => {\n if (localEntrega) return ticket[\"local-entrega\"] === localEntrega;\n return true;\n });\n\n if (tickets && tickets.length) {\n this.setState({\n outdatedTickets: tickets.filter(\n (i) => TicketService.getTicketStatus(i) === \"outdated\"\n ),\n });\n }\n }\n });\n // CondominioService.selectMany = [];\n }\n\n getServices() {\n let { [`local-entrega`]: localEntrega } = CondominioService.selected || {};\n let { segmento } = ClienteService.localEntrega;\n if (!localEntrega)\n localEntrega =\n ClienteService.localEntrega &&\n ClienteService.localEntrega.ClienteEntrRetorno[0][`cod-entrega`];\n\n let cpfcnpj;\n const newClientData = ClienteService.newClienteData;\n const clienteLocalEntrega = ClienteService.localEntrega;\n if (newClientData) {\n cpfcnpj = newClientData.cpfcnpj;\n } else if (clienteLocalEntrega) {\n cpfcnpj = clienteLocalEntrega.CPFCNPJ;\n }\n\n return this.context.ConsigazApi.consultaServicos(\n cpfcnpj,\n localEntrega,\n segmento\n );\n }\n\n setServices(apiServices) {\n const services = apiServices\n .map((service, idx) => ({\n id: idx,\n codMotivo: service[\"cod-motivo\"],\n title: service[\"descricao\"],\n description: service[\"detalhes\"],\n type: service[\"ind-menu\"],\n service: service[\"servico\"],\n deadline: service[\"prazo-inicio-servico\"],\n condPagamento: service[\"cod-cond-pag\"],\n image: service[\"arq-imagem\"].toLowerCase(),\n price: service[\"vl-servico\"],\n priceConditional: service[\"vl-condicional\"],\n ref: null, // for component ref later on\n termsAcknowledged: true, // for terms vaidation\n nrAcordoComercial: service[\"nr-acordo-comercial\"],\n }))\n .filter((s) => s !== undefined);\n this.setState({ services }, () => this.props.dismissLoading());\n }\n\n get extendedFlowServices() {\n return [\n \"1;;\",\n \"2;;\",\n \"3;;\",\n \"4;;\",\n \"12;;\",\n \"14;;\",\n \"15;;\",\n \"17;;\",\n \"18;;\",\n \"19;;\",\n \"20;;\",\n \"21;;\",\n \"22;;\",\n \"23;;\",\n \"24;;\",\n ];\n }\n\n switchChecked(service, complementaryData = null) {\n if (!complementaryData) complementaryData = service.complementaryData;\n else service.complementaryData = complementaryData;\n\n if (this.extendedFlowServices.indexOf(service.service) > -1) {\n if (!complementaryData) {\n this.detailService(service.id);\n return;\n }\n }\n service.ref.setState({ checked: !service.ref.state.checked }, () => {\n if (service.type === \"Entregas\") this.handleSubmit();\n });\n }\n\n removeServiceSelection(service) {\n service.ref.setState({ checked: !service.ref.state.checked })\n }\n\n toggleServiceCheck(service, complementaryData = {}) {\n const checked = !service.ref.state.checked;\n const selectMany = CondominioService.selectMany;\n service.complementaryData = complementaryData;\n\n if (\n checked &&\n service.id === 0 &&\n (this.state.services || []).filter((service) => service.id === 50)\n .length > 0\n ) {\n this.religueAdviceModal.open();\n return;\n }\n if (\n this.extendedFlowServices.indexOf(service.service) > -1 &&\n !complementaryData\n ) {\n this.detailService(service.id);\n } else if (checked) {\n const { [`cod-emitente`]: codEmitente } = ClienteService.localEntrega;\n const { [`local-entrega`]: localEntrega } =\n CondominioService.selected || {};\n\n this.props.showLoading();\n if (CondominioService.selectAll && selectMany && selectMany.length) {\n selectMany.map((addresses) =>\n this.context.ConsigazApi.verificaProtocolos(\n codEmitente,\n addresses[\"local-entrega\"],\n addresses.codMotivo,\n addresses.idservice\n ).then(\n ({ Retorno }) => {\n this.props.dismissLoading();\n if (Retorno && Retorno.length > 0) {\n this.setState(\n {\n serviceOnToggle: service,\n },\n () =>\n this.modalExistentProtocol &&\n this.modalExistentProtocol.open()\n );\n return;\n }\n },\n () => {\n this.props.dismissLoading();\n this.switchChecked(service, complementaryData);\n }\n )\n );\n } else {\n this.context.ConsigazApi.verificaProtocolos(\n codEmitente,\n localEntrega,\n service.codMotivo,\n service.service\n ).then(\n ({ Retorno }) => {\n this.props.dismissLoading();\n if (Retorno && Retorno.length > 0) {\n this.setState(\n {\n serviceOnToggle: service,\n },\n () =>\n this.modalExistentProtocol &&\n this.modalExistentProtocol.open()\n );\n return;\n }\n this.switchChecked(service, complementaryData);\n },\n () => {\n this.props.dismissLoading();\n this.switchChecked(service, complementaryData);\n }\n );\n }\n } else {\n service.ref.setState({ checked: false });\n }\n }\n\n getServiceImage = (key) =>\n ({\n religue: ReligueImage,\n equipamentos: EquipamentosImage,\n }[key]);\n\n renderSeriveContent(service) {\n const { serviceData } = this.state;\n\n const contentParams = {\n rawData: service,\n title: service.title,\n description: service.description,\n image: this.getServiceImage(service.image),\n deadline: service.deadline,\n checked: service.ref.state.checked,\n history: this.props.history,\n removeServiceSelection: (serviceData) => this.removeServiceSelection(serviceData),\n onToggle: (complementaryData) => {\n if(service?.service === \"4;;\") {\n this.setState({\n ...this.state,\n services: this.state.services.map((service) => {\n return {\n ...service,\n complementaryData,\n price: service.service === \"4;;\" ? complementaryData.value : service.price,\n }\n })\n })\n }\n this.detailModal && this.detailModal.close();\n !service.ref.state.checked && this.toggleServiceCheck(service, complementaryData);\n },\n onDismiss: () => this.detailModal && this.detailModal.close(),\n onWarranty: () =>\n this.modalWarrantyTerms && this.modalWarrantyTerms.open(),\n };\n\n if (service.service === \"1;;\") return ;\n if (service.service === \"2;;\") return ;\n if (service.service === \"3;;\") return ;\n if (service.service === \"4;;\") return ; \n if (service.service === \"12;;\")\n return ;\n if (service.service === \"14;;\")\n return ;\n if (service.service === \"15;;\")\n return ;\n if (service.service === \"17;;\")\n return ;\n if (service.service === \"18;;\") return ;\n if (service.service === \"19;;\")\n return ;\n if (service.service === \"20;;\")\n return ;\n if (service.service === \"21;;\") return ;\n if (service.service === \"22;;\") return ;\n if (service.service === \"23;;\")\n return ;\n if (service.service === \"24;;\")\n return ;\n else return ;\n }\n\n getServiceContent(serviceId) {\n const serviceFilter = (this.state.services || []).filter(\n (serv) => serv.id === serviceId\n );\n\n if (serviceFilter.length) {\n const service = serviceFilter[0];\n return (service && this.renderSeriveContent(service)) || <>;\n }\n }\n\n handleSubmit = () => {\n const { showToast } = this.props;\n\n const acquiredServices = (this.state.services || [])\n .filter((service) => service.ref && service.ref.state.checked)\n .map(\n ({\n id,\n codMotivo,\n title,\n price,\n description,\n deadline,\n condPagamento,\n service,\n nrAcordoComercial,\n complementaryData,\n priceConditional,\n type,\n }) => ({\n id,\n codMotivo,\n title,\n price,\n description,\n deadline,\n condPagamento,\n service,\n nrAcordoComercial,\n complementaryData,\n priceConditional,\n type,\n })\n );\n \n if (acquiredServices.length > 0) {\n this.props.onSubmit && this.props.onSubmit(acquiredServices);\n } else\n showToast(\n \"Ops\",\n \"Você precisa selecionar ao menos um serviço para continuar.\"\n );\n };\n\n handleReligueAdvice = () => {\n this.religueAdviceModal.close();\n if (\n (this.state.services || []).filter((service) => service.id === 50)\n .length > 0\n ) {\n this.setState({ detailModalServiceId: 50 }, () =>\n this.detailModal.open()\n );\n }\n };\n\n handleConfirmReligue = () => {\n (this.state.services || []).forEach((service) => {\n if (service.id === 0) {\n this.switchChecked(service, service.complementaryData);\n }\n });\n this.religueAdviceModal.close();\n };\n\n editService = (key, serviceData) => {\n const { services } = this.state;\n\n const service = (services || []).filter((serv) => serv.service === key)[0];\n\n return this.detailService(service.id, serviceData);\n };\n\n detailService = (key, serviceData) => {\n const { services, selectedCondominio } = this.state;\n const { situacao } = CondominioService.selected || {};\n const { credito } = ClienteService.localEntrega || {};\n const serviceFilter = (services || []).find((serv) => serv.id === key);\n\n if (serviceFilter) {\n const service = serviceFilter;\n const refState = (service.ref || {}).state || {};\n\n if (refState.checked) {\n if (selectedCondominio === \"all\") {\n const removeProtocols = CondominioService.selectMany.filter(\n (addr) => addr.idservice !== service.service\n );\n\n CondominioService.selectMany = removeProtocols;\n }\n this.toggleServiceCheck(service, {});\n return;\n }\n }\n this.setState(\n {\n detailModalServiceId: key,\n serviceData,\n },\n () => {\n if (\n selectedCondominio !== \"all\" &&\n ((serviceFilter &&\n (serviceFilter.service === \"19;;\" ||\n serviceFilter.service === \"22;;\" ||\n serviceFilter.service === \"23;;\") &&\n situacao === 2) ||\n ((credito || '').toLowerCase() === \"suspenso\"))\n ) {\n this.modalDenied && this.modalDenied.open();\n } else if (\n serviceFilter &&\n serviceFilter.service === \"19;;\" &&\n selectedCondominio !== \"all\" &&\n (selectedCondominio.Itens || []).filter(\n (item) => item[\"dt-ini-ferias\"]\n ).length !== 0\n ) {\n this.alreadyExistModal && this.alreadyExistModal.open();\n } else {\n this.detailModal && this.detailModal.open();\n }\n }\n );\n };\n\n renderServices() {\n const { services } = this.state;\n const { cardClass, selectedService } = this.props;\n const { segmento } = ClienteService.localEntrega;\n\n if (services && services.length > 0)\n return (\n
\n {cardClass !== \"delivery\"\n ? segmento !== \"INDUSTRIAL\"\n ? services.map((service) => (\n (service.ref = ref)}\n key={service.id}\n serviceId={service.id}\n onContract={() => this.toggleServiceCheck(service)}\n onDetail={this.detailService}\n />\n ))\n : services\n .filter((service) => service.type === \"Diversos\")\n .map((service) => (\n (service.ref = ref)}\n key={service.id}\n serviceId={service.id}\n image={service.service}\n cardClass={\"service\"}\n onContract={() => this.toggleServiceCheck(service)}\n onDetail={this.detailService}\n />\n ))\n : services\n .filter((service) => service.type === \"Entregas\")\n .map((service) => (\n (service.ref = ref)}\n image={service.service}\n selectedService={selectedService}\n teste={service.type}\n serviceId={service.id}\n onDetail={this.detailService}\n />\n ))}\n
\n );\n else if (services != null) return \"Não foram encontrados serviços\";\n }\n\n renderDetailModal() {\n const { detailModalServiceId } = this.state;\n const { segmento } = ClienteService.localEntrega;\n\n if (segmento === \"INDUSTRIAL\" && detailModalServiceId === 1)\n return this.getServiceContent(detailModalServiceId);\n else\n return (\n (this.detailModal = ref)}\n shown={false}\n className=\"large\"\n closeButton={true}\n >\n {this.getServiceContent(detailModalServiceId)}\n \n );\n }\n\n renderReligueAdviceModal() {\n return (\n (this.religueAdviceModal = ref)}\n title=\"Atenção!\"\n shown={false}\n imgSrc={WarningImage}\n declineButton={true}\n declineButtonText=\"Não\"\n declineButtonAction={() => this.handleReligueAdvice()}\n confirmButton={true}\n confirmButtonText=\"Sim\"\n confirmButtonAction={() => this.handleConfirmReligue()}\n >\n Para este serviço é necessário que você tenha o medidor e o regulador\n instalados. Você possui estes equipamentos?\n \n );\n }\n\n renderWarrantyTermsModal() {\n return (\n (this.modalWarrantyTerms = ref)}\n className=\"large warranty-terms-modal\"\n shown={false}\n closeButton={true}\n >\n \n \n );\n }\n\n renderExistentProtocolModal() {\n const { serviceOnToggle, selectedCondominio } = this.state;\n return (\n (this.modalExistentProtocol = ref)}\n title=\"Fique Atento!\"\n shown={false}\n closeButton={true}\n declineButton={true}\n declineButtonText=\"Não\"\n confirmButton={true}\n confirmButtonText=\"Sim\"\n confirmButtonAction={(modal) => {\n modal.close();\n const { serviceOnToggle: onToggle } = this.state;\n this.switchChecked(onToggle);\n }}\n >\n Você já possui{\" \"}\n {serviceOnToggle && serviceOnToggle.service === \"19;;\"\n ? \"essa solicitação registrada\"\n : `esse serviço contratado${selectedCondominio === \"all\"\n ? \" para os endereços a seguir:\"\n : \".\"\n }`}\n
\n Deseja contratar {serviceOnToggle && serviceOnToggle.title} novamente\n {selectedCondominio === \"all\" ? \" para esses endereços?\" : \"?\"}\n
\n
\n {selectedCondominio !== \"all\" && (\n \"Modal\n )}\n {selectedCondominio === \"all\" &&\n CondominioService.selectMany &&\n CondominioService.selectMany.length > -1 &&\n CondominioService.selectMany\n .filter(\n (address) =>\n address.idservice ===\n (serviceOnToggle && serviceOnToggle.service)\n )\n .map((address) => (\n \n
\n \n
\n
\n

{address.endereco}

\n
\n
\n \n ))}\n \n );\n }\n\n renderAlreadyExistModal() {\n return (\n (this.alreadyExistModal = ref)}\n title=\"Ops!\"\n shown={false}\n closeButton={true}\n declineButton={true}\n declineButtonText=\"Cancelar\"\n confirmButton={true}\n confirmButtonText=\"Alterar o aviso de ferias coletivas\"\n confirmButtonAction={(modal) => {\n modal.close();\n this.detailModal && this.detailModal.open();\n }}\n >\n Este local já possui um Aviso de Férias Coletivas cadastrado. Alterá-lo\n irá substituir a data anterior!\n \n );\n }\n\n renderDeniedModal() {\n const { \"cod-motivo\": codMotivo } = CondominioService.selected || {};\n const { credito } = ClienteService.localEntrega || {};\n const { outdatedTickets } = this.state;\n return (\n (this.modalDenied = ref)}\n shown={false}\n title=\"Fique Atento!\"\n confirmButton={true}\n confirmButtonText={\n (credito === \"Suspenso\" && codMotivo === 41) ||\n outdatedTickets.length > 0\n ? \"OK\"\n : \"Reativar\"\n }\n confirmButtonAction={() => {\n (credito === \"Suspenso\" && codMotivo === 41) ||\n outdatedTickets.length > 0\n ? redirect(this.props, \"/finances\", {\n tab: \"invoices\",\n selectedStatus: [\"outdated\"],\n })\n : redirect(this.props, \"/home\");\n }}\n >\n
\n {(credito || \"\").toLowerCase() === \"suspenso\"\n ? \"Este local de entrega está bloqueado para abastecimento. Para restabelecer o fornecimento, efetue o pagamento das faturas em atraso.\"\n : \"Este local de entrega está bloqueado para abastecimento. Para restabelecer o fornecimento, clique aqui no botão abaixo e solicite a reativação do seu cadastro.\"}\n \n );\n }\n\n renderModals() {\n return (\n <>\n {this.renderDetailModal()}\n {this.renderReligueAdviceModal()}\n {this.renderWarrantyTermsModal()}\n {this.renderExistentProtocolModal()}\n {this.renderAlreadyExistModal()}\n {this.renderDeniedModal()}\n \n );\n }\n\n renderContent() {\n const { services } = this.state;\n const { cardClass } = this.props;\n\n return (\n <>\n {this.renderServices()}\n
\n {cardClass !== \"delivery\" && (\n
\n redirect(this.props, \"home\")\n }\n style={{ marginTop: \".5rem\" }}\n >\n Contratar\n \n\n redirect(this.props, \"/save-time\")}\n style={{ marginTop: \".5rem\" }}\n >\n Voltar\n \n
\n )}\n \n );\n }\n\n render() {\n const { container: ContainerClass } = this.props;\n\n return (\n <>\n {ContainerClass ? (\n {this.renderContent()}\n ) : (\n this.renderContent()\n )}\n {this.renderModals()}\n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport const ServiceCards = connect(\n null,\n mapDispatchToProps\n)(ServiceCardsComponent);\n\nclass Services extends Component {\n render() {\n return (\n \n \n redirect(this.props, \"/services-confirm\", { services })\n }\n />\n \n );\n }\n}\n\nexport default connect()(Services);\n","import React, { Component } from \"react\";\n\nimport ClienteService from \"../../services/cliente\";\n\nimport apiContext from \"../../api\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\nimport ServiceItem from \"../../components/ServiceItem/ServiceItem\";\nimport PageHeaderImage from \"../../components/PageHeaderImage/PageHeaderImage\";\n\nimport TechnicianImage from \"../../assets/illustrations/technician.png\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport { moneyFormat } from \"../../components/Masks/Masks\";\nimport CondominioService from \"../../services/condominio\";\nimport { LoadingToast } from \"../../components/Toast/Toast\";\n\nclass ServicesConfirmContentComponent extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n let services = [];\n\n if (props.location && props.location.state && props.location.state.services)\n services = props.location.state.services;\n\n this.state = {\n serviceRemoveId: null,\n submited: false,\n services,\n loading: false,\n };\n }\n\n get priceComplement() {\n if ((CondominioService.selectMany || []).length > 1) return \"por endereço\";\n return \"\";\n }\n\n handleSubmit = async () => {\n const {\n CPFCNPJ,\n email,\n [`nome-emit`]: nome,\n telefone,\n } = ClienteService.localEntrega;\n const selectMany = CondominioService.selectMany;\n const { [`local-entrega`]: localEntrega } =\n CondominioService.selected || {};\n const splitedName = nome.split(\" \");\n const firstName = splitedName.shift();\n const lastName = splitedName.join(\" \");\n\n this.props.showLoading();\n\n const updatedServices = [];\n\n for (const service of this.state.services) {\n let compDataList = service.complementaryData;\n if (!compDataList.length) compDataList = [compDataList];\n\n for (const compData of compDataList) {\n if (selectMany && selectMany.length > 0) {\n const promises = selectMany\n .filter((address) => address.idservice === service.service)\n .map((addresses) =>\n this.context.ConsigazApi.geraOcorrencia(\n \"\",\n addresses.idservice,\n addresses.price,\n addresses.codMotivo,\n addresses.nrAcordoComercial,\n CPFCNPJ,\n addresses[\"local-entrega\"],\n {\n ...compData,\n contact: firstName,\n lastNameDept: lastName,\n phone: telefone,\n email: email,\n }\n )\n .then(({ Ocorrencia }) => {\n service.protocol = Ocorrencia[0][\"v-nr-ocorrencia\"] || \"\";\n service.dtprev = Ocorrencia[0][\"v-dt-prev-atendimento\"] || \"\";\n\n updatedServices.push(service);\n this.setState({ services: updatedServices, submited: true });\n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n )\n );\n await Promise.all(promises);\n } else {\n await this.context.ConsigazApi.geraOcorrencia(\n \"\",\n service.service,\n service.price,\n service.codMotivo,\n service.nrAcordoComercial,\n CPFCNPJ,\n localEntrega,\n {\n ...compData,\n contact: firstName,\n lastNameDept: lastName,\n phone: telefone,\n email: email,\n }\n )\n .then(({ Ocorrencia }) => {\n if (Ocorrencia) {\n service.protocol = Ocorrencia[0][\"v-nr-ocorrencia\"] || \"\";\n service.dtprev = Ocorrencia[0][\"v-dt-prev-atendimento\"] || \"\";\n service.deadline = Ocorrencia[0][\"v-dt-prev-atendimento\"] || \"\";\n if (service.deadline.length === 10) {\n const [year, month, day] = service.deadline.split(\"-\");\n service.deadline = new Date(\n parseInt(year),\n parseInt(month) - 1,\n parseInt(day)\n ).toLocaleDateString();\n }\n this.setState({ submited: true });\n }\n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n );\n }\n }\n }\n this.setState({ loading: false });\n\n this.props.dismissLoading();\n };\n\n getServiceDeliveryDay(days) {\n return `${days} dias úteis`;\n }\n\n getServicePrice(service) {\n if (\n service.service === \"2;;\" &&\n service.complementaryData.tipoVazamento === \"Interno\"\n )\n return moneyFormat(service.priceConditional);\n if (service.service === \"15;;\")\n return moneyFormat(service.complementaryData.value);\n return moneyFormat(service.price);\n }\n\n render() {\n return (\n <>\n {this.props.showIllustration !== false && (\n \n )}\n

\n {this.state.submited\n ? this.state.services.filter(\n (service) => service.service === \"20;;\"\n ).length > 0\n ? \"Solicitação(ões) Contratada(s)!\"\n : \"Serviço(s) Contratado(s)!\"\n : \"Confirme a contratação\"}\n

\n

\n {this.state.submited\n ? \"Anote o(s) protocolo(s):\"\n : this.state.services.filter(\n (service) => service.service === \"20;;\"\n ).length > 0\n ? \"Você está prestes a solicitar os serviços abaixo. Confirmar solicitação?\"\n : \"Você está prestes a contratar o(s) serviço(s) abaixo. Confirma a contratação?\"}\n

\n {this.state.services.map((service) => (\n \n {this.state.submited ? (\n <>\n {service.deadline &&\n `Serviço previsto para até o dia ${service.deadline}`}\n
\n Protocolo:\n \n {service.protocol || \"Não encontrado\"}\n \n {((service.price ||\n (service.complementaryData &&\n !service.complementaryData.length &&\n service.complementaryData.value)) && (\n

\n O boleto será enviado para o email cadastrado após a\n execução do serviço.\n

\n )) ||\n \"\"}\n \n ) : (\n <>\n {\" \"}\n {`Valor total: ${this.getServicePrice(service)} ${\n this.priceComplement\n }`}\n
\n {`Previsão de atendimento: ${service.deadline}`}\n \n )}\n
\n ))}\n\n
\n\n {!(ClienteService.localEntrega || {}).isAdmLogin && (\n
\n this.props.onFinish && this.props.onFinish()\n : () => {\n this.setState({ loading: true });\n this.handleSubmit();\n }\n }\n >\n {this.state.submited ? \"OK\" : \"Confirmar contratação\"}\n \n {this.state.loading && }\n
\n )}\n \n );\n }\n}\n\nfunction mapDispatchToServicesConfirmContentProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport const ServicesConfirmContent = connect(\n null,\n mapDispatchToServicesConfirmContentProps\n)(ServicesConfirmContentComponent);\n\nconst ServicesConfirmPage = (props) => (\n \n \n redirect(props, \"/home\")}\n />\n \n \n);\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(ServicesConfirmPage);\n","import React from 'react'\n\nimport HomeTemplate from '../../pages/HomeTemplate/HomeTemplate'\nimport { ServicesConfirmContent } from '../ServicesConfirm/ServicesConfirm'\n\nexport default props => (\n \n \n \n)","import React from \"react\";\n\n// import PrivacyPolicyComponent from \"../../components/PrivacyPolicy/PrivacyPolicy\";\n\nexport default ({ location }) => {\n window.location.href = \"/termo.html\"\n\n return (\n
\n );\n};\n","import React from 'react'\n\nexport default props => (\n <>\n

Termos de Garantia

\n\n

Garantia

\n

- Nossa garantia abrange somente materiais e serviços por nós executados, com validade de 01 (Hum) ano para os Reguladores e Medidores, e 05 (Cinco) anos para os demais itens.

\n\n

Extinção da Garantia

\n

- Por decurso de prazo;

\n

- Interrupção do fornecimento de Gás GLP;

\n

- Assistência Técnica prestada por terceiros, não autorizados pela CONSIGAZ.

\n\n

Parte Comercial

\n 

- As peças relacionadas na \"página 1\" poderão sofrer algumas alterações ao término das instalações.

\n\n

Assistência Técnica e Abastecimento

\n

- Mantemos em quadro de funcionários, equipes especializadas e treinadas dentro dos padrões técnicos exigidos pelos órgãos competentes para execução destes serviços.

\n\n

Vantagens do Cliente CONSIGAZ

\n

- Assistência Técnica Permanente;

\n

- Veículos técnicos abastecidos e equipados com rádio comunicação para Agilidade no Atendimento

\n

- Equipe técnica, treinada dentro das normas da A.B.N.T;

\n

Caso ocorram alterações nos preços do material acima descrito, o orçamento será reavaliado.

\n

- Permanecemos a inteira disposição de V.S.as. quanto ao acima exposto e quaisquer esclarecimento que se fizerem necessários.

\n \n)","import React from \"react\";\n\nimport WarrantyTerms from \"../../components/WarrantyTerms/WarrantyTerms\";\n\nexport default ({ location }) => {\n let { search } = location || {};\n\n search = (search || \"\")\n .replace(\"?\", \"\")\n .split(\"&\")\n .reduce((reduced, param) => {\n const splited = param.split(\"=\");\n if (splited.length > 1) reduced[splited[0]] = splited[1];\n return reduced;\n }, {});\n\n const style = {\n padding: \"2rem\",\n };\n\n if (!search[\"disable-scroll\"])\n Object.assign(style, {\n maxHeight: \"calc(100vh - 4rem)\",\n overflowY: \"scroll\",\n overflowX: \"hidden\",\n WebkitOverflowScrolling: \"touch\",\n });\n\n return (\n
\n \n
\n );\n};\n","import React, { Component } from 'react'\n// import { ResponsiveLine } from 'nivo'\nimport { ResponsiveLine } from '@nivo/line'\n\nimport './LineChart.scss'\n// import colors from '../../assets/colors'\n\n// make sure parent container have a defined height when using\n// responsive component, otherwise height will be 0 and\n// no chart will be rendered.\n// website examples showcase many properties,\n// you'll often use just a few of them.\n\nexport default class LineChart extends Component {\n\n get margin() {\n return { top: 80, right: 40, bottom: 10, left: 40 }\n }\n\n render() {\n const {\n data,\n pointColor,\n pointBorderColor,\n pointLabel,\n pointLabelFormat,\n onClick\n } = this.props\n\n return (\n \n )\n }\n}","export default {\n red: '#ef4c4c',\n yellow: '#fd961e',\n green: '#43be39'\n}","import React from 'react';\n\nexport default class InvoiceService {\n\n static getInvoiceStatus(invoiceData) {\n\n if (!invoiceData) return null\n\n if (invoiceData['val_sdo_tit_acr'] === 0) {\n return 'paid'\n } else {\n const dateVencimento = new Date(`${invoiceData['dat_vencto_tit_acr']} 00:00:00`)\n const dateNow = new Date()\n dateNow.setHours(0)\n dateNow.setMinutes(0)\n dateNow.setSeconds(0)\n dateNow.setMilliseconds(0)\n\n if (dateVencimento < dateNow)\n return 'outdated'\n else\n return 'open'\n }\n }\n\n static getInvoiceBadge(invoiceData) {\n return {\n 'paid': Pago,\n 'outdated': Vencido,\n 'open': Aguardando Pagamento\n }[InvoiceService.getInvoiceStatus(invoiceData)]\n }\n\n static getValidInvoices(invoices) {\n if (!invoices) return null\n\n return invoices.filter(i => i['tt-dados-gerais'] !== undefined)\n }\n\n static getTicketExpiration(invoiceData) {\n if (!invoiceData) return null\n\n return !!invoiceData['dt-cancela']\n }\n}","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport LineChart from \"../LineChart/LineChart\";\nimport colors from \"../../assets/colors\";\nimport InvoiceService from \"../../services/invoice\";\nimport { moneyFormat, weightFormat } from \"../Masks/Masks\";\n\nexport const getMonthLabel = (month) => {\n return [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ][month.monthNumber - 1];\n};\n\nexport const getChartData = (\n invoices,\n invoiceChartCenterIdx,\n chartReference\n) => {\n const validInvoices = InvoiceService.getValidInvoices(invoices);\n\n if (!validInvoices) return null;\n\n const mapedData = validInvoices.map((invoice, itemIdx) => {\n const dadosGerais = invoice[\"tt-dados-gerais\"][0];\n const invoiceDate = new Date(`${dadosGerais[\"dt-leitura\"]} 00:00:00`);\n\n return {\n itemIdx,\n monthNumber: invoiceDate.getMonth() + 1,\n consumption: 0,\n value:\n chartReference === \"quilos\"\n ? dadosGerais[\"kg\"]\n : invoice[\"val_origin_tit_acr\"],\n paid: invoice[\"val_sdo_tit_acr\"] === 0,\n open: invoice[\"val_sdo_tit_acr\"] > 0,\n status: InvoiceService.getInvoiceStatus(invoice),\n selected: itemIdx === invoiceChartCenterIdx,\n };\n });\n\n return sliceData(mapedData, invoiceChartCenterIdx);\n};\n\nexport const adjustCenterIdx = (data, centerIdx) => {\n if (centerIdx > data.length - 1) return parseInt(data.length / 2);\n return centerIdx;\n};\n\nexport const sliceData = (data, centerIdx) => {\n centerIdx = adjustCenterIdx(data, centerIdx);\n\n let sliceStart = centerIdx - 2;\n let sliceEnd = centerIdx + 3;\n\n if (data.length <= 5) {\n sliceStart = 0;\n sliceEnd = 5;\n } else if (sliceStart < 0) {\n sliceStart = 0;\n sliceEnd = data.length < 5 ? data.length : 5;\n } else if (sliceEnd >= data.length) {\n sliceStart = data.length - 5;\n sliceEnd = data.length;\n } else if (sliceStart < 0) {\n sliceEnd += sliceStart * -1;\n }\n\n return data\n .filter((e) => e)\n .map((month) => ({\n ...month,\n selected: month.itemIdx === centerIdx,\n }))\n .slice(sliceStart, sliceEnd);\n};\n\nexport default class MonthlyConsumptionLineChart extends Component {\n static propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n monthNumber: PropTypes.number,\n consumption: PropTypes.number,\n value: PropTypes.number,\n period: PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string,\n }),\n paid: PropTypes.bool,\n open: PropTypes.bool,\n })\n ),\n };\n\n getMonthColor = (monthData) =>\n ({\n paid: colors.green,\n outdated: colors.red,\n open: colors.yellow,\n }[monthData.status]);\n\n getPointColor = (points) => {\n const idx = points.itterIdx || 0;\n points.itterIdx = idx + 1;\n const monthData = this.props.data[idx];\n return this.getMonthColor(monthData);\n };\n\n getPointBorderColor = (point) => \"white\";\n\n getPointLabel = (point) => {\n if (this.props.chartReference === \"quilos\") return weightFormat(point.y);\n else return moneyFormat(point.y);\n };\n\n render() {\n const { data } = this.props;\n\n const chartData = [\n {\n id: \"Valor\",\n data: data.map((month, idx) => ({\n x: `${idx}`,\n y: `${month.value || 0}`,\n })),\n },\n ];\n\n return (\n {\n if (this.props.onClick) {\n // const monthData = this.props.monthsData[node.index]\n // this.props.onClick(monthData)\n }\n }}\n />\n );\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nimport './Notifications.scss'\n\nimport { CSSTransition } from 'react-transition-group'\nimport Card, { getStyle } from '../Card/Card'\nimport { IconClose } from '../Icons/Icons'\n\nexport default class Notifications extends Component {\n\n static propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string,\n styleName: PropTypes.string,\n closeButton: PropTypes.bool,\n children: PropTypes.node\n }))\n }\n\n constructor(props){\n super(props)\n\n this.state = {\n items: props.items || [],\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n return { items: props.items }\n }\n\n closeItem(idx) {\n const { items } = this.state\n\n items[idx].isIn = false\n\n this.setState({ items })\n }\n\n render() {\n let { items } = this.state\n\n items = items.map(item => {\n if (item.isIn === undefined)\n item.isIn = true\n\n return item\n })\n\n return (\n
\n {(items || []).map((item, idx) =>\n \n \n {item.closeButton &&\n {\n e.stopPropagation()\n this.closeItem(idx)\n }} />}\n {item.children}\n \n )\n }\n
\n )\n }\n\n}","import React, { Component } from \"react\";\n\nimport ClienteService from \"../../services/cliente\";\nimport apiContext from \"../../api\";\nimport Modal from \"../Modal/Modal\";\nimport InvoiceImage from \"../../assets/illustrations/invoice.png\";\n\nimport \"./InvoiceModal.scss\";\nimport CondominioService from \"../../services/condominio\";\nimport InvoiceService from \"../../services/invoice\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\n\nclass InvoiceModal extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n invoiceData: props.invoiceData,\n };\n\n }\n\n static contextType = apiContext;\n\n static getDerivedStateFromProps(props, state) {\n return { invoiceData: props.invoiceData };\n }\n\n copyToClipboard = () => {\n this.textArea && this.textArea.select();\n document.execCommand(\"copy\");\n this.props.showToast(\n \"Copiado\",\n \"Seu código foi copiado para sua área de transferência.\"\n );\n this.props.onCopy && this.props.onCopy();\n };\n\n sendByEmail = () => {\n const {email, segmento } = ClienteService?.localEntrega;\n const emailContato = ClienteService?.industrialContato?.email\n\n if (\n (segmento !== \"INDUSTRIAL\" && !email) ||\n (segmento === \"INDUSTRIAL\" && !emailContato)\n ) {\n this.props.showToast(\n \"Ops!\",\n \"Parece que você não tem e-mail cadastrado. Entre no perfil e cadastre agora mesmo para poder receber suas contas!\"\n );\n return null;\n }\n\n const { invoiceData, } = this.state;\n if (!invoiceData) return null;\n\n const { cod_estab, cod_ser_docto, cod_tit_acr } = invoiceData;\n\n this.context.ConsigazApi.shareTicket(cod_estab, cod_ser_docto, cod_tit_acr).then(\n () =>\n this.props.showToast(\n \"Enviado!\",\n `O boleto foi enviado para ${emailContato || email}.`\n ),\n () => this.props.showToast(\"Ops!\", \"Erro ao enviar o boleto.\")\n );\n };\n\n getDate = () => {\n const { invoiceData } = this.state;\n\n if (!invoiceData) return null;\n\n const date = new Date(`${invoiceData[\"dat_transacao\"]} 00:00:00`);\n\n return `${String(date.getMonth() + 1).padStart(\n 2,\n 0\n )}/${date.getFullYear()}`;\n };\n\n getInvoiceBadge(invoiceData) {\n const status = InvoiceService.getInvoiceStatus(invoiceData);\n\n return {\n paid: Pago,\n outdated: Vencido,\n open: Aguardando Pagamento,\n }[status];\n }\n\n open = () => this.modalRef && this.modalRef.open();\n\n close = () => this.modalRef && this.modalRef.close();\n\n openDocument = (invoiceData) => {\n InvoiceService.getInvoiceStatus(invoiceData) !== \"paid\" ? exportInvoice(this.props.showToast, invoiceData) : exportDanf(this.props.showToast, invoiceData) \n }\n\n render() {\n const { invoiceData } = this.state;\n\n if (!invoiceData) return null;\n\n return (\n (this.modalRef = ref)}\n className=\"invoice-modal\"\n title={InvoiceService.getInvoiceStatus(invoiceData) !== \"paid\" ? `Boleto do mês ${this.getDate()}` : `NF do mês ${this.getDate()}`}\n closeButton={true}\n >\n {this.getInvoiceBadge(invoiceData)}\n
\n\n this.openDocument(invoiceData)}\n />\n\n
\n \n
\n\n (this.textArea = ref)}\n style={{ opacity: 0, height: 0 }}\n value={invoiceData[\"linha-digitavel\"] || \"\"}\n onChange={() => null}\n />\n\n
\n {InvoiceService.getInvoiceStatus(invoiceData) !== \"paid\" && (\n \n )}\n
\n \n
\n \n );\n }\n}\n\n// ##################################################################################\n// ###################### DOWNLOAD DO BOLETO ########################################\n// ##################################################################################\nfunction exportInvoice(showToast, invoiceData) {\n const { cod_estab } = invoiceData;\n\n if(!!!cod_estab) {\n showToast(\"Ops!\", 'Esse arquivo não pode ser encontrado.');\n return;\n }\n \n window.open(`/invoice-pdf?acao=ArquivoBoleto&titulo=${titleInvoice(invoiceData)}`);\n}\n\n// ##################################################################################\n// ###################### DOWNLOAD DA NOTA FISCAL ###################################\n// ##################################################################################\nfunction exportDanf(showToast, invoiceData) {\n const { cod_estab } = invoiceData;\n \n if(!!!cod_estab) {\n showToast(\"Ops!\", 'Esse arquivo não pode ser encontrado.');\n return;\n }\n\n window.open(`/danfe-pdf?acao=ArquivoNF&titulo=${titleNF(invoiceData)}`);\n}\n\n// cod_estab == cod_estabel | cod_espec_docto | cod_ser_docto == serie | cod_tit_acr = nr_nota_fis | cod_parcela\nfunction titleInvoice(invoiceData) {\n const { cod_estab, cod_espec_docto, cod_ser_docto, cod_tit_acr, cod_parcela } = invoiceData;\n return `${cod_estab}|${cod_espec_docto}|${cod_ser_docto}|${cod_tit_acr}|${cod_parcela}`;\n}\n\n// cod_estab == cod_estabel | cod_tit_acr == nr-nota-fis | cod_ser_docto == serie \nfunction titleNF(invoiceData) {\n const { cod_estab: cod_estabel, cod_ser_docto: serie, cod_tit_acr: nr_nota_fis } = invoiceData;\n return `${cod_estabel}|${serie}|${nr_nota_fis}`;\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps, null, { forwardRef: true })(\n InvoiceModal\n);\n","import React, { Component } from 'react'\n\nimport Modal from '../Modal/Modal'\n\nimport './ConsumptionModal.scss'\nimport { redirect } from '../Page/Page'\nimport InvoiceService from '../../services/invoice'\nimport { moneyFormat, weightFormat } from '../Masks/Masks'\nimport ClienteService from '../../services/cliente'\nimport TicketService from '../../services/ticket'\nimport moment from 'moment'\nexport default class ConsumptionModal extends Component {\n\n constructor(props) {\n super(props)\n\n this.state = {\n invoiceData: props.invoiceData,\n ticketData: props.ticketData\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n return { invoiceData: props.invoiceData, ticketData: props.ticketData }\n\n }\n\n getInterval = () => {\n const { invoiceData } = this.state\n if (!invoiceData) return null\n\n const dadosGerias = invoiceData['tt-dados-gerais'] && invoiceData['tt-dados-gerais'][0]\n if (!dadosGerias) return null\n\n const startDate = new Date(`${dadosGerias['dt-leitura-ant']} 00:00:00`).toLocaleDateString('pt-br')\n const endDate = new Date(`${dadosGerias['dt-leitura']} 00:00:00`).toLocaleDateString('pt-br')\n\n return `${startDate} - ${endDate}`\n }\n\n getDadosGerias = () => {\n const { invoiceData } = this.state\n\n if (!invoiceData) return null\n\n try {\n return invoiceData['tt-dados-gerais'][0]\n } catch (error) {}\n\n return null\n }\n\n getItens = () => {\n const { invoiceData } = this.state\n\n if (!invoiceData) return null\n\n try {\n return invoiceData['tt-itens']\n } catch (error) {}\n\n return null\n }\n\n open = () => this.modalRef && this.modalRef.open()\n\n close = () => this.modalRef && this.modalRef.close()\n\n render() {\n const { invoiceData, ticketData } = this.state\n const dadosGerais = this.getDadosGerias()\n const itens = this.getItens()\n const { isAdmLogin } = ClienteService.localEntrega;\n const { segmento } = ClienteService.localEntrega;\n\n if (segmento === \"CONTASIM\") {\n if (!dadosGerais)\n return (\n this.modalRef = ref}\n className=\"consumption-modal\"\n title=\"Opa!\"\n closeButton={true}>\n
\n

Para visualizar mais detalhes dessa fatura, entre em contato com a nossa central de atendimento.

\n\n redirect(this.props, '/help')}>\n Fale conosco\n \n \n )\n\n return (\n this.modalRef = ref}\n className=\"consumption-modal\"\n closeButton={true}>\n
\n {InvoiceService.getInvoiceBadge(invoiceData)}\n
\n\n Período do Consumo\n

{this.getInterval()}

\n\n Leitura inicial-final\n

{weightFormat(dadosGerais['leitura-ant'], '')} - {weightFormat(dadosGerais['leitura-atual'], '')}

\n\n Consumo em m³\n

{weightFormat(dadosGerais['metros3'], 'm³')}

\n\n Fator de conversão\n

{weightFormat(dadosGerais['fator-conv'], '')}

\n\n Consumo em Kg\n

{weightFormat(dadosGerais['kg'])}

\n\n Valor do kg do gás\n

{moneyFormat(dadosGerais['vl-unit'])}

\n\n {(itens || []).map((item, idx) => (\n \n {item.descricao}\n

{moneyFormat(item.valor)}

\n
))}\n\n Valor da fatura\n

{moneyFormat(dadosGerais['valor-total'])}

\n
\n\n
\n this.props.onShowInvoice && this.props.onShowInvoice(invoiceData)}\n className=\"link\">\n {InvoiceService.getInvoiceStatus(invoiceData) !== 'paid'\n ? 'Ver boleto'\n : 'Ver nota fiscal'}\n
\n {!isAdmLogin && redirect(this.props, '/contestation', { invoiceData })}>\n Dúvidas com o seu consumo?\n }\n
\n \n )\n }\n\n if (segmento === \"INDUSTRIAL\") {\n if (!ticketData)\n return (\n this.modalRef = ref}\n className=\"consumption-modal\"\n title=\"Opa!\"\n closeButton={true}>\n
\n

Para visualizar mais detalhes dessa fatura, entre em contato com a nossa central de atendimento.

\n\n redirect(this.props, '/help')}>\n Fale conosco\n \n \n )\n\n return (\n this.modalRef = ref}\n className=\"consumption-modal\"\n closeButton={true}>\n
\n {TicketService.getTicketBadge(ticketData)}\n
\n\n Número da nota fiscal\n

{(ticketData['nr-nota-fis'])}

\n\n Série da nota fiscal\n

{(ticketData['serie'])}

\n\n Data de emissão\n

{moment(ticketData['dt-emis-nota']).format(\"DD/MM/YYYY\")}

\n\n Data de vencimento\n

{TicketService.getConsumptionValues(ticketData, \"vencimento\")}

\n\n Nome do(s) item/itens\n

{TicketService.getConsumptionValues(ticketData, \"itens\")}

\n\n Quantidade\n

{TicketService.getConsumptionValues(ticketData, \"quantidade\")}\n {TicketService.getConsumptionValues(ticketData, \"un\") === \"Un\" ?\n \" unidades\"\n : \"\"}

\n\n Valor unitário\n

{moneyFormat(TicketService.getConsumptionValues(ticketData, \"unitario\"))}

\n\n Valor total\n

{moneyFormat(ticketData['vl-tot-nota'])}

\n\n Local de entrega\n

{ticketData['endereco']}

\n\n Número de romaneio\n

{ticketData['nr-romaneio']}

\n
\n\n
\n this.props.onShowInvoice && this.props.onShowInvoice(invoiceData)}\n className=\"link\">\n {TicketService.getTicketStatus(ticketData) !== 'paid'\n ? 'Ver boleto'\n : 'Ver nota fiscal'}\n
\n
\n \n )\n }\n}\n}","import { redirect } from \"../components/Page/Page\";\n\nexport default [\n {\n title: \"Serviços\",\n subtitle: \"Serviços\",\n related: [\"serviço\", \"solicitação\", \"solicitar\", \"contratar\"],\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Vazamento\",\n subtitle: \"Serviços\",\n related: [\"vazamento\"],\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Regulagem de pressão\",\n subtitle: \"Serviços\",\n related: [\"regulagem\", \"pressao\"],\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Teste de estanqueidade\",\n subtitle: \"Serviços\",\n related: [\"teste\", \"estanqueidade\"],\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Troca de medidor\",\n subtitle: \"Serviços\",\n related: [\"trocar\", \"medidores\"],\n segmento: \"CONTASIM\",\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Religue\",\n subtitle: \"Serviços\",\n related: [\"religar\"],\n segmento: \"CONTASIM\",\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Laudo Técnico + ART\",\n subtitle: \"Serviços\",\n related: [\"laudo\", \"tecnico\", \"art\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Alteração no prazo de pagamento\",\n subtitle: \"Serviços\",\n related: [\"alteraçao\", \"prazo de pagamento\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Fale com seu representante\",\n subtitle: \"Serviços\",\n related: [\"representante\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Alterações cadastrais\",\n subtitle: \"Serviços\",\n related: [\"alterações\", \"alterar\", \"cadastrais\", \"cadastro\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Segunda via de contrato\",\n subtitle: \"Serviços\",\n related: [\"segunda via\", \"contrato\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-services\"),\n },\n {\n title: \"Aviso de Férias Coletivas\",\n subtitle: \"Entregas\",\n related: [\"ferias coletivas\", \"aviso\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-delivery\"),\n },\n {\n title: \"Solicitar Abastecimento\",\n subtitle: \"Entregas\",\n related: [\"solicitar\", \"solicitação\", \"abastecimento\", \"abastecer\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-delivery\"),\n },\n {\n title: \"Solicitação e Alteração de programação\",\n subtitle: \"Entregas\",\n related: [\"solicitar\", \"programacao\", \"alterar\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-delivery\"),\n },\n {\n title: \"Protocolos\",\n subtitle: \"Serviços\",\n related: [\"serviços\", \"protocolos\"],\n action: (props) => redirect(props, \"/home-services\", { tab: \"protocol\" }),\n },\n {\n title: \"Consumo\",\n subtitle: \"Consumo\",\n related: [\"consumo\", \"gráfico\"],\n action: (props) => redirect(props, \"/consumption\"),\n },\n {\n title: \"Financeiro\",\n subtitle: \"Financeiro\",\n related: [\"financeiro\", \"fatura\", \"nota fiscal\", \"boleto\"],\n action: (props) => redirect(props, \"/finances\"),\n },\n {\n title: \"Carta de quitação anual\",\n subtitle: \"Financeiro\",\n related: [\"carta\", \"quitação\", \"carta de quitação\"],\n action: (props) =>\n redirect(props, \"/finances\", { tab: \"acquittance-letter\" }),\n },\n {\n title: \"Carta de quitação total\",\n subtitle: \"Financeiro\",\n related: [\"carta\", \"quitação\", \"carta de quitação\"],\n action: (props) =>\n redirect(props, \"/finances\", { tab: \"acquittance-letter\" }),\n },\n {\n title: \"Meus Imóveis\",\n subtitle: \"Imóveis\",\n related: [\"imóvel\", \"imóveis\", \"endereço\"],\n action: (props) => redirect(props, \"/address-list\"),\n },\n {\n title: \"Cancelamento de cadastro\",\n subtitle: \"Imóveis\",\n related: [\"imóvel\", \"imóveis\", \"endereço\", \"cancelar\", \"cancelamento\"],\n action: (props) => redirect(props, \"/address-list\"),\n },\n {\n title: \"Reativação de cadastro\",\n subtitle: \"Imóveis\",\n related: [\"imóvel\", \"imóveis\", \"endereço\", \"reativar\", \"reativação\"],\n action: (props) => redirect(props, \"/address-list\"),\n },\n {\n title: \"Dados pessoais\",\n subtitle: \"Meus dados\",\n related: [\"nome\", \"email\", \"e-mail\", \"dados\", \"telefone\"],\n action: (props) => redirect(props, \"/personal-data\"),\n },\n {\n title: \"Ajuda\",\n subtitle: \"Ajuda\",\n related: [\"ajuda\", \"whatsapp\", \"fale conosco\", \"contato\", \"telefone\"],\n action: (props) => redirect(props, \"/help\"),\n },\n {\n title: \"Contatos da empresa\",\n subtitle: \"Contatos\",\n related: [\"contatos\", \"empresa\", \"telefone\", \"email\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/industrial-contact\"),\n },\n {\n title: \"Indicação de clientes\",\n subtitle: \"Indicação\",\n related: [\"clientes\", \"indicação\", \"contatos\", \"empresa\"],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/recommendation\"),\n },\n {\n title: \"Entregas\",\n subtitle: \"Entregas\",\n related: [\n \"entregas\",\n \"serviços\",\n \"programação\",\n \"férias\",\n \"solicitação\",\n \"solicitar\",\n ],\n segmento: \"INDUSTRIAL\",\n action: (props) => redirect(props, \"/home-delivery\"),\n },\n];\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\n\nimport LineChart from \"../LineChart/LineChart\";\nimport { weightFormat, moneyFormat } from \"../Masks/Masks\";\nimport { sliceData } from \"../MonthlyConsumptionLineChart/MonthlyConsumptionLineChart\";\nimport TicketService from \"../../services/ticket\";\n\nexport const reduceMonths = (tickets) =>\n tickets.reduce((reduced, ticket) => {\n const key = moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\").format(\"YYYYMM\");\n\n if (Object.keys(reduced).indexOf(key) === -1) reduced[key] = [];\n reduced[key].push(ticket);\n return reduced;\n }, {});\n\nexport const getMonthTicketValue = (\n monthTicket,\n filters,\n valueBase = \"unidade\"\n) => {\n const getDuplicataValueOnIndex = (idx) =>\n ((monthTicket.Duplicatas || [])[idx] || {}).valor || 0;\n\n return (\n (TicketService.getTicketStatus(monthTicket) !== \"cancel\" &&\n monthTicket.Itens) ||\n []\n ).reduce((total, item, idx) => {\n if (filters && filters.selectedProduct === \"cilindros\") {\n if (\n !filters ||\n !filters.selectedUnits ||\n filters.selectedUnits.length === 0\n )\n if (valueBase === \"valor\") return total + getDuplicataValueOnIndex(idx);\n else return total + item[\"qt-faturada\"];\n else if (\n filters.selectedUnits.indexOf(item[\"it-codigo\"].toLowerCase()) > -1\n )\n if (valueBase === \"valor\") return total + getDuplicataValueOnIndex(idx);\n else return total + item[\"qt-faturada\"];\n } else if (filters && filters.selectedProduct === \"granel\") {\n if (item[\"un\"].toLowerCase() === \"kg\")\n if (valueBase === \"valor\") return total + getDuplicataValueOnIndex(idx);\n else return total + item[\"qt-faturada\"];\n } else {\n if (valueBase === \"valor\") return total + getDuplicataValueOnIndex(idx);\n else return total + item[\"qt-faturada\"];\n }\n return total;\n }, 0);\n};\n\nexport const getFilteredValue = (\n monthTickets,\n filters,\n valueBase = \"unidade\"\n) =>\n (monthTickets || []).reduce((reducedMonthTickets, monthTicket) => {\n return (\n reducedMonthTickets + getMonthTicketValue(monthTicket, filters, valueBase)\n );\n }, 0);\n\nexport const getTicketsChartData = (\n tickets,\n centerIdx,\n filters,\n shouldSlice = true,\n valueBase = \"unidade\"\n) => {\n const reducedMonths = reduceMonths(tickets || []);\n\n const mapedData = Object.entries(reducedMonths || [])\n .map(([monthKey, monthTickets], itemIdx) => {\n const monthNumber = monthKey.substr(4)\n if (filters) {\n if (\n filters.selectedInterval === \"comparativo\" &&\n filters.selectedMonths.indexOf(parseInt(monthNumber)) === -1\n )\n return null;\n\n if (filters.selectedAddress === \"especificos\")\n monthTickets = (monthTickets || []).filter((m) => {\n if ((filters.selectedDeliveryPlaces || []).length) {\n return (\n filters.selectedDeliveryPlaces.indexOf(\n m[\"local-entrega\"]\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toUpperCase()\n ) > -1\n );\n } else {\n return (\n filters.selectedAddresses.indexOf(\n `${m.endereco}, ${m.cidade}, ${m.estado}`\n ) > -1\n );\n }\n });\n\n if (filters.selectedInitialDate) {\n const initialDate = moment(filters.selectedInitialDate, \"DD/MM/YYYY\");\n\n monthTickets = (monthTickets || []).filter((ticket) => {\n const ticketDate = moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\");\n return ticketDate.isSameOrAfter(initialDate);\n });\n\n if (monthTickets.length === 0) return null;\n }\n\n if (filters.selectedLastDate) {\n const lastDate = moment(filters.selectedLastDate, \"DD/MM/YYYY\");\n\n monthTickets = (monthTickets || []).filter((ticket) => {\n const ticketDate = moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\");\n return ticketDate.isSameOrBefore(lastDate);\n });\n\n if (monthTickets.length === 0) return null;\n }\n }\n\n if (monthTickets.length === 0) return null;\n\n const value = getFilteredValue(monthTickets, filters, valueBase);\n\n\n return {\n itemIdx,\n value,\n monthNumber: +monthNumber,\n selected: false,\n };\n })\n .filter((e) => e)\n .map((m, itemIdx) => ({\n ...m,\n itemIdx,\n selected: itemIdx === centerIdx,\n }));\n\n if (shouldSlice) return sliceData(mapedData, centerIdx);\n else return mapedData;\n};\n\nexport default class MonthlyTicketsLineChart extends Component {\n static propTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n monthNumber: PropTypes.number,\n value: PropTypes.number,\n period: PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string,\n }),\n })\n ),\n };\n\n getPointLabel = (point, valueBase = \"unidade\") => {\n const { filters } = this.props;\n\n if (valueBase === \"valor\") return moneyFormat(point.y);\n else if (!filters || filters.selectedProduct === \"granel\")\n return weightFormat(point.y);\n else return `${(point.y || 0).toFixed(0)} un.`;\n };\n\n render() {\n const { data, valueBase } = this.props;\n\n const chartData = [\n {\n id: \"Valor\",\n data: data.map((month, idx) => ({\n x: `${idx}`,\n y: `${month.value || 0}`,\n })),\n },\n ];\n\n return (\n this.getPointLabel(point, valueBase)}\n // onClick={(node) => {\n // if (this.props.onClick) {\n // // const monthData = this.props.monthsData[node.index]\n // // this.props.onClick(monthData)\n // }\n // }}\n />\n );\n }\n}\n","import React from \"react\";\nimport apiContext from '../../api'\n\nimport \"./CardCarrossel.scss\";\n\nexport default class CardCarrossel extends React.Component {\n static contextType = apiContext\n\n constructor(props) {\n super(props);\n\n this.state = {\n banners: [],\n };\n }\n\n componentDidMount() {\n this.context.ConsigazApi.dinamicBanners().then((response) => {\n this.setState({ banners: response.Saida.Banners })\n });\n }\n\n get className() {\n return `card ${this.props.className}`;\n }\n\n renderTitle() {\n const { title } = this.props;\n\n if (title) return

{title}

;\n }\n\n handleClick2() {\n window.open('https://conteudo.consigaz.com.br/energia', '_blank');\n return null;\n }\n\n render() {\n const { children, style } = this.props;\n return (\n <>\n {this.state.banners.map((banner) => (\n window.open(banner.ApontarPara, \"_blank\")}\n />\n ))}\n \n );\n }\n}\n","import React, { Component } from \"react\";\nimport Helmet from \"react-helmet\";\n\nimport \"./Home.scss\";\n\nimport ClienteService from \"../../services/cliente\";\nimport CondominioService from \"../../services/condominio\";\n\nimport apiContext from \"../../api\";\n\nimport HomeTemplate, { redirect } from \"../HomeTemplate/HomeTemplate\";\n\nimport Card from \"../../components/Card/Card\";\nimport Modal from \"../../components/Modal/Modal\";\nimport MonthlyConsumptionLineChart, {\n getMonthLabel,\n getChartData,\n} from \"../../components/MonthlyConsumptionLineChart/MonthlyConsumptionLineChart\";\nimport NavigationBar from \"../../components/NavigationBar/NavigationBar\";\nimport Notifications from \"../../components/Notifications/Notifications\";\nimport InvoiceModal from \"../../components/InvoiceModal/InvoiceModal\";\nimport LabelSwitch from \"../../components/LabelSwitch/LabelSwitch\";\nimport {\n maskCpfCnpj,\n maskPhoneNumber,\n moneyFormat,\n toTitleCase,\n} from \"../../components/Masks/Masks\";\nimport EmptyDataInvoiceImage from \"../../assets/illustrations/empty-data-invoice.png\";\nimport CalendarImage from \"../../assets/illustrations/calendar.png\";\n\nimport { IconSpinner, IconSearch } from \"../../components/Icons/Icons\";\nimport ConsumptionModal from \"../../components/ConsumptionModal/ConsumptionModal\";\nimport InvoiceService from \"../../services/invoice\";\nimport { bindActionCreators } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { SearchOptions } from \"../../components/SearchOptions/SearchOptions\";\nimport fastSearchOptions from \"../../assets/fast-search\";\nimport MonthlyTicketsLineChart, {\n getTicketsChartData,\n} from \"../../components/MonthlyTicketsLineChart/MonthlyTicketsLineChart\";\nimport moment from \"moment\";\nimport TicketService from \"../../services/ticket\";\nimport CardCarrossel from \"./CardCarrossel\";\n\nconst LoadingLine = (props) => (\n

\n \n

\n);\n\nclass Home extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n const locaisEntrega = ClienteService.localEntrega;\n const notifications = [];\n const chat = [];\n const { segmento } = ClienteService.localEntrega;\n\n const { \"cod-motivo\": codMotivo } = CondominioService.selected || {};\n\n const { credito } = ClienteService.localEntrega || {};\n\n if (credito === \"Suspenso\") {\n if (codMotivo === 41 && segmento === \"INDUSTRIAL\")\n notifications.push({\n title: \"Inadimplência\",\n styleName: \"danger\",\n children: (\n <>\n Cadastro bloqueado para abastecimento. Para restabelecer o\n fornecimento, efetue o pagamento das faturas atrasadas.\n \n ),\n closeButton: true,\n onClick: () => redirect(this.props, \"/finances\", { tab: \"invoices\" }),\n });\n if (codMotivo === 41 && segmento !== \"INDUSTRIAL\")\n notifications.push({\n title: \"Inadimplência\",\n styleName: \"danger\",\n children: <>O gás deste imóvel está cortado.,\n closeButton: true,\n onClick: () =>\n redirect(this.props, \"/finances\", { tab: \"open-invoices\" }),\n });\n else if (codMotivo === 53)\n notifications.push({\n title: \"Problemas no medidor\",\n styleName: \"danger\",\n children: (\n <>\n {segmento === \"INDUSTRIAL\"\n ? \"O gás deste endereço está cortado.\"\n : \"O gás deste imóvel está cortado.\"}\n \n ),\n closeButton: true,\n onClick: () => redirect(this.props, \"/home-services\"),\n });\n else if (codMotivo !== 0)\n notifications.push({\n title:\n {\n 15: \"Corte no Gás\",\n 41: \"Inadimplência\",\n 51: \"Imóvel Cancelado\",\n 52: \"Cadastro Incompleto\",\n 53: \"Problemas no Medidor\",\n }[String(codMotivo)] || \"\",\n styleName: \"danger\",\n children: (\n <>\n {segmento === \"INDUSTRIAL\"\n ? \"O gás deste endereço está cortado.\"\n : \"O gás deste imóvel está cortado.\"}\n \n ),\n closeButton: true,\n onClick: () => redirect(this.props, \"/home-services\"),\n });\n }\n\n this.state = {\n addresses: (locaisEntrega && locaisEntrega.ClienteEntrRetorno) || [],\n invoices: null,\n chartCenterIdx: null,\n chartReference: \"reais\",\n notifications,\n chat,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n renderConfirmDataModal: false,\n clientContactData: null,\n addressOnReactivation: null,\n };\n }\n\n get shouldShowInactive() {\n return (\n this.state.selectedCondominio !== \"all\" &&\n CondominioService.selected &&\n (CondominioService.selected || {}).situacao === 2\n );\n }\n\n componentDidMount() {\n const { CPFCNPJ, segmento } = ClienteService.localEntrega || {};\n const { cpf: cpfContato } = ClienteService.industrialContato || {};\n\n if (segmento === \"INDUSTRIAL\") this.getIndustrialChartData();\n else this.getContaSimChartData();\n\n // this.context.ConsigazApi.memConsultaLocalEntrega(CPFCNPJ)\n // .then(ClienteService.consultaLocalEntregaApiParser)\n // .then(\n // () => {\n // const { segmento } = ClienteService.localEntrega || {};\n\n // if (segmento === \"INDUSTRIAL\") this.getIndustrialChartData();\n // else this.getContaSimChartData();\n // },\n // () =>\n // this.props.showToast(\n // \"Ops\",\n // \"Erro ao buscar as informações de local de entrega.\"\n // )\n // );\n\n\n if (segmento === \"CONTASIM\")\n this.setState({\n renderConfirmDataModal:\n !ClienteService.haveClosedPersonalDataModal(CPFCNPJ),\n });\n else if (segmento === \"INDUSTRIAL\") {\n this.context.ConsigazApi.consultaContatos(CPFCNPJ).then(({ Cliente }) => {\n if (Cliente && Cliente.ClienteRetorno && Cliente.ClienteRetorno.length)\n if (Cliente.ClienteRetorno[0].ClienteContatoRetorno)\n this.setState({\n renderConfirmDataModal: true,\n clientContactData: (\n Cliente.ClienteRetorno[0].ClienteContatoRetorno || []\n )\n .filter((dados) => dados[\"cpf-contato\"] === cpfContato)\n .reduce(\n (reduced, contact) => {\n if (contact[\"e-mail\"]) {\n reduced.values.push({\n index: reduced.emails,\n title: contact.tipo,\n value: contact[\"e-mail\"],\n type: \"email\",\n });\n reduced.emails++;\n }\n if (contact.telefone) {\n reduced.values.push({\n index: reduced.phones,\n title: contact.tipo,\n value: maskPhoneNumber(contact.telefone),\n type: \"telefone\",\n });\n reduced.phones++;\n }\n return reduced;\n },\n { values: [], phones: 0, emails: 0 }\n ).values,\n });\n });\n }\n }\n\n getIndustrialChartData() {\n const { CPFCNPJ } = ClienteService.localEntrega;\n\n const dataFim = moment().startOf(\"month\").format(\"YYYY/MM/DD\");\n const dataIni = moment()\n .subtract(1, \"year\")\n .endOf(\"month\")\n .format(\"YYYY/MM/DD\");\n const { endereco } = CondominioService.selected || {};\n this.context.ConsigazApi.memConsultaNotaFiscal(CPFCNPJ, dataIni, dataFim)\n .then(({ Notas }) => {\n if (Notas && Notas.NotasFiscais && Notas.NotasFiscais.length) {\n const tickets = Notas.NotasFiscais.filter((ticket) => {\n if (endereco) return endereco.indexOf(ticket[\"endereco\"]) > -1;\n return true;\n });\n\n const notifications = this.state.notifications || [];\n\n if (tickets && tickets.length) {\n const outdatedTickets = tickets.filter(\n (i) => TicketService.getTicketStatus(i) === \"outdated\"\n );\n const avencerTickets = tickets.filter(\n (i) => TicketService.getTicketStatus(i) === \"avencer\"\n );\n\n if (outdatedTickets.length > 0)\n notifications.push({\n styleName: \"toplineDanger\",\n children: (\n <>\n Faturas em atraso{\" \"}\n \n {outdatedTickets.length}\n \n
\n Efetue o pagamento e evite a suspensão do abastecimento.\n \n ),\n closeButton: true,\n onClick: () =>\n redirect(this.props, \"/finances\", {\n tab: \"invoices\",\n selectedStatus: [\"outdated\"],\n }),\n });\n\n if (avencerTickets.length > 0)\n notifications.push({\n styleName: \"toplinePrimary\",\n children: (\n <>\n Faturas a vencer{\" \"}\n \n {avencerTickets.length}\n \n
\n Você tem {avencerTickets.length} faturas que vencerão nos\n próximos 3 dias. Efetue o pagamento e evite a suspensão do\n abastecimento.\n \n ),\n closeButton: true,\n onClick: () =>\n redirect(this.props, \"/finances\", {\n tab: \"invoices\",\n selectedStatus: [\"avencer\"],\n }),\n });\n }\n this.setState({\n tickets,\n chartReference:\n tickets &&\n tickets.some((ticket) =>\n (ticket.Itens || []).some((i) => i.un.toLowerCase() === \"kg\")\n ) === true\n ? \"granel\"\n : \"cilindros\",\n chartCenterIdx: Notas.NotasFiscais.length - 1,\n invoiceInFocus: Notas.NotasFiscais[Notas.NotasFiscais.length - 1],\n });\n } else {\n this.setState({ tickets: [] });\n }\n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n );\n }\n\n generateOrder = () => {\n const { complementaryData } = this.state;\n const {\n [`local-entrega`]: localEntrega,\n email,\n [`nome-emit`]: nome,\n telefone,\n } = CondominioService.selected;\n\n const splitedName = nome.split(\" \");\n const firstName = splitedName.shift();\n const lastName = splitedName.join(\" \");\n\n const { CPFCNPJ } = ClienteService.localEntrega;\n\n this.context.ConsigazApi.geraOcorrencia(\n null,\n \"reativacao\",\n null,\n null,\n null,\n CPFCNPJ,\n localEntrega,\n {\n ...complementaryData,\n contact: firstName,\n lastNameDept: lastName,\n phone: telefone,\n email: email,\n }\n ).then(\n ({ Ocorrencia }) => {\n if (Ocorrencia) {\n this.setState({\n protocol: {\n ...Ocorrencia[0],\n title: \"Reativação\",\n },\n content: \"protocol\",\n });\n redirect(this.props, \"/home-services\", { tab: \"protocol\" });\n } else\n this.props.showToast(\"Ops!\", \"Não foi possível gerar a ocorrencia.\");\n },\n (errorDescription) => {\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n };\n\n getContaSimChartData() {\n const { CPFCNPJ } = ClienteService.localEntrega;\n const { [`local-entrega`]: localEntrega } =\n CondominioService.selected || {};\n\n const dataFim = new Date();\n const dataIni = new Date();\n dataIni.setFullYear(dataFim.getFullYear() - 1);\n\n this.context.ConsigazApi.memConsultaSegundaViaBoleto(\n CPFCNPJ,\n this.context.ConsigazApi.formatDate(dataIni),\n this.context.ConsigazApi.formatDate(dataFim),\n localEntrega\n )\n .then(({ dsRetorno }) => {\n if (dsRetorno && dsRetorno[\"tt-cliente-retorno\"]) {\n const invoices = dsRetorno[\"tt-cliente-retorno\"];\n\n const notifications = this.state.notifications || [];\n if (invoices && invoices.length) {\n const openInvoices = invoices.filter(\n (i) => InvoiceService.getInvoiceStatus(i) === \"outdated\"\n );\n\n if (openInvoices.length > 0)\n notifications.push({\n styleName: \"toplineDanger\",\n children: (\n <>\n Você possui faturas pendentes{\" \"}\n \n {openInvoices.length}\n \n \n ),\n closeButton: true,\n onClick: () =>\n redirect(this.props, \"/finances\", { tab: \"open-invoices\" }),\n });\n }\n\n const validInvoices = InvoiceService.getValidInvoices(invoices);\n\n this.setState({\n invoices,\n notifications,\n chartCenterIdx: validInvoices.length - 1,\n invoiceInFocus: validInvoices[validInvoices.length - 1],\n });\n } else {\n this.setState({ invoices: [] });\n }\n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n );\n this.context.ConsigazApi.memConsultaServicos(CPFCNPJ, localEntrega)\n .then(({ ServicoRetorno }) => {\n this.setState({ services: ServicoRetorno || [] });\n })\n .catch(() => console.warn(\"Erro ao buscar os serviços\"));\n }\n\n getChartData() {\n const { tickets, invoices, chartCenterIdx, chartReference } = this.state;\n const { segmento } = ClienteService.localEntrega || {};\n\n if (segmento === \"INDUSTRIAL\")\n return getTicketsChartData(tickets, chartCenterIdx, {\n selectedProduct: chartReference,\n });\n else return getChartData(invoices, chartCenterIdx, chartReference);\n }\n\n getProximaLeitura() {\n const { invoices } = this.state;\n\n let lastInvoice =\n invoices && invoices.length && invoices[invoices.length - 1];\n\n if (!lastInvoice) return null;\n\n try {\n return new Date(\n `${lastInvoice[\"tt-dados-gerais\"][0][\"prox-leitura\"]} 00:00:00`\n ).toLocaleDateString(\"pt-br\");\n } catch (error) {}\n\n return null;\n }\n\n renderPersonalDataModal() {\n const { renderConfirmDataModal: shouldRenderModal, clientContactData } =\n this.state;\n const {\n CPFCNPJ,\n [`nome-emit`]: nome,\n telefone,\n email,\n segmento,\n } = ClienteService.localEntrega || {};\n\n if (!CPFCNPJ || ClienteService.haveClosedPersonalDataModal(CPFCNPJ))\n return null;\n\n if (shouldRenderModal && segmento === \"CONTASIM\") {\n return (\n (this.personalDataModal = ref)}\n title=\"Confirme seus dados\"\n closeButton={true}\n className=\"personal-data-home-modal\"\n >\n
\n

Cpf

\n {maskCpfCnpj(CPFCNPJ)}\n\n

Nome completo

\n {nome}\n\n

Telefone

\n {maskPhoneNumber(telefone)}\n\n

Email

\n {email}\n
\n\n
\n {\n ClienteService.setHaveClosedPersonalDataModal(CPFCNPJ);\n redirect(this.props, \"/personal-data\");\n }}\n className=\"block link\"\n >\n Completar meus dados\n \n\n {\n ClienteService.setHaveClosedPersonalDataModal(CPFCNPJ);\n this.personalDataModal && this.personalDataModal.close();\n }}\n className=\"block link secondary\"\n >\n Meus dados estão corretos\n \n
\n \n );\n } else if (shouldRenderModal && segmento === \"INDUSTRIAL\") {\n return (\n (this.personalDataModal = ref)}\n title=\"Confirme os dados de contato da empresa\"\n closeButton={true}\n className=\"personal-data-home-modal\"\n >\n
\n {clientContactData.map((contact) => (\n <>\n

{`${toTitleCase(contact.type)} ${\n contact.index + 1\n }`}

\n

\n {toTitleCase(contact.title)}\n

\n {contact.value}\n \n ))}\n
\n\n
\n {\n ClienteService.setHaveClosedPersonalDataModal(CPFCNPJ);\n redirect(this.props, \"/personal-data\");\n }}\n className=\"block link\"\n >\n Atualizar os dados\n \n\n {\n ClienteService.setHaveClosedPersonalDataModal(CPFCNPJ);\n this.personalDataModal && this.personalDataModal.close();\n }}\n className=\"block link secondary\"\n >\n Os dados estão corretos\n \n
\n \n );\n }\n }\n\n renderInvoiceCards() {\n const { invoices } = this.state;\n const proximaLeitura = this.getProximaLeitura();\n\n let lastInvoice =\n invoices && invoices.length && invoices[invoices.length - 1];\n\n return (\n (\n <>\n {\n const validInvoices =\n InvoiceService.getValidInvoices(invoices);\n this.setState(\n {\n chartCenterIdx: validInvoices.length - 1,\n invoiceInFocus: validInvoices[validInvoices.length - 1],\n },\n () => this.invoiceModal && this.invoiceModal.open()\n );\n },\n disabled: !lastInvoice,\n },\n ]}\n >\n {(lastInvoice && (\n <>\n {InvoiceService.getInvoiceBadge(lastInvoice)}\n {(() => {\n const date = new Date(\n `${lastInvoice[\"dat_transacao\"]} 00:00:00`\n );\n return `${String(date.getMonth() + 1).padStart(\n 2,\n 0\n )}/${date.getFullYear()}`;\n })()}\n \n {moneyFormat(lastInvoice[\"val_origin_tit_acr\"])}\n \n \n )) ||\n \"Não existem faturas abertas\"}\n \n {proximaLeitura && (\n \n {proximaLeitura}\n \n )}\n \n \n ) || \n );\n }\n\n renderContaSimContent(fastSearchText, filteredSearch) {\n const { invoices, chartCenterIdx } = this.state;\n\n const chartData = this.getChartData();\n\n return (\n <>\n {}\n
\n
\n \n \n this.setState({ fastSearchText: e.target.value })\n }\n value={fastSearchText}\n style={{\n color: \"grey\",\n borderColor: \"darkgrey\",\n width: \"calc(100% - 30px)\",\n }}\n placeholder=\"O que você está procurando?\"\n />\n \n {fastSearchText && (\n \n \n \n )}\n
\n

\n {(invoices !== null && this.renderInvoiceCards()) || (\n \n )}\n
\n {(invoices && (\n <>\n
\n

Histórico de consumo

\n {chartData.length ? (\n <>\n
\n \n
\n ({\n value: month,\n label: getMonthLabel(month),\n active: month.selected,\n onClick: () =>\n this.setState({\n chartCenterIdx: month.itemIdx,\n invoiceInFocus: month,\n }),\n }))}\n defineActive={true}\n />\n \n ) : (\n

\n \n

\n )}\n

\n {\n this.setState(\n {\n invoiceInFocus:\n InvoiceService.getValidInvoices(invoices)[\n chartCenterIdx\n ],\n },\n () =>\n this.consumptionModal && this.consumptionModal.open()\n );\n }}\n disabled={chartData.length === 0}\n >\n Detalhamento do consumo\n \n

\n
\n \n )) || }\n
\n \n );\n }\n\n renderNextDelivery() {\n const nextDelivery = TicketService.getNextDelivery();\n\n const { ClienteEntrRetorno: addressList } =\n ClienteService.localEntrega || {};\n const selectAll = CondominioService.selectAll;\n\n if (selectAll) {\n let deliveryList = [];\n addressList.forEach((address) => {\n const nextDelivery = TicketService.getNextDeliveryFromAddress(address);\n if (nextDelivery)\n deliveryList.push({ ...nextDelivery, endereco: address.endereco });\n });\n\n return (\n <>\n \n
\n \n
\n {deliveryList.map((nextDelivery) => (\n \n \n {nextDelivery.endereco}\n

\n\n \n Previsão da próxima entrega\n

\n \n {nextDelivery[\"dt-prox-entrega\"] &&\n moment(\n nextDelivery[\"dt-prox-entrega\"],\n \"YYYY-MM-DD\"\n ).format(\"DD/MM/YYYY\")}\n \n\n

\n Produto: {nextDelivery[\"desc-comercial\"]}\n

\n

\n Programação: {nextDelivery[\"programacao\"]}\n

\n
\n ))}\n
\n \n );\n } else if (nextDelivery) {\n return (\n \n {!selectAll ? (\n \n

Previsão da próxima entrega

\n \n {nextDelivery[\"dt-prox-entrega\"] &&\n moment(nextDelivery[\"dt-prox-entrega\"], \"YYYY-MM-DD\").format(\n \"DD/MM/YYYY\"\n )}\n \n\n

\n Produto: {nextDelivery[\"desc-comercial\"]}\n

\n

\n Programação: {nextDelivery[\"programacao\"]}\n

\n\n
\n\n {/* \n redirect(this.props, \"/home-delivery\", {\n selectedService: \"23;;\",\n })\n }\n >\n Ver entregas\n */}\n
\n ) : (\n todos..\n )}\n \n \n );\n } else if (!this.shouldShowInactive) {\n return (\n <>\n \n redirect(this.props, \"/home-delivery\", {\n selectedService: \"23;;\",\n })\n }\n >\n \"Calendar\"\n

Evite ficar desabastecido!

\n \n Cadastre uma programação de entrega automática.\n \n {/* */}\n \n \n \n );\n }\n }\n\n renderIndustrialContent(fastSearchText, filteredSearch) {\n const { tickets, chartReference } = this.state;\n const { segmento } = ClienteService.localEntrega || {};\n\n const chartData = this.getChartData();\n\n return (\n <>\n {}\n
\n
\n {this.shouldShowInactive ? (\n \n Este endereço está inativo  \n {\n if (segmento === \"INDUSTRIAL\") {return redirect(this.props, \"/help\")};\n e.preventDefault();\n e.stopPropagation();\n this.setState(\n {\n addressOnReactivation: CondominioService.selected || {},\n },\n () => this.reactivateModal && this.reactivateModal.open()\n );\n }}\n >\n Reativar cadastro\n \n
\n ) : (\n \"\"\n )}\n

\n \n this.setState({ fastSearchText: e.target.value })\n }\n value={fastSearchText}\n style={{\n margin: \"0 auto\",\n color: \"grey\",\n borderColor: \"darkgrey\",\n }}\n placeholder=\"O que você está procurando?\"\n />\n \n
\n {fastSearchText && (\n \n \n \n )}\n

\n {tickets ? this.renderNextDelivery() : }\n
\n {(tickets && (\n
\n

Histórico de consumo

\n

\n \n {this.state.selectedCondominio !== \"all\"\n ? this.state.selectedCondominio.endereco\n : \"Todos os endereços\"}\n \n

\n\n {chartData.length ? (\n <>\n \n (ticket.Itens || []).some(\n (i) => i.un.toLowerCase() === \"kg\"\n )\n ) && {\n label: \"Granel\",\n onClick: () =>\n this.setState({ chartReference: \"granel\" }),\n }) ||\n null,\n (tickets.some((ticket) =>\n (ticket.Itens || []).some(\n (i) => i.un.toLowerCase() !== \"kg\"\n )\n ) && {\n label: \"Cilindros\",\n onClick: () =>\n this.setState({ chartReference: \"cilindros\" }),\n }) ||\n null,\n ].filter((e) => e)}\n />\n
\n
\n \n
\n ({\n value: month,\n label: getMonthLabel(month),\n active: month.selected,\n onClick: () =>\n this.setState({\n chartCenterIdx: month.itemIdx,\n invoiceInFocus: month,\n }),\n }))}\n defineActive={true}\n />\n \n ) : (\n <>\n redirect(this.props, \"/consumption\")}\n >\n \n

Aqui você visualizará seu consumo por mês

\n

\n \n )}\n
\n )) || }\n \n \n );\n }\n\n render() {\n const { invoiceInFocus, fastSearchText, services } = this.state;\n const { segmento } = ClienteService.localEntrega || {};\n\n const filteredSearch =\n (fastSearchText &&\n [\n ...(fastSearchOptions || [])\n .filter((opt) => !opt.segmento || opt.segmento === segmento)\n .map((opt) => ({\n title: toTitleCase(opt.title),\n description: opt.subtitle,\n related: [opt.title, opt.subtitle, ...opt.related],\n onClick: () => opt.action(this.props),\n })),\n ...((segmento !== \"INDUSTRIAL\" && services) || []).map((serv) => ({\n title: toTitleCase(serv.descricao),\n description: \"Serviços\",\n related: [\"serviços\", serv.descricao],\n onClick: () => redirect(this.props, \"/home-services\"),\n })),\n ].filter(\n (opt) =>\n opt.related\n .join(\"\")\n .toLowerCase()\n .indexOf(fastSearchText.toLowerCase()) > -1\n )) ||\n null;\n\n return (\n (this.template = ref)}\n history={this.props.history}\n activeTab=\"Home\"\n >\n {segmento === \"INDUSTRIAL\"\n ? this.renderIndustrialContent(fastSearchText, filteredSearch)\n : this.renderContaSimContent(fastSearchText, filteredSearch)}\n {this.renderPersonalDataModal()}\n {invoiceInFocus && (\n <>\n (this.invoiceModal = ref)}\n template={this.template}\n invoiceData={invoiceInFocus}\n onCopy={() => this.modalBoleto && this.modalBoleto.close()}\n />\n (this.consumptionModal = ref)}\n history={this.props.history}\n invoiceData={invoiceInFocus}\n onShowInvoice={(invoiceData) => {\n this.invoiceModal && this.invoiceModal.open();\n this.consumptionModal && this.consumptionModal.close();\n }}\n />\n \n )}\n (this.reactivateModal = ref)}\n title=\"Reative!\"\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={this.generateOrder}\n >\n Ficaremos muito felizes em tê-lo de volta! Entraremos em contato para\n apresentar os próximos passos.\n \n {segmento === \"INDUSTRIAL\" && (\n <>\n \n \n \n \n )}\n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(Home);\n","import React, { Component } from \"react\";\nimport Modal from \"../../components/Modal/Modal\";\nimport CondominioService from \"../../services/condominio\";\n\nclass ChartFilterModal extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedProduct: \"granel\",\n selectedUnits: [],\n selectedAddress: \"todos\",\n selectedAddresses: [],\n selectedDeliveryPlaces: [],\n selectedInterval: \"ultimo-ano\",\n selectedMonths: [],\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n get availableProducts() {\n const { productsData } = this.props;\n return Object.entries(productsData || {}).reduce(\n (reduced, [key, value]) => {\n if (reduced.indexOf(key) === -1) reduced.push(key);\n return reduced;\n },\n []\n );\n }\n\n get showProductsFilter() {\n return this.availableProducts.length > 1;\n }\n\n get onlyProduct() {\n const { productsData } = this.props;\n return (Object.values(\n Object.entries(productsData || {}).reduce((reduced, [key, value]) => {\n if (!reduced[key]) reduced[key] = value;\n return reduced;\n }, {})\n ) || [])[0];\n }\n\n filterByUnits(selectedUnits) {\n this.setState(\n { selectedProduct: \"cilindros\", selectedUnits },\n this.onSubmit\n );\n }\n\n filterByAddress(address) {\n const { addressData } = this.props;\n\n const addrIdx = addressData.addresses.indexOf(address);\n if (addrIdx > -1)\n this.setState(\n {\n selectedAddress: \"especificos\",\n selectedAddresses: [address],\n selectedDeliveryPlaces: [addressData.deliveryPlaces[addrIdx]],\n },\n this.onSubmit\n );\n }\n\n onSubmit = () => {\n const { onSubmit } = this.props;\n const {\n selectedProduct,\n selectedUnits,\n selectedAddress,\n selectedAddresses,\n selectedDeliveryPlaces,\n selectedInterval,\n selectedMonths,\n } = this.state;\n\n onSubmit &&\n onSubmit({\n selectedProduct: this.showProductsFilter\n ? selectedProduct\n : ((this.onlyProduct || {}).un || \"\").toLowerCase() === \"kg\"\n ? \"granel\"\n : \"cilindros\",\n selectedUnits: this.showProductsFilter\n ? selectedUnits\n : this.availableProducts,\n selectedAddress,\n selectedAddresses,\n selectedDeliveryPlaces,\n selectedInterval,\n selectedMonths,\n });\n };\n\n toggleUnit(unit) {\n const { selectedUnits } = this.state;\n\n if (selectedUnits.indexOf(unit) === -1)\n this.setState({ selectedUnits: [...selectedUnits, unit] });\n else\n this.setState({\n selectedUnits: selectedUnits.filter((un) => un !== unit),\n });\n }\n\n toggleAddress(addr) {\n const { selectedAddresses } = this.state;\n\n if (selectedAddresses.indexOf(addr) === -1)\n this.setState({ selectedAddresses: [...selectedAddresses, addr] });\n else\n this.setState({\n selectedAddresses: selectedAddresses.filter((un) => un !== addr),\n });\n }\n\n toggleMonth(number) {\n const { selectedMonths } = this.state;\n\n if (selectedMonths.indexOf(number) === -1)\n if (selectedMonths.length < 3) {\n this.setState({ selectedMonths: [...selectedMonths, number] });\n } else {\n selectedMonths.shift();\n this.setState({ selectedMonths: [...selectedMonths, number] });\n }\n else\n this.setState({\n selectedMonths: selectedMonths.filter((un) => un !== number),\n });\n }\n\n render() {\n const { shown, monthsData, productsData, addressData } = this.props;\n const {\n selectedProduct,\n selectedUnits,\n selectedAddress,\n selectedAddresses,\n selectedInterval,\n selectedMonths,\n selectedCondominio,\n } = this.state;\n\n if (shown === false) return null;\n\n let filteredProps = {\n ...this.props,\n onSubmit: null,\n };\n\n return (\n \n

\n Selecione os parâmetros abaixo para gerar o seu gráfico de consumo:\n

\n\n
\n {this.showProductsFilter && (\n <>\n

Produtos

\n\n \n\n \n\n
\n {Object.entries(productsData || {}).map(([key, value]) => {\n if (value.un.toLowerCase() === \"un\" && value.tipo.toLowerCase() === \"glp envasado\") {\n return (\n \n );\n }\n\n return null;\n })}\n
\n \n )}\n\n {selectedCondominio === \"all\" ? (\n <>\n

Endereços

\n\n \n\n \n\n
\n {((addressData && addressData.addresses) || []).map((addr) => (\n \n ))}\n
\n \n ) : (\n \"\"\n )}\n\n

Período

\n\n \n\n \n\n
\n {(monthsData || []).map((month) => (\n \n ))}\n
\n
\n\n \n
\n );\n }\n}\n\nexport default ChartFilterModal;\n","import React from \"react\";\nimport { getMonthTicketValue } from \"../../components/MonthlyTicketsLineChart/MonthlyTicketsLineChart\";\nimport { weightFormat } from \"../../components/Masks/Masks\";\nimport Card from \"../../components/Card/Card\";\nimport moment from \"moment\";\n\nexport const addressReduceTickets = (data) =>\n (data || []).reduce((result, item) => {\n const key = item[\"endereco\"];\n if (Object.keys(result).indexOf(key) === -1) result[key] = [];\n result[key].push(item);\n return result;\n }, {});\n\nexport const getTicketValue = (ticket, filters) => {\n const value = getMonthTicketValue(ticket, filters);\n\n if (!filters || filters.selectedProduct === \"granel\")\n return weightFormat(value);\n else return `${(value || 0).toFixed(0)} un.`;\n};\nconst MonthTickets = (props) => {\n const { data, filters } = props;\n\n if (!data.length) return null;\n\n const reducedData = addressReduceTickets(data);\n\n return (\n \n {Object.entries(reducedData || {}).map(([key, tickets], idx) => (\n
\n

{key}

\n\n {(tickets || []).reverse().map((ticket, subIdx) => (\n \n \n Data de fornecimento\n {moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\").format(\n \"DD/MM/YYYY\"\n )}\n \n \n Volume de gás\n {getTicketValue(ticket, filters)}\n \n

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

\n \n

\n
\n );\n};\n\nexport default MonthTickets;\n","import React, { Component } from \"react\";\nimport Card from \"../../components/Card/Card\";\nimport InvoiceService from \"../../services/invoice\";\nimport { weightFormat, moneyFormat } from \"../../components/Masks/Masks\";\n\nconst getCardStyleFromInvoice = (invoice) => {\n const invoiceStatus = InvoiceService.getInvoiceStatus(invoice);\n\n return {\n paid: \"toplineSuccess\",\n outdated: \"toplineDanger\",\n open: \"toplineWarning\",\n }[invoiceStatus];\n};\n\nclass InvoiceInFocus extends Component {\n getInterval = () => {\n const { invoice } = this.props;\n if (!invoice) return null;\n\n const dadosGerias =\n invoice[\"tt-dados-gerais\"] && invoice[\"tt-dados-gerais\"][0];\n if (!dadosGerias) return null;\n\n const startDate = new Date(\n `${dadosGerias[\"dt-leitura-ant\"]} 00:00:00`\n ).toLocaleDateString(\"pt-br\");\n const endDate = new Date(\n `${dadosGerias[\"dt-leitura\"]} 00:00:00`\n ).toLocaleDateString(\"pt-br\");\n\n return `${startDate} - ${endDate}`;\n };\n\n render() {\n const { invoice } = this.props;\n\n let dadosGerais;\n if (\n invoice &&\n invoice[\"tt-dados-gerais\"] &&\n invoice[\"tt-dados-gerais\"].length\n )\n dadosGerais = invoice[\"tt-dados-gerais\"][0];\n\n return (\n \n {InvoiceService.getInvoiceBadge(invoice)}\n {dadosGerais && {this.getInterval()}}\n\n

\n \n Consumo de gás\n \n {dadosGerais && weightFormat(dadosGerais[\"kg\"])}\n \n \n\n \n Valor da Fatura\n \n {dadosGerais && moneyFormat(dadosGerais[\"valor-total\"])}\n \n \n

\n\n

\n \n Detalhamento do consumo\n \n

\n \n );\n }\n}\n\nexport default InvoiceInFocus","import React, { Component } from \"react\";\n\nimport apiContext from \"../../api\";\n\nimport \"./Consumption.scss\";\n\nimport HomeTemplate from \"../HomeTemplate/HomeTemplate\";\nimport InvoiceModal from \"../../components/InvoiceModal/InvoiceModal\";\nimport ConsumptionModal from \"../../components/ConsumptionModal/ConsumptionModal\";\nimport MonthlyConsumptionLineChart, {\n getMonthLabel,\n getChartData,\n adjustCenterIdx,\n} from \"../../components/MonthlyConsumptionLineChart/MonthlyConsumptionLineChart\";\nimport {\n getTicketsChartData,\n reduceMonths,\n} from \"../../components/MonthlyTicketsLineChart/MonthlyTicketsLineChart\";\nimport NavigationBar from \"../../components/NavigationBar/NavigationBar\";\nimport { IconSpinner } from \"../../components/Icons/Icons\";\nimport EmptyDataInvoiceImage from \"../../assets/illustrations/empty-data-invoice.png\";\nimport LabelSwitch from \"../../components/LabelSwitch/LabelSwitch\";\nimport ClienteService from \"../../services/cliente\";\nimport CondominioService from \"../../services/condominio\";\nimport Card from \"../../components/Card/Card\";\nimport InvoiceService from \"../../services/invoice\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { moneyFormat, weightFormat } from \"../../components/Masks/Masks\";\nimport MonthlyTicketsLineChart from \"../../components/MonthlyTicketsLineChart/MonthlyTicketsLineChart\";\nimport moment from \"moment\";\nimport ChartFilterModal from \"./ChartFilterModal\";\nimport MonthTickets, {\n addressReduceTickets,\n getTicketValue,\n} from \"./MonthTickets\";\nimport InvoiceInFocus from \"./InvoiceInFocus\";\n\nconst LoadingLine = (props) => (\n

\n \n

\n);\n\nclass Consumption extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n chartReference: \"reais\",\n showChartFilterModal: true,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n static contextType = apiContext;\n\n get lastInvoice() {\n const { invoices } = this.state;\n return invoices && invoices.length && invoices[invoices.length - 1];\n }\n\n get invoiceInFocusChart() {\n const { invoices } = this.state;\n\n return (\n invoices && InvoiceService.getValidInvoices(invoices)[this.chartCenterIdx]\n );\n }\n\n componentDidMount() {\n const { segmento } = ClienteService.localEntrega;\n\n if (segmento === \"CONTASIM\") this.getDataForContaSim();\n else if (segmento === \"INDUSTRIAL\") this.getDataForIndustrial();\n }\n\n getDataForContaSim() {\n const { CPFCNPJ } = ClienteService.localEntrega;\n const { [`local-entrega`]: localEntrega } = CondominioService.selected;\n\n const dataFim = new Date();\n const dataIni = new Date();\n dataIni.setFullYear(dataFim.getFullYear() - 1);\n\n this.context.ConsigazApi.memConsultaSegundaViaBoleto(\n CPFCNPJ,\n this.context.ConsigazApi.formatDate(dataIni),\n this.context.ConsigazApi.formatDate(dataFim),\n localEntrega\n )\n .then(({ dsRetorno }) => {\n if (dsRetorno && dsRetorno[\"tt-cliente-retorno\"]) {\n const invoices = dsRetorno[\"tt-cliente-retorno\"];\n\n const validInvoices = InvoiceService.getValidInvoices(invoices);\n\n this.setState({\n invoices,\n chartCenterIdx: validInvoices.length - 1,\n invoiceInFocus: validInvoices[validInvoices.length - 1],\n });\n } else {\n this.setState({ invoices: [] });\n }\n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n );\n }\n\n getDataForIndustrial() {\n const { CPFCNPJ } = ClienteService.localEntrega;\n\n const dataFim = moment().startOf(\"month\").format(\"YYYY/MM/DD\");\n const dataIni = moment()\n .subtract(1, \"year\")\n .endOf(\"month\")\n .format(\"YYYY/MM/DD\");\n\n this.context.ConsigazApi.memConsultaNotaFiscal(CPFCNPJ, dataIni, dataFim)\n .then(({ Notas }) => {\n if (Notas && Notas.NotasFiscais && Notas.NotasFiscais.length) {\n const tickets = Notas.NotasFiscais.filter((ticket) => {\n const { \"local-entrega\": localEntrega } =\n CondominioService.selected || {};\n\n if (localEntrega)\n return (\n ticket[\"local-entrega\"]\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toUpperCase() ===\n localEntrega\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toUpperCase()\n );\n\n return true;\n });\n const chartData = this.getChartData();\n const chartCenterIdx = adjustCenterIdx(\n chartData,\n Notas.NotasFiscais.length - 1\n );\n\n this.setState(\n {\n tickets,\n chartCenterIdx,\n invoiceInFocus: Notas.NotasFiscais[chartCenterIdx],\n },\n () => {\n let haveWeightUnit = false;\n const possibleItems = (Notas.NotasFiscais || []).reduce(\n (reduced, ticket) => {\n (ticket.Itens || []).forEach((item) => {\n haveWeightUnit =\n (item.un || \"\").toLowerCase() === \"kg\" || haveWeightUnit;\n if (reduced.indexOf(item[\"it-codigo\"]) === -1)\n reduced.push(item[\"it-codigo\"]);\n });\n return reduced;\n },\n []\n );\n\n if (!haveWeightUnit)\n this.chartFilterModalRef &&\n this.chartFilterModalRef.filterByUnits(possibleItems);\n\n const {\n endereco,\n cidade,\n estado,\n } = this.state.selectedCondominio;\n this.chartFilterModalRef &&\n this.chartFilterModalRef.filterByAddress(\n `${endereco}, ${cidade}, ${estado}`\n );\n }\n );\n } else {\n this.setState({ tickets: [] });\n }\n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n );\n }\n\n getChartData(shouldSlice = true) {\n const { segmento } = ClienteService.localEntrega;\n const { tickets, invoices, chartReference, chartFilters } = this.state;\n\n if (segmento === \"CONTASIM\")\n return getChartData(invoices, this.chartCenterIdx, chartReference);\n else if (segmento === \"INDUSTRIAL\")\n return getTicketsChartData(\n tickets,\n this.chartCenterIdx,\n chartFilters,\n shouldSlice\n );\n }\n\n getInvoiceAverageValue() {\n const { invoices, chartReference } = this.state;\n const validInvoices = InvoiceService.getValidInvoices(invoices);\n\n const value =\n validInvoices &&\n validInvoices.reduce((a, b) => {\n if (chartReference === \"reais\") return a + b[\"val_origin_tit_acr\"];\n else\n try {\n return a + b[\"tt-dados-gerais\"][0][\"kg\"];\n } catch (error) {\n return a;\n }\n }, 0) / validInvoices.length;\n\n if (chartReference === \"reais\")\n return `${(value && moneyFormat(value)) || \"--\"}`;\n else return `${(value && weightFormat(value)) || \"--\"}`;\n }\n\n renderWithInvoiceData() {\n const { invoices } = this.state;\n let invoiceInFocusChart = this.invoiceInFocusChart;\n\n let lastInvoice = this.lastInvoice;\n const chartData = this.getChartData();\n\n return (\n <>\n
\n

\n {invoices.length === 1\n ? \"Média do último mes\"\n : `Média últimos ${\n InvoiceService.getValidInvoices(invoices).length\n } meses`}\n {this.getInvoiceAverageValue()}\n

\n this.setState({ chartReference: \"reais\" }),\n },\n {\n label: \"Quilos\",\n onClick: () => this.setState({ chartReference: \"quilos\" }),\n },\n ]}\n />\n {chartData.length ? (\n <>\n
\n \n
\n ({\n value: month,\n label: getMonthLabel(month),\n active: month.selected,\n onClick: () =>\n this.setState({\n chartCenterIdx: month.itemIdx,\n invoiceInFocus: month,\n }),\n }))}\n defineActive={true}\n />\n \n ) : (\n

\n \n

\n )}\n {\n this.setState(\n {\n invoiceInFocus: invoiceInFocusChart,\n },\n () => this.consumptionModal && this.consumptionModal.open()\n );\n }}\n />\n
\n
\n {\n const validInvoices = InvoiceService.getValidInvoices(\n invoices\n );\n this.setState(\n {\n chartCenterIdx: validInvoices.length - 1,\n invoiceInFocus: validInvoices[validInvoices.length - 1],\n },\n () => this.consumptionModal && this.consumptionModal.open()\n );\n },\n disabled: !lastInvoice,\n },\n ]}\n >\n {(lastInvoice && (\n <>\n {InvoiceService.getInvoiceBadge(lastInvoice)}\n
\n {(() => {\n const date = new Date(\n `${lastInvoice[\"dat_transacao\"]} 00:00:00`\n );\n return `${String(date.getMonth() + 1).padStart(\n 2,\n 0\n )}/${date.getFullYear()}`;\n })()}\n \n {moneyFormat(lastInvoice[\"val_origin_tit_acr\"])}\n \n \n )) ||\n \"Não existem faturas abertas\"}\n \n
\n \n );\n }\n\n getTicketAverage(reducedTickets) {\n const { chartFilters } = this.state;\n const chartData = this.getChartData(false);\n\n if (chartData && chartData.length) {\n const value =\n chartData.reduce((reducedValue, item) => reducedValue + item.value, 0) /\n chartData.length;\n if (!chartFilters || chartFilters.selectedProduct === \"granel\")\n return weightFormat(value);\n else return `${(value || 0).toFixed(0)} un.`;\n } else {\n return 0;\n }\n }\n\n getTicketTotal(reducedTickets) {\n const { chartFilters } = this.state;\n const chartData = this.getChartData(false);\n\n if (chartData && chartData.length) {\n const value = chartData.reduce(\n (reducedValue, item) => reducedValue + item.value,\n 0\n );\n if (!chartFilters || chartFilters.selectedProduct === \"granel\")\n return weightFormat(value);\n else return `${(value || 0).toFixed(0)} un.`;\n } else {\n return 0;\n }\n }\n\n get chartCenterIdx() {\n const { chartData } = this.state;\n let { chartCenterIdx } = this.state;\n\n if (chartData && chartCenterIdx > chartData.length)\n chartCenterIdx = parseInt(chartData.length / 2);\n\n return chartCenterIdx;\n }\n\n getChartCenterItem(chartData) {\n const chartCenterIdx = this.chartCenterIdx;\n\n return chartData && chartData.length && chartData[chartCenterIdx];\n }\n\n renderWithTicketData() {\n const { tickets, chartFilters } = this.state;\n\n const chartData = this.getChartData();\n const monthReducedTickets = reduceMonths(tickets);\n\n const currentMonth =\n (this.getChartCenterItem(this.getChartData(false)) || {}).monthNumber ||\n (chartData && chartData.length && chartData[0].monthNumber);\n\n const filteredTickets = tickets.filter((ticket) => {\n const ticketMonth =\n moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\").month() + 1;\n \n return (\n ticketMonth === currentMonth &&\n (!chartFilters ||\n !chartFilters.selectedAddresses ||\n chartFilters.selectedAddress === \"todos\" ||\n chartFilters.selectedDeliveryPlaces.indexOf(\n (ticket[\"local-entrega\"] || \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toUpperCase()\n ) > -1)\n );\n });\n\n return (\n <>\n
\n

\n {Object.keys(monthReducedTickets).length === 1\n ? \"Média do último mes\"\n : Object.keys(monthReducedTickets).length > 1\n ? `Média últimos ${\n (!chartFilters && Object.keys(monthReducedTickets).length) ||\n (chartFilters &&\n chartFilters.selectedInterval === \"ultimo-ano\" &&\n Object.keys(monthReducedTickets).length) ||\n (chartFilters &&\n chartFilters.selectedMonths &&\n chartFilters.selectedMonths.length)\n } meses`\n : \"Histórico de consumo\"}\n\n

\n {this.state.selectedCondominio !== \"all\"\n ? this.state.selectedCondominio.endereco\n : \"Todos os endereços\"}\n

\n

\n {chartData.length ? (\n <>\n {\n this.setState({ showChartFilterModal: true });\n }}\n >\n Filtrar parâmetros\n \n
\n \n
\n ({\n value: month,\n label: getMonthLabel(month),\n active: month.selected,\n onClick: () =>\n this.setState({\n chartCenterIdx: month.itemIdx,\n invoiceInFocus: month,\n }),\n }))}\n defineActive={true}\n />\n\n
\n
\n {Object.keys(monthReducedTickets).length === 1\n ? \"Média do último mes\"\n : `Média de consumo dos últimos ${\n (!chartFilters &&\n Object.keys(monthReducedTickets).length) ||\n (chartFilters &&\n chartFilters.selectedInterval === \"ultimo-ano\" &&\n Object.keys(monthReducedTickets).length) ||\n (chartFilters &&\n chartFilters.selectedMonths &&\n chartFilters.selectedMonths.length)\n } meses`}\n {this.getTicketAverage()}\n
\n
\n\n
\n {Object.keys(monthReducedTickets).length === 1\n ? \"Média do último mes\"\n : `Consumo total dos últimos ${\n (!chartFilters &&\n Object.keys(monthReducedTickets).length) ||\n (chartFilters &&\n chartFilters.selectedInterval === \"ultimo-ano\" &&\n Object.keys(monthReducedTickets).length) ||\n (chartFilters &&\n chartFilters.selectedMonths &&\n chartFilters.selectedMonths.length)\n } meses`}\n {this.getTicketTotal()}\n
\n
\n \n ) : (\n <>\n

\n \n
\n Aqui você visualizará seu gráfico de consumo por mês.\n

\n \n )}\n {chartData.length ? (\n {\n if (\n !monthReducedTickets ||\n !Object.values(monthReducedTickets || {}).length\n )\n return;\n\n const {\n CPFCNPJ,\n email,\n \"nome-emit\": name,\n } = ClienteService.localEntrega;\n const {\n email: emailContato,\n } = ClienteService.industrialContato;\n\n this.context.ConsigazReportApi.sendIndustrialConsumeReport(\n CPFCNPJ,\n emailContato || email,\n name,\n Object.entries(addressReduceTickets(filteredTickets)).reduce(\n (reduced, [address, tickets]) => [\n ...reduced,\n ...tickets.map((ticket) => ({\n address,\n deliveryLocation: ticket[\"local-entrega\"],\n deliveryDate: moment(\n ticket[\"dt-emis-nota\"],\n \"YYYY-MM-DD\"\n ).format(\"DD/MM/YYYY\"),\n gasVolume: getTicketValue(ticket, chartFilters),\n })),\n ],\n []\n )\n ).then(\n () =>\n this.props.showToast(\n \"Enviado!\",\n `O relatório foi enviado para ${emailContato || email}.`\n ),\n () => this.props.showToast(\"Ops!\", \"Erro ao enviar o boleto.\")\n );\n }}\n />\n ) : (\n \n

\n \n
\n Aqui você acompanhará seu consumo por local de entrega.\n

\n
\n )}\n
\n \n );\n }\n\n render() {\n const {\n tickets,\n invoices,\n invoiceInFocus,\n showChartFilterModal,\n } = this.state;\n const { segmento } = ClienteService.localEntrega;\n\n const monthReducedTickets = reduceMonths(tickets || []);\n\n return (\n (this.template = ref)}\n history={this.props.history}\n activeTab=\"Consumo\"\n >\n \n {(invoices && this.renderWithInvoiceData()) ||\n (tickets && this.renderWithTicketData()) || }\n \n {invoiceInFocus && (\n <>\n (this.invoiceModal = ref)}\n template={this.template}\n invoiceData={invoiceInFocus}\n onCopy={() => this.modalBoleto && this.modalBoleto.close()}\n />\n (this.consumptionModal = ref)}\n history={this.props.history}\n invoiceData={invoiceInFocus}\n onShowInvoice={(invoiceData) => {\n this.invoiceModal && this.invoiceModal.open();\n this.consumptionModal && this.consumptionModal.close();\n }}\n />\n \n )}\n {segmento === \"INDUSTRIAL\" && \n (this.chartFilterModalRef = ref)}\n shown={showChartFilterModal}\n monthsData={Object.keys(monthReducedTickets).map((key) => ({\n number: +key.substr(4),\n label: getMonthLabel({ monthNumber: +key.substr(4) }),\n }))}\n productsData={Object.values(monthReducedTickets).reduce(\n (reduced, month) => {\n (month || []).forEach((ticket) => {\n (ticket.Itens || []).forEach((item) => {\n const key = item[\"it-codigo\"].toLowerCase();\n reduced[key] = item;\n });\n });\n return reduced;\n },\n {}\n )}\n addressData={Object.values(monthReducedTickets).reduce(\n (reduced, month) => {\n (month || []).forEach((ticket) => {\n const key = `${ticket.endereco}, ${ticket.cidade}, ${ticket.estado}`;\n\n if (reduced.addresses.indexOf(key) === -1) {\n reduced.addresses.push(key);\n reduced.deliveryPlaces.push(\n (ticket[\"local-entrega\"] || \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toUpperCase()\n );\n }\n });\n return reduced;\n },\n { addresses: [], deliveryPlaces: [] }\n )}\n onSubmit={(filters) => {\n if (\n this.chartFilterModalRef &&\n this.chartFilterModalRef.showProductsFilter &&\n filters.selectedProduct !== \"granel\" &&\n filters.selectedUnits.length <= 0\n ) {\n this.props.showToast(\n \"Ops\",\n \"Para prosseguir, selecione o(s) tipo(s) de produto(s) desejado(s)\"\n );\n } else if (\n filters.selectedAddress !== \"todos\" &&\n filters.selectedAddresses.length <= 0\n ) {\n this.props.showToast(\n \"Ops\",\n \"Para prosseguir, selecione o(s) endereço(s) desejado(s)\"\n );\n } else if (\n filters.selectedInterval !== \"ultimo-ano\" &&\n filters.selectedMonths.length <= 0\n ) {\n this.props.showToast(\n \"Ops\",\n \"Para prosseguir, selecione os meses que deseja comparar\"\n );\n } else {\n this.setState({\n showChartFilterModal: false,\n chartFilters: filters,\n });\n }\n }}\n onDismiss={() => this.setState({ showChartFilterModal: false })}\n />\n }\n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(Consumption);\n","import { MuiPickersUtilsProvider, DatePicker } from \"@material-ui/pickers\";\nimport MomentUtils from \"@date-io/moment\";\nimport React, { Component } from \"react\";\nimport CondominioService from \"../../services/condominio\";\nimport Modal from \"../../components/Modal/Modal\";\nimport moment from \"moment\";\n\nclass TicketFilterModal extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedStatus: props.selectedStatus || [],\n selectedProduct: \"todos\",\n selectedUnits: [],\n selectedAddress: \"todos\",\n selectedAddresses: [],\n selectedInitialDate: \"\",\n selectedLastDate: \"\",\n tab: \"\",\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n get availableProducts() {\n const { productsData } = this.props;\n return Object.entries(productsData || {}).reduce(\n (reduced, [key, value]) => {\n if (reduced.indexOf(key) === -1) reduced.push(key);\n return reduced;\n },\n []\n );\n }\n\n get showProductsFilter() {\n return this.availableProducts.length > 1;\n }\n\n get onlyProduct() {\n const { productsData } = this.props;\n return (Object.values(\n Object.entries(productsData || {}).reduce((reduced, [key, value]) => {\n if (!reduced[key]) reduced[key] = value;\n return reduced;\n }, {})\n ) || [])[0];\n }\n\n onSubmit = () => {\n const { onSubmit } = this.props;\n\n const {\n selectedStatus,\n selectedProduct,\n selectedUnits,\n selectedInitialDate,\n selectedLastDate,\n selectedAddress,\n selectedAddresses,\n } = this.state;\n\n\n onSubmit &&\n onSubmit({\n selectedStatus,\n selectedProduct: this.showProductsFilter\n ? selectedProduct\n : ((this.onlyProduct || {}).un || \"\").toLowerCase() === \"kg\"\n ? \"granel\"\n : \"cilindros\",\n selectedUnits: this.showProductsFilter\n ? selectedUnits\n : this.availableProducts,\n selectedInitialDate,\n selectedLastDate,\n selectedAddress,\n selectedAddresses,\n });\n };\n\n filterByUnits(selectedUnits) {\n this.setState(\n { selectedProduct: \"cilindros\", selectedUnits },\n this.onSubmit\n );\n }\n\n toggleUnit(unit) {\n const { selectedUnits } = this.state;\n\n if (selectedUnits.indexOf(unit) === -1)\n this.setState({ selectedUnits: [...selectedUnits, unit] });\n else\n this.setState({\n selectedUnits: selectedUnits.filter((un) => un !== unit),\n });\n }\n\n toggleStatus(stat) {\n const { selectedStatus } = this.state;\n\n if (selectedStatus.indexOf(stat) === -1)\n this.setState({ selectedStatus: [...selectedStatus, stat] });\n else\n this.setState({\n selectedStatus: selectedStatus.filter((un) => un !== stat),\n });\n }\n\n toggleAddress(addr) {\n const { selectedAddresses } = this.state;\n\n if (selectedAddresses.indexOf(addr) === -1)\n this.setState({ selectedAddresses: [...selectedAddresses, addr] });\n else\n this.setState({\n selectedAddresses: selectedAddresses.filter((un) => un !== addr),\n });\n }\n\n filterByAddress(address) {\n const { addressData } = this.props;\n\n if (addressData.indexOf(address) > -1)\n this.setState(\n {\n selectedAddress: \"especificos\",\n selectedAddresses: [address],\n },\n this.onSubmit\n );\n }\n\n render() {\n const { shown, productsData, addressData } = this.props;\n const {\n selectedStatus,\n selectedProduct,\n selectedUnits,\n selectedInitialDate,\n selectedLastDate,\n selectedAddress,\n selectedAddresses,\n selectedCondominio,\n } = this.state;\n\n if (shown === false) return null;\n\n let filteredProps = {\n ...this.props,\n onSubmit: null,\n };\n\n return (\n \n

Selecione os parâmetros abaixo para filtrar suas notas fiscais:

\n\n
\n

Status (opcional)

\n
\n \n\n \n\n \n\n \n
\n\n {this.showProductsFilter && (\n <>\n

Produtos

\n\n \n\n \n\n \n\n
\n {Object.entries(productsData || {}).map(([key, value]) => {\n if (value.un.toLowerCase() === \"un\" && value.tipo.toLowerCase() === \"glp envasado\") {\n return (\n \n );\n }\n\n return null;\n })}\n
\n \n )}\n\n {selectedCondominio === \"all\" ? (\n <>\n

Endereços

\n\n \n\n \n\n
\n {(addressData || []).map((addr) => (\n \n ))}\n
\n \n ) : (\n \"\"\n )}\n\n

Período (opcional)

\n\n \n \n {\n this.setState({\n selectedInitialDate: date.format(\"DD/MM/YYYY\"),\n });\n }}\n labelFunc={() => selectedInitialDate || \"Data inicial\"}\n />\n \n

\n \n {\n this.setState({\n selectedLastDate: date.format(\"DD/MM/YYYY\"),\n });\n }}\n labelFunc={() => selectedLastDate || \"Data final\"}\n />\n \n
\n
\n \n
\n \n\n \n
\n );\n }\n}\nexport default TicketFilterModal;\n","import React, { Component } from \"react\";\nimport Modal from \"../../components/Modal/Modal\";\n\nclass EmissionBlockedModal extends Component {\n constructor(props) {\n super(props);\n }\n \n render() {\n const { shown } = this.props;\n\n if (shown === false) return null;\n\n let filteredProps = {\n ...this.props,\n onSubmit: null,\n };\n\n return (\n \n

Visualização indisponível. Clique abaixo para falar com a nossa Central de Atendimento ao Cliente.

\n \n
\n );\n }\n}\nexport default EmissionBlockedModal;\n","import React, { Component } from \"react\";\nimport apiContext from \"../../api\";\nimport ClienteService from \"../../services/cliente\";\nimport Select from \"../../components/Select/Select\";\nclass AcquittanceTabComponent extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.yearOptions = [\n {\n value: new Date().getFullYear(),\n title: `Ano de ${new Date().getFullYear()}`,\n },\n {\n value: new Date().getFullYear() - 1,\n title: `Ano de ${new Date().getFullYear() - 1}`,\n },\n {\n value: new Date().getFullYear() - 2,\n title: `Ano de ${new Date().getFullYear() - 2}`,\n },\n {\n value: new Date().getFullYear() - 3,\n title: `Ano de ${new Date().getFullYear() - 3}`,\n },\n ];\n\n this.companyOptions = [\n {\n value: \"CONSIGAZ\",\n label: \"CONSIGAZ\",\n },\n {\n value: \"GASBALL\",\n label: \"GASBALL\",\n },\n {\n value: \"PROPANGAS\",\n label: \"PROPANGAS\",\n },\n ];\n\n this.state = {\n year: this.yearOptions[0].value,\n company: this.companyOptions[0].value,\n };\n }\n\n handleSubmit = () => {\n const { CPFCNPJ } = ClienteService.localEntrega;\n const { onSubmit, onOpenInvoices } = this.props;\n const { year, company } = this.state;\n\n if (!onSubmit) return;\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaCartaQuitacao(CPFCNPJ, company, year).then(\n ({ ClienteRetorno }) => {\n this.props.dismissLoading();\n try {\n if (ClienteRetorno[0].SITUACAO === \"não possui\")\n onSubmit({ type: \"anual\", year, company, cartaBase64: ClienteRetorno[0]?.CARTAPDF });\n else onOpenInvoices();\n } catch (error) {\n onOpenInvoices();\n }\n },\n () => {\n this.props.dismissLoading();\n onOpenInvoices();\n }\n );\n };\n\n handleTotalLetter = () => {\n const { CPFCNPJ } = ClienteService.localEntrega;\n const { onSubmit, onOpenInvoices } = this.props;\n const { year, company } = this.state;\n\n if (!onSubmit) return;\n\n this.props.showLoading();\n this.context.ConsigazApi.consultaCartaQuitacao(CPFCNPJ, company).then(\n ({ ClienteRetorno }) => {\n this.props.dismissLoading();\n try {\n if (ClienteRetorno[0].SITUACAO === \"não possui\")\n onSubmit({ type: \"total\", year, company, cartaBase64: ClienteRetorno[0]?.CARTAPDF });\n else onOpenInvoices();\n } catch (error) {\n onOpenInvoices();\n }\n },\n () => {\n this.props.dismissLoading();\n onOpenInvoices();\n }\n );\n };\n\n render() {\n const {\n yearOptions,\n companyOptions,\n state: { year, company },\n } = this;\n\n return (\n <>\n

Selecione o ano e a empresa para emitir a carta de quitação

\n this.setState({ year: e.target.value })}\n />\n\n {(companyOptions || []).map((comp, idx) => (\n \n ))}\n\n
\n\n \n Emitir carta de quitação anual\n \n\n
\n
\n\n \n Emitir carta de quitação total\n \n \n );\n }\n}\n\nexport default AcquittanceTabComponent;\n","import React, { Component } from \"react\";\n\nimport ClienteService from \"../../services/cliente\";\nimport apiContext from \"../../api\";\nimport Modal from \"../Modal/Modal\";\nimport InvoiceImage from \"../../assets/illustrations/invoice.png\";\n\nimport \"./TicketModal.scss\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport TicketService from \"../../services/ticket\";\nimport moment from \"moment\";\n\nclass TicketModal extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n ticketData: props.ticketData,\n };\n }\n\n static contextType = apiContext;\n\n static getDerivedStateFromProps(props, state) {\n return { ticketData: props.ticketData };\n }\n\n get invoiceCode() {\n const { ticketData } = this.state;\n return ticketData[\"linha-digitavel\"] || \"\";\n }\n\n sendByEmail = () => {\n const { ticketData } = this.state;\n const { CPFCNPJ, email, segmento } = ClienteService.localEntrega;\n const { [`local-entrega`]: localEntrega } = ticketData;\n const { email: emailContato } = ClienteService.industrialContato || {};\n\n if (\n (segmento !== \"INDUSTRIAL\" && !email) ||\n (segmento === \"INDUSTRIAL\" && !emailContato)\n ) {\n this.props.showToast(\n \"Ops!\",\n \"Parece que você não tem e-mail cadastrado. Entre no perfil e cadastre agora mesmo para poder receber suas contas!\"\n );\n return null;\n }\n\n if (!ticketData) return null;\n\n const vencimento = moment(ticketData[\"dt-emis-nota\"], \"YYYY-MM-DD\").format(\n \"YYYY/MM/DD\"\n );\n\n if (TicketService.getTicketStatus(ticketData) !== \"paid\")\n this.context.ConsigazReportApi.sendInvoiceIndistrualByEmail(\n CPFCNPJ,\n vencimento,\n vencimento,\n localEntrega,\n segmento === \"INDUSTRIAL\" ? emailContato : email\n ).then(\n () =>\n this.props.showToast(\n \"Enviado!\",\n `O boleto foi enviado para ${email}.`\n ),\n () => this.props.showToast(\"Ops!\", \"Erro ao enviar o boleto.\")\n );\n else\n this.context.ConsigazReportApi.sendDanfeByEmail(\n CPFCNPJ,\n vencimento,\n vencimento,\n localEntrega,\n segmento === \"INDUSTRIAL\" ? emailContato : email\n ).then(\n () =>\n this.props.showToast(\n \"Enviado!\",\n `A nota fiscal foi enviada para ${emailContato || email}.`\n ),\n () => this.props.showToast(\"Ops!\", \"Erro ao enviar a nota fiscal.\")\n );\n };\n\n copyToClipboard = () => {\n this.textArea && this.textArea.select();\n document.execCommand(\"copy\");\n this.props.showToast(\n \"Copiado\",\n \"Seu código foi copiado para sua área de transferência.\"\n );\n this.props.onCopy && this.props.onCopy();\n };\n\n getDate = () => {\n const { ticketData } = this.state;\n\n if (!ticketData) return null;\n\n const date = new Date(`${ticketData[\"dt-emis-nota\"]} 00:00:00`);\n return `${String(date.getMonth() + 1).padStart(\n 2,\n 0\n )}/${date.getFullYear()}`;\n };\n\n open = () => this.modalRef && this.modalRef.open();\n\n close = () => this.modalRef && this.modalRef.close();\n\n render() {\n const { ticketData } = this.state;\n\n if (!ticketData) return null;\n\n const ticketStatus = TicketService.getTicketStatus(ticketData);\n const isInvoice = ticketStatus === \"avencer\" || ticketStatus === \"outdated\";\n\n if (ticketData) {\n return (\n (this.modalRef = ref)}\n className=\"ticket-modal\"\n title={\n isInvoice\n ? `Boleto do mês ${this.getDate()}`\n : `NF do mês ${this.getDate()}`\n }\n closeButton={true}\n >\n
\n {TicketService.getTicketBadge(ticketData)}\n ticketStatus !== \"paid\" ? exportInvoice(this.props.showToast, ticketData) : exportDanf(this.props.showToast, ticketData)}\n />\n\n (this.textArea = ref)}\n style={{ opacity: 0, height: 0 }}\n value={this.invoiceCode}\n onChange={() => null}\n />\n\n
\n {isInvoice && (\n \n )}\n
\n this.sendByEmail()}\n className=\"link secondary\"\n >\n Compartilhar por email\n \n
\n \n );\n }\n }\n\n}\n\n// ##################################################################################\n// ###################### DOWNLOAD DO BOLETO ########################################\n// ##################################################################################\nfunction exportInvoice(showToast, ticketData) {\n\n const { cod_estab, 'nr-nota-fis': nota } = ticketData;\n\n if(!!cod_estab) {\n window.open(`/invoice-pdf?acao=ArquivoBoleto&titulo=${titleInvoice(ticketData)}`);\n return;\n }\n\n if(!!nota) {\n const { CPFCNPJ, 'dt-emis-nota': endDate, } = ticketData;\n window.open(`/invoice-pdf?cpfcnpj=${CPFCNPJ}&data-fim=${endDate}¬a=${nota}`);\n return;\n }\n \n showToast(\"Ops!\", 'Esse arquivo não pode ser encontrado.');\n\n}\n\n// ##################################################################################\n// ###################### DOWNLOAD DA NOTA FISCAL ###################################\n// ##################################################################################\nfunction exportDanf(showToast, ticketData) {\n const { 'cod-estabel': cod_estabelb, 'nr-nota-fis': nota } = ticketData;\n \n if(!!cod_estabelb) {\n window.open(`/danfe-pdf?acao=ArquivoNF&titulo=${titleNF(ticketData)}`);\n return;\n };\n\n if(!!nota) {\n const { CPFCNPJ, 'dt-emis-nota': endDate } = ticketData;\n window.open(`/danfe-pdf?cpfcnpj=${CPFCNPJ}&data-fim=${endDate}¬a=${nota}`);\n return;\n };\n\n showToast(\"Ops!\", 'Esse arquivo não pode ser encontrado.');\n}\n\n// cod_estab == cod_estabel | cod_espec_docto | cod_ser_docto == serie | cod_tit_acr = nr_nota_fis | cod_parcela\nfunction titleInvoice(ticketData) {\n const { cod_estab, cod_espec_docto, cod_ser_docto, cod_tit_acr, cod_parcela } = ticketData;\n return `${cod_estab}|${cod_espec_docto}|${cod_ser_docto}|${cod_tit_acr}|${cod_parcela}`;\n}\n\n// cod_estab == cod_estabel | cod_ser_docto == serie | cod_tit_acr == nr-nota-fis | \nfunction titleNF(ticketData) {\n const { 'cod-estabel': cod_estabel, serie, 'nr-nota-fis': nr_nota_fis } = ticketData;\n return `${cod_estabel}|${serie}|${nr_nota_fis}`;\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps, null, { forwardRef: true })(\n TicketModal\n);\n","import React, { Component } from \"react\";\nimport \"./Finances.scss\";\nimport apiContext from \"../../api\";\nimport { redirect } from \"../../components/Page/Page\";\n\nimport Card from \"../../components/Card/Card\";\nimport Modal from \"../../components/Modal/Modal\";\nimport LabelSwitch from \"../../components/LabelSwitch/LabelSwitch\";\n\nimport InvoiceModal from \"../../components/InvoiceModal/InvoiceModal\";\nimport HomeTemplate from \"../HomeTemplate/HomeTemplate\";\nimport ConsumptionModal from \"../../components/ConsumptionModal/ConsumptionModal\";\nimport ClienteService from \"../../services/cliente\";\nimport CondominioService from \"../../services/condominio\";\nimport TicketFilterModal from \"./TicketFilterModal\";\nimport EmissionBlockedModal from \"./EmissionBlockedModal\";\nimport AcquittanceTabComponent from \"./AcquittanceTabComponent\";\nimport InvoiceImage from \"../../assets/illustrations/invoice.png\";\nimport InvoiceService from \"../../services/invoice\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { moneyFormat } from \"../../components/Masks/Masks\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport NavigationBar from \"../../components/NavigationBar/NavigationBar\";\nimport EmptyDataInvoiceImage from \"../../assets/illustrations/empty-data-invoice.png\";\nimport Search from \"../../components/Search/Search\";\nimport TicketModal from \"../../components/TicketModal/TicketModal\";\nimport { IconSpinner } from \"../../components/Icons/Icons\";\nimport TicketService from \"../../services/ticket\";\nimport moment from \"moment\";\nimport { getMonthLabel } from \"../../components/MonthlyConsumptionLineChart/MonthlyConsumptionLineChart\";\nimport MonthlyTicketsLineChart, {\n reduceMonths,\n getTicketsChartData,\n} from \"../../components/MonthlyTicketsLineChart/MonthlyTicketsLineChart\";\n\nconst LoadingLine = (props) => (\n

\n \n

\n);\n\nfunction mapDispatchToPropsAcquittance(dispatch) {\n return bindActionCreators(\n {\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nconst AcquittanceTab = connect(\n null,\n mapDispatchToPropsAcquittance\n)(AcquittanceTabComponent);\n\nclass Finances extends Component {\n \n static contextType = apiContext;\n \n constructor(props) {\n super(props);\n const {\n location: { state: locationState },\n } = this.props;\n\n let tab = \"invoices\";\n if (props.location && props.location.state && this.props.location.state.tab)\n tab = this.props.location.state.tab;\n\n this.state = {\n invoiceModalData: null,\n ticketModalData: null,\n showEmissionBlockedModal: false,\n showTicketFilterModal:((locationState || {}).selectedStatus || []).length === 0,\n showSearch: false,\n tab,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n ticketFilters: this.initialFilters,\n };\n }\n\n get initialFilters() {\n const {\n location: { state: locationState },\n } = this.props;\n return {\n selectedStatus: (locationState || {}).selectedStatus || [],\n selectedProduct: \"todos\",\n selectedUnits: [],\n selectedAddress: \"todos\",\n selectedAddresses: [],\n selectedInitialDate: \"\",\n selectedLastDate: \"\",\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n };\n }\n\n async componentDidMount() {\n const { segmento } = ClienteService.localEntrega;\n\n if (segmento === \"CONTASIM\") {\n this.getDataForContaSim();\n }\n\n if (segmento === \"INDUSTRIAL\") {\n await this.getDataForContaSim();\n await this.getDataForIndustrial();\n }\n\n }\n\n handleNfJoin() {\n let { tickets, invoices } = this.state;\n\n const { \"local-entrega\": localEntrega } = CondominioService.selected || {};\n\n if(!!!invoices || !!!tickets) {\n this.setState({ tickets: tickets || [] });\n }\n\n const joined = tickets\n ?.filter((ticket) => {\n const local = String(ticket[\"local-entrega\"]).replace(`ã`, `a`).replace('Ã', 'A').toLowerCase();\n let localDelivery = String(localEntrega).replace(`ã`, `a`).replace('Ã', 'A').toLowerCase()\n if (!!localEntrega) return local === localDelivery;\n return true;\n }).map((ticket) => {\n\n let invoice = {} ;\n if(Array.isArray(invoices)) {\n const invoicesFiltred = invoices.filter((invoice) => ticket[\"nr-nota-fis\"] === invoice[\"cod_tit_acr\"] && ticket[\"serie\"] === invoice[\"cod_ser_docto\"]);\n invoice = invoicesFiltred[0] || {};\n }\n return {...ticket, ...invoice, invoices };\n });\n\n this.setState({ tickets: joined || [] });\n\n }\n\n getDataForContaSim() {\n\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n const { [`local-entrega`]: localEntrega } = CondominioService.selected || {};\n \n const dataFim = new Date();\n const dataIni = new Date();\n dataIni.setFullYear(dataFim.getFullYear() - 1);\n const { segmento } = ClienteService.localEntrega || {}\n\n return this.context.ConsigazApi.memConsultaSegundaViaBoleto(\n CPFCNPJ,\n this.context.ConsigazApi.formatDate(dataIni),\n this.context.ConsigazApi.formatDate(dataFim),\n localEntrega || \"\"\n ).then(({ dsRetorno }) => {\n if(JSON.stringify(dsRetorno) === \"{}\") return;\n\n if(!!!dsRetorno || !dsRetorno.hasOwnProperty('tt-cliente-retorno') || !Array.isArray(dsRetorno[\"tt-cliente-retorno\"])) {\n this.setState({ invoices: [] });\n };\n \n const invoices = [...dsRetorno[\"tt-cliente-retorno\"]].reverse();\n this.setState({ invoices }, () => {\n if (segmento === \"INDUSTRIAl\") this.handleNfJoin();\n });\n\n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n );\n }\n\n getDataForIndustrial() {\n const { CPFCNPJ } = ClienteService.localEntrega;\n\n const { [`local-entrega`]: localEntrega } =\n this.state.selectedCondominio || {};\n\n const dataFim = new Date();\n const dataIni = new Date();\n dataIni.setFullYear(dataFim.getFullYear() - 1);\n\n return this.context.ConsigazApi.memConsultaNotaFiscal(\n CPFCNPJ,\n this.context.ConsigazApi.formatDate(dataIni),\n this.context.ConsigazApi.formatDate(dataFim),\n localEntrega\n )\n .then(({ Notas }) => {\n\n if(!!!Notas || !Notas.hasOwnProperty('NotasFiscais') || !Array.isArray(Notas.NotasFiscais) ) {\n this.setState({ tickets: [] });\n }\n\n this.setState({\n tickets: Notas?.NotasFiscais,\n chartCenterIdx: Notas?.NotasFiscais?.length - 1,\n invoiceInFocus: Notas?.NotasFiscais?.[Notas?.NotasFiscais?.length - 1],\n },\n () => this.handleNfJoin()\n );\n \n })\n .catch((errorDescription) =>\n this.props.showToast(\"Ops!\", errorDescription)\n );\n }\n\n getInvoiceStyle(invoiceData) {\n const status = InvoiceService.getInvoiceStatus(invoiceData);\n return {\n paid: \"toplineSuccess\",\n outdated: \"toplineDanger\",\n open: \"toplineWarning\",\n }[status];\n }\n\n static getTicketStyle(ticketData) {\n const status = TicketService.getTicketStatus(ticketData);\n return {\n paid: \"toplineSuccess\",\n outdated: \"toplineDanger\",\n open: \"toplineWarning\",\n cancel: \"toplineCancel\",\n }[status];\n }\n\n handleAcquittanceLetter = ({ type, year, company, cartaBase64 }) => {\n this.setState(\n {\n cartaBase64,\n typeAcquittance: type,\n yearAcquittance: year,\n companyAcquittance: company,\n },\n () => this.modalAcquittanceLetter && this.modalAcquittanceLetter.open()\n );\n };\n\n sendAcquittanceLetter = () => {\n const { typeAcquittance, yearAcquittance } = this.state;\n const { CPFCNPJ, email } = ClienteService.localEntrega || {};\n\n this.context.ConsigazApi.sendEmail(\n CPFCNPJ,\n \"Consigaz\",\n typeAcquittance === 'total' ? 9999 : yearAcquittance,\n ).then(\n () =>\n this.props.showToast(\n \"Enviado!\",\n `Carta de quitação enviada para ${email}`\n ),\n () => this.props.showToast(\"Ops!\", `Erro ao enviar a carta de quitação`)\n );\n };\n\n renderInvoiceList() {\n const { invoices, tab } = this.state;\n\n let invoiceListFilter = () => true;\n if (tab === \"open-invoices\")\n invoiceListFilter = (inv) => inv[\"val_sdo_tit_acr\"] !== 0;\n\n const invoicesFiltered = (invoices || []).filter(invoiceListFilter);\n\n if (!!invoicesFiltered && invoicesFiltered.length)\n return invoicesFiltered.map((invoice, idx) => (\n \n {(() => {\n const date = new Date(`${invoice[\"dat_transacao\"]} 00:00:00`);\n return `${String(date.getMonth() + 1).padStart(\n 2,\n 0\n )}/${date.getFullYear()}`;\n })()}\n

{moneyFormat(invoice[\"val_origin_tit_acr\"])}

\n {InvoiceService.getInvoiceBadge(invoice)}\n
\n \n { !InvoiceService.getTicketExpiration(invoice) ? (\n \n this.setState(\n { invoiceModalData: invoice, },\n () => this.checkInvoiceBlockEmission(invoice)\n )\n }\n className=\"block link\"\n >\n {InvoiceService.getInvoiceStatus(invoice) === \"paid\"\n ? \"Visualizar nota fiscal\"\n : \"Visualizar boleto\"}\n \n ) : '' }\n \n this.setState(\n { invoiceModalData: invoice },\n () => this.modalDetalhes && this.modalDetalhes.open()\n )\n }\n className=\"block link secondary\"\n >\n Ver detalhes de consumo\n \n
\n \n ));\n else if (invoices.length === 0)\n return (\n
\n \n

Nenhuma fatura à exibir

\n
\n );\n }\n\n handleFilters() {\n const { tickets, ticketFilters, selectedCondominio } = this.state;\n let ticketListFilter = () => true;\n\n const ticketsFiltered = (tickets || [])\n .filter(ticketListFilter)\n .filter((ticket) => {\n if (selectedCondominio !== \"all\")\n return (\n selectedCondominio[\"endereco\"].indexOf(ticket[\"endereco\"]) > -1\n );\n else return true;\n });\n\n const filterInitialDate =\n ticketFilters[\"selectedInitialDate\"] &&\n moment(ticketFilters[\"selectedInitialDate\"], \"DD/MM/YYYY\");\n const filterLastDate =\n ticketFilters[\"selectedLastDate\"] &&\n moment(ticketFilters[\"selectedLastDate\"], \"DD/MM/YYYY\");\n\n const filterList = ticketsFiltered\n .filter((ticket) => {\n if (ticketFilters[\"selectedStatus\"].length !== 0)\n return (\n ticketFilters[\"selectedStatus\"].indexOf(\n TicketService.getTicketStatus(ticket)\n ) > -1\n );\n else return ticket;\n })\n .filter((ticket) => {\n return (ticket.Itens || []).some((item) => {\n if (ticketFilters[\"selectedProduct\"] === \"granel\")\n return item.un.toLowerCase() === \"kg\";\n else if (ticketFilters[\"selectedProduct\"] === \"todos\") return ticket;\n else if (\n ticketFilters[\"selectedProduct\"] === \"cilindros\" &&\n ticketFilters[\"selectedUnits\"].length === 0\n )\n return item.un.toLowerCase() === \"un\";\n else if (ticketFilters[\"selectedUnits\"].length > 0)\n return (\n ticketFilters[\"selectedUnits\"].indexOf(\n item[\"it-codigo\"].toLowerCase()\n ) > -1\n );\n else \n return null\n });\n })\n .filter((ticket) => {\n if (ticketFilters[\"selectedAddress\"] !== \"todos\")\n return (\n ticketFilters[\"selectedAddresses\"].indexOf(ticket[\"endereco\"]) > -1\n );\n else return ticket;\n })\n .filter((ticket) => {\n if (filterInitialDate !== \"Data inválida\") {\n const ticketDate = moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\");\n return (\n !filterInitialDate || ticketDate.isSameOrAfter(filterInitialDate)\n );\n } else return ticket;\n })\n .filter((ticket) => {\n if (filterLastDate !== \"Data inválida\") {\n const ticketDate = moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\");\n return !filterLastDate || ticketDate.isSameOrBefore(filterLastDate);\n } else return ticket;\n });\n\n return filterList;\n }\n\n goToHelp = () => {\n redirect(this.props, \"/help\");\n };\n\n checkBoletoBlockEmission(ticket) {\n if(ticket?.['bloqueia-emissao']) {\n this.setState({ ...this.state, showEmissionBlockedModal: true })\n } else {\n this.modalNotaFiscal && this.modalNotaFiscal.open()\n }\n }\n\n checkInvoiceBlockEmission(invoice) {\n if(invoice?.['bloqueia-emissao']) {\n this.setState({ ...this.state, showEmissionBlockedModal: true })\n } else {\n this.modalBoleto && this.modalBoleto.open()\n }\n }\n\n renderTicketList() {\n const {\n tickets,\n showSearch,\n ticketFilters,\n selectedCondominio,\n selectedNF,\n } = this.state;\n let ticketListFilter = () => true;\n\n const ticketsFiltered = (tickets || [])\n .filter(ticketListFilter)\n .filter((ticket) => {\n if (selectedCondominio !== \"all\")\n return (\n selectedCondominio[\"endereco\"].indexOf(ticket[\"endereco\"]) > -1\n );\n else return tickets;\n });\n\n if (showSearch === true) {\n const ticketFilterSearch = (tickets || []).filter(\n (ticket) => ticket[\"nr-nota-fis\"].indexOf(selectedNF) > -1\n );\n return (\n <>\n

Busque uma NF pelo número

\n this.setState({ selectedNF: e.target.value })}\n >\n {ticketFilterSearch && ticketFilterSearch.length ? (\n (ticketFilterSearch || []).map((ticket, idx) => (\n \n

{ticket[\"endereco\"]}

\n

Número da nota fiscal: {ticket[\"nr-nota-fis\"]}

\n {(() => {\n const date = new Date(`${ticket[\"dt-emis-nota\"]} 00:00:00`);\n return `${String(date.getMonth() + 1).padStart(\n 2,\n 0\n )}/${date.getFullYear()}`;\n })()}\n

{moneyFormat(ticket[\"vl-tot-nota\"])}

\n {TicketService.getTicketBadge(ticket)}\n
\n\n { !InvoiceService.getTicketExpiration(ticket) ? (\n \n this.setState(\n { invoiceModalData: ticket },\n () => this.checkBoletoBlockEmission(ticket)\n )\n }\n className=\"block link\"\n >\n {TicketService.getTicketStatus(ticket) === \"paid\"\n ? \"Visualizar nota fiscal\"\n : \"Visualizar boleto\"}\n \n ) : ''}\n \n this.setState(\n { invoiceModalData: ticket },\n () => this.modalDetalhes && this.modalDetalhes.open()\n )\n }\n className=\"block link secondary\"\n >\n Ver detalhes de consumo\n \n
\n \n ))\n ) : (\n
\n \n

Nenhuma nota fiscal encontrada

\n
\n )}{\" \"}\n \n );\n } else if (ticketFilters != null) {\n const filterNF = this.handleFilters();\n return (\n <>\n {(filterNF || []).map((ticket, idx) => {\n return (\n \n

{ticket[\"endereco\"]}

\n

\n Número da nota fiscal\n

\n

{ticket[\"nr-nota-fis\"]}

\n {ticket[\"dt-emis-nota\"] &&\n moment(ticket[\"dt-emis-nota\"], \"YYYY-MM-DD\").format(\n \"MM/YYYY\"\n )}\n

{moneyFormat(ticket[\"vl-tot-nota\"])}

\n {TicketService.getTicketBadge(ticket)}\n
\n\n { !InvoiceService.getTicketExpiration(ticket) ? (\n \n this.setState(\n { ticketModalData: ticket },\n () => this.checkBoletoBlockEmission(ticket)\n )\n }\n className=\"block link\"\n >\n {TicketService.getTicketStatus(ticket) === \"paid\"\n ? \"Visualizar nota fiscal\"\n : TicketService.getTicketStatus(ticket) === \"outdated\"\n ? \"Emitir segunda via de boleto\"\n : \"Visualizar boleto\"}\n \n ): ''}\n \n this.setState(\n { ticketModalData: ticket },\n () => this.modalDetalhes && this.modalDetalhes.open()\n )\n }\n className=\"block link secondary\"\n >\n Ver detalhes de consumo\n \n
\n \n );\n })}\n\n {filterNF && filterNF.length === 0 && (\n
\n \n

Nenhuma nota fiscal à exibir

\n
\n )}\n \n );\n } else\n return (\n <>\n {ticketsFiltered.length > 0 ? (\n ticketsFiltered.map((ticket, idx) => (\n \n

{ticket[\"endereco\"]}

\n {(() => {\n const date = new Date(`${ticket[\"dt-emis-nota\"]} 00:00:00`);\n return `${String(date.getMonth() + 1).padStart(\n 2,\n 0\n )}/${date.getFullYear()}`;\n })()}\n

{moneyFormat(ticket[\"vl-tot-nota\"])}

\n {TicketService.getTicketBadge(ticket)}\n
\n { !InvoiceService.getTicketExpiration(ticket) ? (\n \n this.setState(\n { ticketModalData: ticket },\n () => this.checkBoletoBlockEmission(ticket)\n )\n }\n className=\"block link\"\n >\n {TicketService.getTicketStatus(ticket) === \"paid\"\n ? \"Visualizar nota fiscal\"\n : TicketService.getTicketStatus(ticket) === \"outdated\"\n ? \"Emitir segunda via de boleto\"\n : \"Visualizar boleto\"}\n \n ) : ''}\n \n this.setState(\n { ticketModalData: ticket },\n () => this.modalDetalhes && this.modalDetalhes.open()\n )\n }\n className=\"block link secondary\"\n >\n Ver detalhes de consumo\n \n
\n \n ))\n ) : (\n
\n \n

Aqui você visualizará as suas notas fiscais

\n
\n )}{\" \"}\n \n );\n }\n\n getChartData(shouldSlice = true) {\n const { tickets, ticketFilters } = this.state;\n const { endereco } = CondominioService.selected || {};\n\n return getTicketsChartData(\n endereco\n ? tickets.filter((t) => endereco.indexOf(t.endereco) > -1)\n : tickets,\n this.chartCenterIdx,\n ticketFilters,\n shouldSlice,\n \"valor\"\n );\n }\n\n get chartCenterIdx() {\n const { chartData } = this.state;\n let { chartCenterIdx } = this.state;\n\n if (chartData && chartCenterIdx > chartData.length)\n chartCenterIdx = parseInt(chartData.length / 2);\n\n return chartCenterIdx;\n }\n\n getChartCenterItem(chartData) {\n const chartCenterIdx = this.chartCenterIdx;\n\n return chartData && chartData.length && chartData[chartCenterIdx];\n }\n\n renderChartWithTicketData() {\n const { tickets, ticketFilters } = this.state;\n\n const chartData = this.getChartData();\n\n const monthReducedTickets = reduceMonths(tickets);\n\n return (\n <>\n
\n {chartData.length ? (\n <>\n

\n {Object.keys(monthReducedTickets).length === 1\n ? \"Pagamento do último mês\"\n : `Pagamentos últimos ${\n Object.keys(monthReducedTickets).length\n } meses`}\n

\n {\n this.setState({ showTicketFilterModal: true });\n }}\n >\n Alterar filtros\n \n
\n \n
\n ({\n value: month,\n label: getMonthLabel(month),\n active: month.selected,\n onClick: () =>\n this.setState({\n chartCenterIdx: month.itemIdx,\n invoiceInFocus: month,\n }),\n }))}\n defineActive={true}\n />\n \n ) : (\n

\n \n
\n Aqui você visualizará o gráfico com os seus pagamentos\n

\n )}\n
\n \n );\n }\n\n openDocument = () => {\n const base64String = this.state.cartaBase64;\n\n const binaryString = atob(base64String);\n\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; ++i) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n\n const blob = new Blob([bytes.buffer], { type: 'application/pdf' });\n\n const url = URL.createObjectURL(blob);\n window.open(url);\n }\n\n renderAcquittanceLetter() {\n const { yearAcquittance, companyAcquittance, typeAcquittance } = this.state;\n return (\n <>\n \n this.modalAcquittanceLetterOps &&\n this.modalAcquittanceLetterOps.open()\n }\n />\n (this.modalAcquittanceLetterOps = ref)}\n closeButton={true}\n className=\"carta-quitacao-ops-modal\"\n title=\"Ops!\"\n >\n Sua carta ainda não pode ser emitida. Existem débitos em aberto no\n período selecionado. Regularize sua situação!\n
\n \n this.setState(\n { tab: \"open-invoices\" },\n () =>\n this.modalAcquittanceLetterOps &&\n this.modalAcquittanceLetterOps.close()\n )\n }\n >\n Regularizar débitos\n \n
\n \n (this.modalAcquittanceLetter = ref)}\n closeButton={true}\n className=\"carta-quitacao-modal\"\n title={\n typeAcquittance === \"anual\"\n ? `Carta Anual ${yearAcquittance}`\n : `Carta Total`\n }\n >\n this.openDocument()}\n />\n\n
\n \n
\n\n
\n \n Compartilhar por email\n \n
\n \n \n );\n }\n\n renderButton() {\n const { showSearch, tickets, selectedCondominio } = this.state;\n let ticketListFilter = () => true;\n\n const ticketsFiltered = (tickets || [])\n .filter(ticketListFilter)\n .filter((ticket) => {\n if (selectedCondominio !== \"all\")\n return (\n selectedCondominio[\"endereco\"].indexOf(ticket[\"endereco\"]) > -1\n );\n else return tickets;\n });\n\n return (\n <>\n {ticketsFiltered.length ? (\n <>\n

Encontre notas fiscais

\n {showSearch === false ? (\n {\n this.setState({ showTicketFilterModal: true });\n }}\n >\n Alterar filtros\n \n ) : (\n \"\"\n )}\n {\n if (showSearch === false) this.setState({ showSearch: true });\n else this.setState({ showSearch: false });\n }}\n >\n {showSearch === true\n ? \"Visualizar todas notas\"\n : \"Buscar NF pelo número\"}\n \n
\n \n ) : (\n \"\"\n )}\n \n );\n }\n\n render() {\n const {\n invoiceModalData,\n ticketModalData,\n tab,\n invoices,\n tickets,\n showTicketFilterModal,\n showEmissionBlockedModal,\n showSearch,\n } = this.state;\n const { segmento } = ClienteService.localEntrega || {};\n const {\n location: { state: locationState },\n } = this.props;\n\n if (segmento === \"CONTASIM\") {\n return (\n (this.template = ref)}\n history={this.props.history}\n activeTab=\"Financeiro\"\n className=\"finances-page\"\n >\n this.setState({ tab }),\n },\n {\n value: \"open-invoices\",\n label: \"Em aberto\",\n onClick: (e, tab) => this.setState({ tab }),\n },\n {\n value: \"acquittance-letter\",\n label: \"Carta de quitação\",\n onClick: (e, tab) => this.setState({ tab }),\n },\n ]}\n selected={tab}\n />\n
\n {(tab === \"invoices\" || tab === \"open-invoices\") && (\n <>\n {(invoices && this.renderInvoiceList()) || }\n
\n \n )}\n {tab === \"acquittance-letter\" && this.renderAcquittanceLetter()}\n (this.modalBoleto = ref)}\n template={this.template}\n invoiceData={invoiceModalData}\n onCopy={() => this.modalBoleto && this.modalBoleto.close()}\n />\n (this.modalDetalhes = ref)}\n history={this.props.history}\n invoiceData={invoiceModalData}\n onShowInvoice={() => {\n this.modalDetalhes && this.modalDetalhes.close();\n this.modalBoleto && this.modalBoleto.open();\n }}\n />\n \n );\n } else {\n return (\n (this.template = ref)}\n history={this.props.history}\n activeTab=\"Financeiro\"\n className=\"finances-page\"\n >\n this.setState({ tab }),\n },\n {\n value: \"graphics\",\n label: \"Grafico de Pagamentos\",\n onClick: (e, tab) => this.setState({ tab, showSearch: false }),\n },\n {\n value: \"acquittance-letter\",\n label: \"Carta de quitação\",\n onClick: (e, tab) => this.setState({ tab }),\n },\n ]}\n selected={tab}\n />\n
\n {tab === \"acquittance-letter\" && this.renderAcquittanceLetter()}\n {(tab === \"invoices\" || tab === \"open-invoices\") && (\n <>\n {tickets ? (\n <>\n

Encontre notas fiscais

\n {showSearch === false ? (\n {\n this.setState({ showTicketFilterModal: true });\n }}\n >\n Alterar filtros\n \n ) : (\n \"\"\n )}\n {\n if (showSearch === false)\n this.setState({ showSearch: true });\n else this.setState({ showSearch: false });\n }}\n >\n {showSearch === true\n ? \"Visualizar todas notas\"\n : \"Buscar NF pelo número\"}\n \n
\n {this.renderTicketList()}\n \n ) : (\n \n )}\n \n )}\n {tab === \"graphics\" && (\n <>\n {(tickets && this.renderChartWithTicketData()) || }\n
\n \n )}\n (this.modalNotaFiscal = ref)}\n template={this.template}\n ticketData={ticketModalData}\n onCopy={() => this.modalNotaFiscal && this.modalNotaFiscal.close()}\n />\n (this.modalDetalhes = ref)}\n history={this.props.history}\n ticketData={ticketModalData}\n onShowInvoice={() => {\n this.modalDetalhes && this.modalDetalhes.close();\n this.modalNotaFiscal && this.modalNotaFiscal.open();\n }}\n />\n (this.emissionBlockedModalRef = ref)}\n shown={tab !== \"acquittance-letter\" && showEmissionBlockedModal}\n goToHelp={this.goToHelp}\n onDismiss={() => this.setState({ showEmissionBlockedModal: false })}\n />\n (this.ticketFilterModalRef = ref)}\n selectedStatus={(locationState || {}).selectedStatus || []}\n shown={tab !== \"acquittance-letter\" && showTicketFilterModal}\n statusData={Object.values(reduceMonths(tickets || [])).reduce(\n (reducedStatus, month) => {\n (month || []).forEach((ticket) => {\n (ticket.Duplicatas || []).forEach((duplicata) => {\n const key = duplicata[\"nr-nota-fis\"];\n reducedStatus[key] = duplicata[\"situacao\"];\n });\n });\n return reducedStatus;\n },\n {}\n )}\n productsData={Object.values(reduceMonths(tickets || [])).reduce(\n (reduced, month) => {\n (month || []).forEach((ticket) => {\n (ticket.Itens || []).forEach((item) => {\n const key = item[\"it-codigo\"].toLowerCase();\n reduced[key] = item;\n });\n });\n return reduced;\n },\n {}\n )}\n addressData={Object.values(reduceMonths(tickets || [])).reduce(\n (reduced, month) => {\n (month || []).forEach((ticket) => {\n const key = `${ticket.endereco}, ${ticket.cidade}, ${ticket.estado}`;\n if (reduced.indexOf(key) === -1) reduced.push(key);\n });\n return reduced;\n },\n []\n )}\n onSubmit={(filters) => {\n if (\n this.chartFilterModalRef &&\n this.chartFilterModalRef.showProductsFilter &&\n filters.selectedProduct !== \"granel\" &&\n filters.selectedUnits.length <= 0\n ) {\n this.props.showToast(\n \"Ops\",\n \"Para prosseguir, selecione o(s) tipo(s) de produto(s) desejado(s)\"\n );\n } else {\n this.setState({\n showTicketFilterModal: false,\n ticketFilters: filters,\n });\n }\n }}\n onDismiss={() => this.setState({ showTicketFilterModal: false })}\n />\n \n );\n }\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(Finances);\n","import React, { Component } from \"react\";\n\nimport \"./HomeServices.scss\";\n\nimport apiContext from \"../../api\";\nimport { ServiceCards } from \"../Services/Services\";\n\nimport HomeTemplate, { redirect } from \"../HomeTemplate/HomeTemplate\";\n\nimport LabelSwitch from \"../../components/LabelSwitch/LabelSwitch\";\nimport ServiceItem from \"../../components/ServiceItem/ServiceItem\";\nimport { IconSpinner, IconArrowLeft } from \"../../components/Icons/Icons\";\nimport ClienteService from \"../../services/cliente\";\nimport CondominioService from \"../../services/condominio\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport Modal from \"../../components/Modal/Modal\";\nimport { ServicesConfirmContent } from \"../ServicesConfirm/ServicesConfirm\";\nimport { moneyFormat } from \"../../components/Masks/Masks\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport DocsImage from \"../../assets/illustrations/google-docs.png\";\n\nconst LoadingLine = (props) => (\n

\n \n

\n);\n\nconst ProtocolItem = (props) => (\n 0 ? props.address[0].endereco : \"\"}\n title={props[\"assunto\"]}\n >\n Protocolo: {props[\"nr-ordem-servico\"]}
\n Valor: {new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(props[\"valor\"])}\n props.onDetail && props.onDetail()}\n >\n Ver detalhes do protocolo\n \n \n);\n\nclass HomeServices extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n let tab = \"services\";\n if (props.location && props.location.state && props.location.state.tab)\n tab = props.location.state.tab;\n\n this.state = {\n tab,\n protocols: null,\n protocolOnDetail: null,\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n address: {},\n };\n }\n\n componentDidMount() {\n const { ClienteEntrRetorno } = ClienteService.localEntrega || {};\n const { selectedCondominio } = this.state;\n \n if (ClienteEntrRetorno) {\n if (selectedCondominio === \"all\")\n this.setState({\n address: ClienteEntrRetorno,\n });\n else\n this.setState({\n address: ClienteEntrRetorno[0],\n });\n }\n\n // this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ)\n // .then(ClienteService.consultaLocalEntregaApiParser)\n // .then(({ Cliente }) => {\n // if (Cliente) {\n // this.props.dismissLoading();\n // if (selectedCondominio === \"all\")\n // this.setState({\n // address: Cliente.ClienteRetorno[0].ClienteEntrRetorno,\n // });\n // else\n // this.setState({\n // address: Cliente.ClienteRetorno[0].ClienteEntrRetorno[0],\n // });\n // }\n // })\n // .catch((errorDescription) => {\n // this.props.dismissLoading();\n // this.setState({}, () => this.props.showToast(\"Ops!\", errorDescription));\n // });\n\n if (selectedCondominio === \"all\") CondominioService.selectMany = [];\n }\n\n componentDidUpdate() {\n const { location } = this.props;\n const { locationTab } = this.state;\n\n if (\n location &&\n location.state &&\n location.state.tab &&\n location.state.tab !== locationTab\n )\n this.setState({\n tab: location.state.tab,\n locationTab: location.state.tab,\n isRedirectTab: true,\n protocols: null,\n protocolOnDetail: null,\n });\n }\n\n handleCancelation(protocol, cancelationReason) {\n const { CPFCNPJ } = ClienteService.localEntrega;\n const { \"local-entrega\": localEntrega } = CondominioService.selected;\n\n this.props.showLoading();\n this.context.ConsigazApi.cancelaProtocolo(\n CPFCNPJ,\n localEntrega,\n protocol[\"tipo\"],\n protocol[\"nr-ordem-servico\"],\n cancelationReason\n )\n .then(({ Retorno }) => {\n this.setState({ protocols: null, protocolOnDetail: null });\n this.props.dismissLoading();\n if (Retorno) {\n this.props.showToast(\"Cancelado\", Retorno[0].situacao);\n } else {\n this.props.showToast(\"Ops\", \"Não foi possível cancelar o protocolo\");\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState(\n {\n requestSuccess: false,\n },\n () => this.props.showToast(\"Ops!\", errorDescription)\n );\n });\n }\n\n renderProtocolTab() {\n const { CPFCNPJ, isAdmLogin } = ClienteService.localEntrega;\n const { [`local-entrega`]: localEntrega } =\n CondominioService.selected || \"\";\n const { selectedCondominio, address } = this.state;\n const dataIni = new Date();\n const dataFim = new Date();\n dataFim.setFullYear(dataFim.getFullYear() - 1);\n\n const {\n protocols,\n protocolOnDetail,\n showCancelationModal,\n protocolAddress,\n } = this.state;\n \n if (protocols)\n return (\n <>\n
\n {(!protocols || protocols.length === 0) && (\n <>\n \n
\n \n Não há nenhum registro de protocolo!\n \n \n )}\n {(protocols || []).map((p, idx) => (\n addr[\"local-entrega\"] === p[\"local-entrega\"]\n )\n }\n onDetail={() =>\n this.setState({\n protocolOnDetail: p,\n protocolAddress:\n selectedCondominio === \"all\" &&\n address.filter(\n (addr) => {\n return addr[\"local-entrega\"].normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toUpperCase() === p[\"local-entrega\"].normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toUpperCase()\n }\n ),\n showCancelationModal: false,\n cancelationReason: \"\",\n })\n }\n />\n ))}\n
\n {protocolOnDetail && !showCancelationModal && (\n (this.protocolDetailModal = ref)}\n className=\"protocol-detail-modal\"\n closeButton={true}\n onDismiss={() => this.setState({ protocolOnDetail: null })}\n >\n {protocolOnDetail.situacao.toLowerCase() === \"cancelada\" && (\n Cancelada \n )}\n

\n {protocolAddress &&\n protocolAddress.length > 0 &&\n protocolAddress[0].endereco}\n

\n

{protocolOnDetail[\"assunto\"]}

\n

Protocolo: {protocolOnDetail[\"nr-ordem-servico\"]}

\n\n Data de contratação\n

\n {new Date(\n `${protocolOnDetail[\"dt-ordem-servico\"]} 00:00:00`\n ).toLocaleDateString(\"pt-br\")}\n

\n\n Valor\n

\n {new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(protocolOnDetail?.valor)}\n

\n\n Data máxima para atendimento\n

\n {new Date(\n `${protocolOnDetail[\"dt-prev-atend\"]} 00:00:00`\n ).toLocaleDateString(\"pt-br\")}\n

\n\n {(protocolOnDetail[\"valor\"] && (\n <>\n Valor do serviço\n

\n {moneyFormat(protocolOnDetail[\"valor\"])}\n

\n \n )) ||\n null}\n\n {protocolOnDetail[\"motivo\"] && (\n <>\n

\n Detalhe Cancelamento\n

\n {protocolOnDetail[\"motivo\"]}\n \n )}\n\n
\n {protocolOnDetail[\"cancela\"] === true && !isAdmLogin && (\n \n this.setState({\n showCancelationModal: true,\n cancelationReason: \"\",\n })\n }\n className=\"link secondary\"\n >\n Cancelar Pedido\n \n )}\n {false && (\n

\n Detalhe cancelamento\n
\n Lorem ipsum dolor sit amet\n

\n )}\n
\n \n )}\n (this.protocolContestationModal = ref)}\n shown={false}\n closeButton={true}\n title=\"Contestação\"\n >\n Para contestar a finalização do seu protocolo fale com a nossa\n central de atendimento.\n
\n redirect(this.props, \"/help\")}\n className=\"link block\"\n >\n Fale conosco\n \n \n \n );\n else {\n this.context.ConsigazApi.memConsultaProtocolos(\n CPFCNPJ,\n this.context.ConsigazApi.formatDate(dataIni),\n this.context.ConsigazApi.formatDate(dataFim),\n 1,\n selectedCondominio === \"all\" ? \"\" : localEntrega\n ).then(\n ({ Protocolos: protocols }) =>\n this.setState({ protocols: protocols.reverse() }),\n (data) => {\n this.setState({ protocols: [] }, () => {\n this.props.showToast(\"Ops\", \"Erro ao buscar os protocolos\");\n });\n }\n );\n return ;\n }\n }\n\n renderServicesTab() {\n const { submitedServices } = this.state;\n\n if (submitedServices)\n return (\n <>\n
\n this.setState({ submitedServices: null })}\n />\n \n this.setState({\n submitedServices: null,\n protocols: null,\n // serviceProtocol: services,\n tab: \"protocol\",\n })\n }\n />\n \n );\n else\n return (\n <>\n
\n this.setState({ submitedServices })}\n />\n \n );\n }\n\n render() {\n const {\n tab,\n showCancelationModal,\n protocolOnDetail,\n cancelationReason,\n } = this.state;\n const { situacao } = CondominioService.selected || {};\n\n return (\n \n this.setState({ tab }),\n },\n {\n label: \"Protocolos\",\n value: \"protocol\",\n onClick: (e, tab) => this.setState({ tab }),\n },\n ]}\n />\n\n {situacao !== 2 && tab === \"services\"\n ? this.renderServicesTab()\n : this.renderProtocolTab()}\n {protocolOnDetail && showCancelationModal && (\n \n this.handleCancelation(protocolOnDetail, cancelationReason)\n }\n declineButton={true}\n declineButtonText=\"Não\"\n declineButtonAction={(modal) => {\n modal.close();\n this.setState({ protocolOnDetail: null });\n }}\n >\n

Tem certeza que deseja fazer o cancelamento do pedido?

\n

\n \n Por favor, informe no campo abaixo o motivo do cancelamento.\n \n

\n \n this.setState({ cancelationReason: e.target.value })\n }\n >\n {/* {cancelationReason} */}\n \n \n )}\n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(HomeServices);\n","import React, { Component } from \"react\";\n\nimport ClienteService from \"../../services/cliente\";\n\nimport apiContext from \"../../api\";\n\nimport Page, { redirect } from \"../../components/Page/Page\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\n\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport CondominioService from \"../../services/condominio\";\n\nclass DeliveryConfirmContentComponent extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n let services = [];\n if (props.location && props.location.state && props.location.state.services)\n services = props.location.state.services;\n\n this.state = {\n serviceRemoveId: null,\n submited: false,\n services,\n };\n }\n\n componentDidMount() {\n if (!this.state.submited) this.handleSubmit();\n }\n\n handleSubmit = () => {\n const {\n CPFCNPJ,\n email,\n [`nome-emit`]: nome, // nome emitente - change\n telefone,\n } = ClienteService.localEntrega;\n\n const { name } = ClienteService.industrialContato;\n\n const { [`local-entrega`]: localEntrega } = CondominioService.selected;\n const splitedName = name.split(\" \");\n const firstName = splitedName.shift();\n const lastName = splitedName.join(\" \");\n\n const { services } = this.state;\n const updatedServices = [];\n\n this.context.ConsigazApi.geraOcorrencia(\n \"\",\n services[0].service,\n services[0].price,\n services[0].codMotivo,\n services[0].nrAcordoComercial,\n CPFCNPJ,\n localEntrega,\n {\n ...services[0].complementaryData,\n contact: firstName,\n lastNameDept: lastName,\n phone: telefone,\n email: email,\n }\n ).then(\n ({ Ocorrencia }) => {\n this.props.dismissLoading();\n if (Ocorrencia) {\n services[0].protocol = Ocorrencia[0][\"v-nr-ocorrencia\"] || \"\";\n services[0].dtprev = Ocorrencia[0][\"v-dt-prev-atendimento\"] || \"\";\n if (services[0].dtprev.length === 10) {\n const [year, month, day] = services[0].dtprev.split(\"-\");\n services[0].dtprev = new Date(\n parseInt(year),\n parseInt(month) - 1,\n parseInt(day)\n ).toLocaleDateString();\n }\n updatedServices.push(services[0]);\n\n this.setState(\n {\n submited: true,\n services: updatedServices,\n },\n () => this.props.onFinish && this.props.onFinish(updatedServices)\n );\n } else\n this.props.showToast(\"Ops!\", \"Não foi possível gerar a ocorrencia.\");\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n\n this.setState({\n submited: true,\n });\n };\n\n render() {\n return null;\n }\n}\n\nfunction mapDispatchToDeliveryConfirmContentProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport const DeliveryConfirmContent = connect(\n null,\n mapDispatchToDeliveryConfirmContentProps\n)(DeliveryConfirmContentComponent);\n\nconst DeliveryConfirmPage = (props) => (\n \n \n redirect(props, \"/home\")}\n />\n \n \n);\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(DeliveryConfirmPage);\n","import React, { Component } from \"react\";\n\nimport \"./HomeDelivery.scss\";\n\nimport apiContext from \"../../api\";\nimport { ServiceCards } from \"../Services/Services\";\nimport { DeliveryConfirmContent } from \"../DeliveryConfirm/DeliveryConfirm\";\nimport HomeTemplate from \"../HomeTemplate/HomeTemplate\";\n\nimport CondominioService from \"../../services/condominio\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { connect } from \"react-redux\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport Card from \"../../components/Card/Card\";\nimport moment from \"moment\";\nimport Modal from \"../../components/Modal/Modal\";\nimport ServiceItem from \"../../components/ServiceItem/ServiceItem\";\n\nclass HomeServices extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n const { location } = this.props;\n\n this.state = {\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n tab: \"protocol\",\n isVacation: false,\n selectedService:\n location.state && location.state.selectedService\n ? location.state.selectedService\n : null,\n };\n }\n\n render() {\n const {\n submitedServices,\n selectedCondominio,\n serviceProtocol,\n selectedService,\n } = this.state;\n\n return (\n \n

Gerencie suas entregas

\n

\n Tenha maior controle sobre o seu fornecimento e diminua o risco da\n falta de gás.\n

\n \n \n {selectedCondominio !== \"all\" &&\n (selectedCondominio.Itens || []).map((item) => (\n <>\n {item[\"dt-ini-ferias\"] !== null ? (\n \n \n
\n Produto: {item[\"desc-comercial\"]}\n
\n
\n Período:{\" \"}\n {`${moment(\n item[\"dt-ini-ferias\"],\n \"YYYY-MM-DD\"\n ).format(\"DD/MM/YYYY\")} - ${moment(\n item[\"dt-fim-ferias\"],\n \"YYYY-MM-DD\"\n ).format(\"DD/MM/YYYY\")}`}\n
\n

\n

\n {\n this.editService && this.editService(\"19;;\", item);\n }}\n >\n Alterar\n \n

\n \n ) : (\n \"\"\n )}\n \n ))}\n \n \n
\n {submitedServices ? (\n <>\n
\n \n this.setState(\n {\n submitedServices: null,\n serviceProtocol: services,\n },\n () => {\n this.modalProtocol && this.modalProtocol.open();\n }\n )\n }\n />\n \n ) : (\n {\n this.editService = editService;\n }}\n history={this.props.history}\n selectedService={selectedService}\n cardClass={\"delivery\"}\n confirmationUrl={\"/home-services-confirm\"}\n onSubmit={(submitedServices) =>\n this.setState({ submitedServices, selectedService: null })\n }\n />\n )}\n\n (this.modalProtocol = ref)}\n title=\"Solicitação feita!\"\n confirmButton={true}\n confirmButtonText={\"Ok\"}\n >\n

Anote o protocolo:

\n {serviceProtocol &&\n serviceProtocol.map((service) => (\n \n <>\n {service.dtprev &&\n `Serviço previsto para até o dia ${service.dtprev}`}\n
\n Protocolo:\n \n {service.protocol || \"Não encontrado\"}\n \n \n
\n ))}\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(HomeServices);\n","import React from \"react\";\nimport { maskCpfCnpj } from \"../../components/Masks/Masks\";\n\nconst FormContaSim = (props) => {\n const {\n cpfcnpj,\n handleEmailAddressChange,\n handlePhoneNumberChange,\n isPhoneNumberValid,\n haveSubmited,\n isEmailAddressValid,\n phoneNumber,\n emailAddress,\n disabledInput,\n name,\n } = props;\n\n return (\n <>\n
\n {!isEmailAddressValid && haveSubmited && E-mail inválido}\n {!isPhoneNumberValid && haveSubmited && Telefone inválido}\n
\n\n
\n \n \n \n \n
\n \n );\n};\n\nexport default FormContaSim;\n","import React from \"react\";\nimport { maskCpfCnpj } from \"../../components/Masks/Masks\";\nimport Select from \"../../components/Select/Select\";\n\nconst FormIndustrial = (props) => {\n const {\n department,\n departmentOptions,\n onDepartmentChange,\n onPhoneNumberChange,\n isPhoneNumberValid,\n haveSubmited,\n phoneNumber,\n disabledInput,\n name,\n isNameValid,\n onNameChange,\n cpf,\n isCpfValid,\n onCpfChange,\n isEmailValid,\n email,\n onEmailChange,\n } = props;\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nexport default FormIndustrial;\n","import React, { Component } from \"react\";\n\nimport \"./PersonalData.scss\";\n\nimport apiContext from \"../../api\";\nimport ClienteService from \"../../services/cliente\";\nimport FormContaSim from \"./FormContaSim\";\nimport FormIndustrial from \"./FormIndustrial\";\n\nimport HomeTemplate, { redirect } from \"../HomeTemplate/HomeTemplate\";\nimport Card from \"../../components/Card/Card\";\nimport {\n maskPhoneNumber,\n validatePhoneNumber,\n validateEmailAddress,\n validateCpf,\n} from \"../../components/Masks/Masks\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\n\nclass PersonalData extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n let name, cpfcnpj, telefone, department, email;\n const { segmento, telefone: phoneCliente, email: emailCliente } =\n ClienteService.localEntrega || {};\n\n telefone = phoneCliente;\n const contato = ClienteService.industrialContato;\n\n if (segmento === \"INDUSTRIAL\") {\n cpfcnpj = contato.cpf;\n name = contato.name;\n department = contato.department;\n telefone = contato.phoneNumber;\n email = contato.email;\n } else if (segmento === 'CONTASIM') {\n name = (ClienteService.localEntrega || {})['nome-emit']\n cpfcnpj = (ClienteService.localEntrega || {})['CPFCNPJ']\n }\n\n const maskedPhoneNumber = maskPhoneNumber(telefone || \"\");\n this.state = {\n cpfcnpj,\n isCpfValid: validateCpf(cpfcnpj),\n name,\n isNameValid: name ? true : false,\n phoneNumber: maskedPhoneNumber,\n isPhoneNumberValid: validatePhoneNumber(maskedPhoneNumber || \"\"),\n emailAddress: email || emailCliente || \"\",\n isEmailAddressValid: validateEmailAddress(email || emailCliente || \"\"),\n haveSubmited: false,\n disabledInput: true,\n department,\n };\n }\n\n componentDidMount() {\n this.context.ConsigazApi.tiposContato().then(\n ({ Retorno }) => {\n if (Retorno && Retorno.length) {\n const contactTypes = Retorno[0].descricao\n .split(\",\")\n .map((contactType) => ({ title: contactType }));\n this.setState({\n departmentOptions: contactTypes,\n department:\n this.state.department ||\n (contactTypes &&\n contactTypes.length > 0 &&\n contactTypes[0].title),\n isDepartmentValid: contactTypes && contactTypes.length > 0,\n });\n } else\n this.props.showToast(\"Ops\", \"Não foram encontrados tipos de contato\");\n },\n (error) => {\n console.error(error);\n this.props.showToast(\"Ops\", \"Erro ao buscar os tipos de contato\");\n }\n );\n }\n\n handleNameChange = (e) => {\n const name = e.target.value;\n\n this.setState({\n name: name,\n isNameValid: name ? true : false,\n });\n };\n\n handleCpfChange = (e) => {\n const cleanCpf = e.target.value.replace(/[^\\d]/g, \"\");\n\n this.setState({\n cpfcnpj: cleanCpf,\n isCpfValid: validateCpf(cleanCpf),\n });\n };\n\n handleDepartmentChange = (e) => {\n const department = e.target.value;\n\n this.setState({ department: department });\n };\n\n handlePhoneNumberChange = (e) => {\n const phoneNumberMasked = maskPhoneNumber(e.target.value);\n\n this.setState({\n phoneNumber: phoneNumberMasked,\n isPhoneNumberValid: validatePhoneNumber(phoneNumberMasked),\n });\n };\n\n handleEmailAddressChange = (e) => {\n const emailAddress = e.target.value;\n\n this.setState({\n emailAddress: emailAddress,\n isEmailAddressValid: validateEmailAddress(emailAddress),\n });\n };\n\n handleSaveContaSim() {\n const { CPFCNPJ, [`nome-emit`]: nome } = ClienteService.localEntrega;\n\n this.props.showLoading();\n\n this.context.ConsigazApi.consultaContatos(CPFCNPJ).then(({ Cliente }) => {\n if (Cliente.ClienteRetorno && Cliente.ClienteRetorno.length) {\n const contatoRetorno = Cliente.ClienteRetorno[0].ClienteContatoRetorno[0]\n \n const { sequencia, tipo } = contatoRetorno;\n \n this.saveContact(CPFCNPJ, nome, sequencia, tipo);\n }\n }, console.error);\n }\n\n saveContact(CPFCNPJ, nome, sequencia, tipo) {\n const { phoneNumber, emailAddress } = this.state;\n\n this.context.ConsigazApi.manutencaoContatos(\n CPFCNPJ,\n undefined,\n nome,\n phoneNumber.replace(/[^\\d]/g, \"\"),\n emailAddress,\n sequencia,\n tipo\n )\n .then(({ ClienteRetorno }) => {\n this.props.dismissLoading();\n if (ClienteRetorno) {\n this.updateLocalEntrega();\n this.props.showToast(\"Sucesso\", \"Dados alterados com sucesso!\");\n setTimeout(() => redirect(this.props, \"/home\"), 2000);\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", errorDescription);\n });\n }\n\n handleSaveIndustrial() {\n const { sequencia } = ClienteService.industrialContato;\n\n if (sequencia) {\n this.handleContactSave(sequencia);\n } else {\n const { CPFCNPJ } = ClienteService.localEntrega;\n this.context.ConsigazApi.consultaContatos(CPFCNPJ).then(({ Cliente }) => {\n if (Cliente.ClienteRetorno && Cliente.ClienteRetorno.length) {\n const contatoRetorno = Cliente.ClienteRetorno[0].ClienteContatoRetorno[0]\n \n const { sequencia } = contatoRetorno;\n this.handleContactSave(sequencia);\n }\n }, console.error);\n }\n }\n\n handleContactSave(sequencia) {\n const { CPFCNPJ } = ClienteService.localEntrega;\n const {\n cpfcnpj: cpfContato,\n name,\n phoneNumber,\n department,\n emailAddress,\n } = this.state;\n\n ClienteService.industrialContato = {\n ...ClienteService.industrialContato,\n cpf: cpfContato,\n name,\n phoneNumber,\n department,\n email: emailAddress,\n };\n this.context.ConsigazApi.manutencaoContatos(\n CPFCNPJ,\n cpfContato,\n name,\n phoneNumber,\n emailAddress,\n sequencia,\n department\n ).then(\n () => {\n this.props.showToast(\"Sucesso\", \"Dados alterados com sucesso!\");\n setTimeout(() => redirect(this.props, \"/home\"), 2000);\n },\n () => this.props.showToast(\"Ops\", \"Erro ao salvar os dados\")\n );\n }\n\n handleSubmit = () => {\n const { isNameValid, isCpfValid, phoneNumber, emailAddress } = this.state;\n\n const { segmento } = ClienteService.localEntrega || {};\n const isPhoneNumberValid = validatePhoneNumber(phoneNumber);\n const isEmailAddressValid = validateEmailAddress(emailAddress);\n\n if (segmento === \"CONTASIM\") {\n if (isPhoneNumberValid && isEmailAddressValid) {\n this.handleSaveContaSim();\n }\n } else {\n if (\n isNameValid &&\n isCpfValid &&\n isPhoneNumberValid &&\n isEmailAddressValid\n ) {\n this.handleSaveIndustrial();\n }\n }\n\n this.setState({ haveSubmited: true });\n };\n\n updateLocalEntrega() {\n const { CPFCNPJ } = ClienteService.localEntrega;\n this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ).then(\n ClienteService.consultaLocalEntregaApiParser\n );\n }\n\n render() {\n const {\n name,\n cpfcnpj,\n isCpfValid,\n phoneNumber,\n isPhoneNumberValid,\n emailAddress,\n isEmailAddressValid,\n haveSubmited,\n disabledInput,\n department,\n departmentOptions,\n } = this.state;\n const { isAdmLogin, segmento } = ClienteService.localEntrega || {};\n return (\n (this.template = ref)}\n history={this.props.history}\n className=\"personal-data-page\"\n >\n \n {!isAdmLogin && disabledInput === true && (\n
\n \n this.setState({\n disabledInput: false,\n })\n }\n >\n Alterar Dados\n \n
\n )}\n\n {segmento === \"CONTASIM\" && (\n \n )}\n {segmento === \"INDUSTRIAL\" && (\n \n )}\n {!isAdmLogin && disabledInput === false && (\n \n )}\n
\n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(PersonalData);\n","import React, { Component } from 'react'\n\nimport './Help.scss'\n\nimport HomeTemplate from '../HomeTemplate/HomeTemplate'\n\nexport default class Help extends Component {\n\n render() {\n return (\n \n

Precisando de ajuda?

\n\n

Entre em contato conosco pelo Whatsapp. Caso não tenha instalado em seu smartphone, envie um e-mail que em breve entraremos em contato com você!

\n\n \n Whatsapp\n
\n \n cac@consigaz.com.br\n \n\n

Ou pode nos ligar também

\n\n

Telefones da CAC (Central de atendimento ao cliente)

\n\n
\n \n \n )\n }\n}","import React, { Component } from 'react'\nimport FileSaver from 'file-saver'\n\nimport './PdfPage.scss'\n\nimport Page from '../Page/Page'\nimport { LoadingToast } from '../Toast/Toast'\n\nexport default class PdfPage extends Component {\n\n constructor(props) {\n super(props)\n\n this.state = {\n params: {}\n }\n\n const querystring = this.props.location && this.props.location.search\n\n if (querystring)\n Object.assign(this.state, {\n params: decodeURI(querystring).replace(\"?\", \"\").split(\"&\").reduce((obj, param) => {\n const [ key, value ] = param.split('=')\n obj[key] = value\n return obj\n }, {})\n })\n }\n\n get fileName() {\n return 'report'\n }\n\n donwloadPdf() {\n const { file } = this.state\n\n const b64toBlob = (b64Data, contentType='', sliceSize=512) => {\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays, {type: contentType});\n return blob;\n }\n\n var data = new Blob([b64toBlob(file, 'application/pdf')], { type: 'application/pdf' })\n FileSaver.saveAs(data, this.fileName)\n\n return null\n }\n\n render() {\n const { file, params } = this.state\n if (file && params.download)\n return this.donwloadPdf()\n else if (file)\n return (\n \n )\n else\n return (\n \n \n \n )\n }\n\n}","import apiContext from \"../../api\";\n\nimport PdfPage from \"../../components/PdfPage/PdfPage\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\n\nclass InvoicePdfPage extends PdfPage {\n static contextType = apiContext;\n\n get fileName() {\n return \"Boleto\";\n }\n\n componentDidMount() {\n // captura os parammetros passados na URL\n const { acao, titulo, 'data-fim': endDate, nota } = this.state.params;\n const { cpfcnpj, startDate, finalDate, deliveryLocation } = this.state.params;\n\n\n // faz download com o novo boleto\n if(!!acao && !!titulo) {\n this.context.ConsigazApi.downloadBoleto(titulo).then(([err, file]) => {\n if(err) { \n this.props.showToast(\"Ops!\", err, 20000); \n return;\n };\n\n this.setState({ file })\n });\n return;\n }\n\n // faz download com o novo boleto\n if(!!cpfcnpj && !!endDate && !!nota) {\n this.context.ConsigazApi.externalInvoice(cpfcnpj, endDate, nota).then(([err, file]) => {\n if(err) { \n this.props.showToast(\"Ops!\", err, 20000); \n return;\n };\n\n this.setState({ file })\n });\n return;\n }\n\n // faz download na maneira antiga\n this.context.ConsigazReportApi.exportInvoice(\n cpfcnpj,\n startDate,\n finalDate,\n deliveryLocation\n ).then(\n ({ data: file }) => this.setState({ file }),\n (errorDescription) => this.props.showToast(\"Ops!\", errorDescription)\n );\n\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(InvoicePdfPage);\n","import apiContext from '../../api'\n\nimport PdfPage from '../../components/PdfPage/PdfPage'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { toastOperations } from '../../state/ducks/toast'\n\nclass AcquittanceLetterPdfPage extends PdfPage {\n\n static contextType = apiContext\n\n get fileName() {\n return 'Carta de Quitação'\n }\n\n componentDidMount() {\n const { type, clientTaxId, year, company } = this.state.params\n\n this.context.ConsigazReportApi\n .exportDischargeLetter(clientTaxId, year, type, company)\n .then(\n ({ data: file }) => this.setState({ file }),\n errorDescription => this.props.showToast('Ops!', errorDescription)\n )\n }\n\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators({\n showToast: toastOperations.show\n }, dispatch)\n}\n\nexport default connect(null, mapDispatchToProps)(AcquittanceLetterPdfPage)","import apiContext from '../../api'\n\nimport PdfPage from '../../components/PdfPage/PdfPage'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { toastOperations } from '../../state/ducks/toast'\n\nclass DanfePdfPage extends PdfPage {\n\n static contextType = apiContext\n\n get fileName() {\n return 'Danfe'\n }\n\n componentDidMount() {\n\n // captura os parammetros passados na URL\n const { acao, titulo, 'data-fim': endDate, nota } = this.state.params;\n const { cpfcnpj, startDate, finalDate, deliveryLocation, email, codEstabel, codSerDocto, codTitAcr } = this.state.params;\n\n // faz download com o novo boleto\n if(!!acao && !!titulo) {\n\n const useDescricao2 = true;\n\n this.context.ConsigazApi.download(acao, titulo, useDescricao2).then(([err, file]) => {\n if(err) { \n this.props.showToast(\"Ops!\", err, 20000); \n return;\n };\n\n this.setState({ file })\n });\n return;\n }\n\n // faz download com o novo boleto\n if(!!cpfcnpj && !!endDate && !!nota) {\n this.context.ConsigazApi.externaldanfe(cpfcnpj, endDate, nota).then(([err, file]) => {\n if(err) { \n this.props.showToast(\"Ops!\", err, 10000); \n return;\n };\n\n this.setState({ file })\n });\n return;\n }\n\n // faz download na maneira antiga\n this.context.ConsigazReportApi.exportDanfe(cpfcnpj, startDate, finalDate, deliveryLocation, email, codEstabel, codSerDocto, codTitAcr).then(\n ({ data: file }) => this.setState({ file }),\n errorDescription => this.props.showToast('Ops!', errorDescription)\n )\n }\n\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators({\n showToast: toastOperations.show\n }, dispatch)\n}\n\nexport default connect(null, mapDispatchToProps)(DanfePdfPage)","import React, { Component } from 'react'\n\nimport ClienteService from '../../services/cliente'\n\nimport Page, { redirect } from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\n\nimport apiContext from '../../api'\n\nimport BackgroundImage from '../../assets/background.jpg'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { toastOperations } from '../../state/ducks/toast'\nimport { loadingOperations } from '../../state/ducks/loading'\n\nclass AdmnistrativeLogin extends Component {\n\n static contextType = apiContext\n\n constructor(props) {\n super(props)\n\n this.state = {\n haveSubmited: false,\n cpfcnpj: '',\n isCpfcnpjValid: false,\n }\n\n if (ClienteService.localEntrega !== undefined)\n redirect(props, '/home')\n }\n\n onSubmit = () => {\n const { login, pass } = this.state;\n\n if (login && pass) {\n // TODO: Remove for proper use\n // if (login === \"consigaz\" && pass === '123')\n // return redirect(this.props, '/fake-login')\n\n this.props.showLoading()\n this.context.ConsigazApi\n .admnistrativeLogin(login, pass)\n .then(\n ({ Retorno }) => {\n this.props.dismissLoading()\n\n if (Retorno && Retorno.length && Retorno[0].situacao === \"NOK\")\n this.props.showToast('Ops', Retorno[0].descricao)\n\n if (Retorno[0].situacao === \"OK\")\n redirect(this.props, '/fake-login')\n\n },\n () => {\n this.props.dismissLoading()\n this.props.showToast(\"Ops\", \"Usuário ou senha informados não estão corretos.\")\n }\n )\n }\n\n this.setState({\n haveSubmited: true\n })\n }\n\n render() {\n const { login, pass } = this.state;\n\n return (\n \n \n

Boas Vindas!

\n

Você acessou o perfil de administrador, digite seu código ou login de acesso.

\n\n
\n
\n\n this.setState({ login: e.target.value })}\n onKeyPress={e => e.charCode === 13 && this.onSubmit()}/>\n\n
\n\n this.setState({ pass: e.target.value })}\n onKeyPress={e => e.charCode === 13 && this.onSubmit()}/>\n\n
\n\n \n Entrar\n \n
\n \n )\n }\n\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators({\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss\n }, dispatch)\n}\n\nexport default connect(null, mapDispatchToProps)(AdmnistrativeLogin)","import React, { Component } from 'react'\n\nimport ClienteService from '../../services/cliente'\n\nimport Page, { redirect } from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\n\nimport apiContext from '../../api'\n\nimport BackgroundImage from '../../assets/background.jpg'\nimport { validateCpfCnpj, maskCpfCnpj } from '../../components/Masks/Masks'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { toastOperations } from '../../state/ducks/toast'\nimport { loadingOperations } from '../../state/ducks/loading'\n\nclass FakeLogin extends Component {\n\n static contextType = apiContext\n\n constructor(props) {\n super(props)\n\n this.state = {\n haveSubmited: false,\n cpfcnpj: '',\n isCpfcnpjValid: false,\n codCliente: '',\n isCodClienteValid: false,\n }\n\n if (ClienteService.localEntrega !== undefined)\n redirect(props, '/home')\n }\n\n handleCpfcnpjChange = e => {\n const maskedCpfcnpj = maskCpfCnpj(e.target.value)\n\n this.setState({\n cpfcnpj: maskedCpfcnpj,\n isCpfcnpjValid: validateCpfCnpj(maskedCpfcnpj)\n })\n }\n\n onSubmit = () => {\n if (this.state.isCpfcnpjValid) {\n const cleanCpfcnpj = this.state.cpfcnpj.replace(/[^\\d]+/g,'')\n this.props.showLoading()\n this.context.ConsigazApi\n .consultaLocalEntrega(cleanCpfcnpj)\n .then(\n ({ Cliente }) => {\n this.props.dismissLoading()\n if (Cliente && Cliente.ClienteRetorno && Cliente.ClienteRetorno.length)\n if (this.state.codCliente) {\n if (parseInt(this.state.codCliente) === Cliente.ClienteRetorno[0]['cod-emitente']) {\n ClienteService.localEntrega = {\n ...Cliente.ClienteRetorno[0],\n isAdmLogin: true,\n }\n redirect(this.props, '/home')\n }\n else {\n // The code provided is incorrect\n this.setState({\n haveSubmited: true,\n isCodClienteValid: false\n }, () => this.props.showToast('Ops', 'Código cliente inválido'))\n }\n } else {\n // No code provided\n this.setState({\n haveSubmited: true,\n isCodClienteValid: false\n }, () => this.props.showToast('Ops', 'Você precisa informar um código de cliente'))\n }\n\n // if (Cliente.ClienteRetorno[0].segmento === \"CONTASIM\")\n // redirect(this.props, '/', { cliente: Cliente.ClienteRetorno[0] })\n // else\n // this.props.showToast(\"Em breve!\", \"Estamos preparando uma novidade pra você e em breve ela estará disponível aqui! Você poderá consultar suas faturas e entregas, contratar serviços e muito mais!\", 10000)\n },\n () => {\n this.props.showToast('Ops', `Esse cpf/cnpj não pertence a nenhum cliente Consigaz`)\n }\n )\n\n }\n this.setState({\n haveSubmited: true,\n isCodClienteValid: true\n })\n }\n\n render() {\n return (\n \n \n

Simule

\n

Digite abaixo o CPF e código de cliente que deseja fazer a simulação.

\n\n
\n
\n\n e.charCode === 13 && this.onSubmit()}/>\n\n
\n\n this.setState({ codCliente: (e.target.value.match(/\\d+/g) || []).join('') })}\n onKeyPress={e => e.charCode === 13 && this.onSubmit()}/>\n\n
\n\n \n Avançar\n \n
\n \n )\n }\n\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators({\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss\n }, dispatch)\n}\n\nexport default connect(null, mapDispatchToProps)(FakeLogin)","import React, { Component } from \"react\";\n\nimport \"./AddressSelect.scss\";\nimport CondominioService from \"../../services/condominio\";\nimport Page, { redirect } from \"../../components/Page/Page\";\n// import PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\nimport BackgroundImage from \"../../assets/background.jpg\";\nimport apiContext from \"../../api\";\n\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport { IconHome } from \"../../components/Icons/Icons\";\nimport Card from \"../../components/Card/Card\";\nimport ClienteService from \"../../services/cliente\";\nimport PageCenterContent from \"../../components/PageCenterContent/PageCenterContent\";\n\nclass AddressSelect extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n addressList: [],\n selectedCondominio: CondominioService.selected || {},\n errorMessage: null,\n };\n }\n\n componentDidMount() {\n const { ClienteEntrRetorno } = ClienteService.localEntrega || {};\n\n if (ClienteEntrRetorno) {\n this.setState({\n addressList: ClienteEntrRetorno,\n });\n }\n\n // this.props.showLoading();\n // this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ)\n // .then(ClienteService.consultaLocalEntregaApiParser)\n // .then(({ Cliente }) => {\n // if (Cliente) {\n // this.props.dismissLoading();\n // this.setState({\n // addressList: Cliente.ClienteRetorno[0].ClienteEntrRetorno,\n // });\n // }\n // })\n // .catch((errorDescription) => {\n // this.props.dismissLoading();\n // this.setState({}, () => this.props.showToast(\"Ops!\", errorDescription));\n // });\n }\n\n isSelected = (address) =>\n address[\"cod-condominio\"] ===\n this.state.selectedCondominio[\"cod-condominio\"] &&\n address[\"local-entrega\"] === this.state.selectedCondominio[\"local-entrega\"];\n\n getAddressStyleName = (address) => {\n if (this.isSelected(address)) return \"outlinePrimaryClear\";\n else return \"outlineWhite\";\n };\n\n selectCondominio = (address) => {\n if (address) {\n CondominioService.selected = address;\n this.setState({ selectedCondominio: address }, () => {\n redirect(this.props, \"/home\");\n });\n }\n };\n\n handleSelectAll = () => {\n CondominioService.selectAll = true;\n redirect(this.props, \"/home\");\n };\n\n render() {\n const { addressList } = this.state;\n\n const { segmento } = ClienteService.localEntrega;\n\n return (\n \n \n

Selecione um endereço

\n

Você poderá alterar o endereço a qualquer momento.

\n
\n
\n \n {segmento === \"INDUSTRIAL\" && (\n \n
\n \n
\n
\n

Quero ver informações de TODOS os meus locais de entrega

\n
\n
\n )}\n\n {addressList &&\n addressList.map((address) => (\n this.selectCondominio(address)}\n >\n
\n \n
\n
\n

{address[\"nome-condominio\"]}

\n

{address.endereco}

\n

{`${address.cidade} / ${address.estado}`}

\n {address.situacao === 2 && segmento === \"INDUSTRIAL\" && (\n \n Local inativo\n \n )}\n
\n
\n \n ))}\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(AddressSelect);\n","import React, { Component } from \"react\";\n\nimport \"./IndustrialContact.scss\";\n\nimport apiContext from \"../../api\";\nimport ClienteService from \"../../services/cliente\";\nimport BuildingImg from \"../../assets/illustrations/building.png\";\nimport HomeTemplate from \"../HomeTemplate/HomeTemplate\";\nimport Card from \"../../components/Card/Card\";\nimport {\n IconEmail,\n IconPlus,\n IconTelephone,\n} from \"../../components/Icons/Icons\";\nimport CondominioService from \"../../services/condominio\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport {\n toTitleCase,\n maskPhoneNumber,\n validatePhoneNumber,\n validateEmailAddress,\n} from \"../../components/Masks/Masks\";\nimport Modal from \"../../components/Modal/Modal\";\nimport Select from \"../../components/Select/Select\";\n\nclass IndustrialContact extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n redirectState: {},\n selectedCondominio: CondominioService.selected || {},\n clientContactData: [],\n contactData: this.initialContactData,\n contactTypes: [],\n phoneNumber: \"\",\n isPhoneNumberValid: false,\n emailAddress: \"\",\n isEmailAddressValid: false,\n };\n }\n\n get initialContactData() {\n return {\n type: \"\",\n name: \"\",\n department: \"Nfe\",\n telefone: null,\n email: null,\n };\n }\n\n get renderListTelephone() {\n const { clientContactData } = this.state;\n return (clientContactData || []).filter((c) => c.type === \"telefone\");\n }\n\n get renderListEmail() {\n const { clientContactData } = this.state;\n return (clientContactData || []).filter((c) => c.type === \"email\");\n }\n\n componentDidMount() {\n this.props.showLoading();\n\n this.loadContactData();\n\n this.context.ConsigazApi.tiposContato().then(\n ({ Retorno }) => {\n if (Retorno && Retorno.length) {\n const contactTypes = Retorno[0].descricao.split(\",\");\n this.setState({\n contactTypes,\n department:\n contactTypes && contactTypes.length > 0 && contactTypes[0],\n isDepartmentValid: contactTypes && contactTypes.length > 0,\n });\n } else\n this.props.showToast(\"Ops\", \"Não foram encontrados tipos de contato\");\n },\n (error) => {\n console.error(error);\n this.props.showToast(\"Ops\", \"Erro ao buscar os tipos de contato\");\n }\n );\n }\n\n loadContactData() {\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n const { cpf: cpfContato } = ClienteService.industrialContato || {};\n\n this.setState({ clientContactData: null });\n this.context.ConsigazApi.consultaContatos(CPFCNPJ).then(({ Cliente }) => {\n if (Cliente && Cliente.ClienteRetorno && Cliente.ClienteRetorno.length)\n if (Cliente.ClienteRetorno[0].ClienteContatoRetorno)\n this.props.dismissLoading();\n this.setState({\n clientContactData: (\n Cliente.ClienteRetorno[0].ClienteContatoRetorno || []\n )\n .filter((dados) => dados[\"cpf-contato\"] === cpfContato)\n .reduce(\n (reduced, contact) => {\n if (contact[\"e-mail\"]) {\n reduced.values.push({\n index: reduced.emails,\n sequencia: contact[\"sequencia\"],\n name: contact.nome,\n title: contact.tipo,\n value: contact[\"e-mail\"],\n type: \"email\",\n });\n reduced.emails++;\n }\n if (contact.telefone) {\n reduced.values.push({\n index: reduced.phones,\n sequencia: contact[\"sequencia\"],\n name: contact.nome,\n title: contact.tipo,\n value: maskPhoneNumber(contact.telefone),\n type: \"telefone\",\n });\n reduced.phones++;\n }\n return reduced;\n },\n { values: [], phones: 0, emails: 0 }\n ).values,\n });\n });\n }\n\n submitNewContact = () => {\n const { CPFCNPJ } = ClienteService.localEntrega;\n const {\n clientContactData,\n contactData,\n isPhoneNumberValid,\n isEmailAddressValid,\n contactTypes,\n } = this.state;\n const { cpf: cpfContato } = ClienteService.industrialContato || {};\n\n const verifyExistentTelephone = (clientContactData || []).filter(\n (contact) => {\n return contact.value === contactData[\"telefone\"];\n }\n );\n const verifyExistentEmail = (clientContactData || []).filter((contact) => {\n return contact.value === contactData[\"email\"];\n });\n\n if (contactData[\"type\"] === \"telefone\" && this.renderListTelephone.length >= 3) {\n this.props.showToast(\n \"Ops!\",\n \"Você atingiu o número maximo de telefones cadastrados. (3)\"\n );\n } else if (contactData[\"type\"] === \"email\" && this.renderListEmail.length >= 5) {\n this.props.showToast(\n \"Ops!\",\n \"Você atingiu o número maximo de telefones cadastrados. (5)\"\n );\n } else if (contactData[\"type\"] === \"telefone\" && !isPhoneNumberValid) {\n this.props.showToast(\n \"Ops!\",\n \"É necessário inserir um número de telefone válido.\"\n );\n } else if (contactData[\"type\"] === \"email\" && !isEmailAddressValid) {\n this.props.showToast(\"Ops!\", \"É necessário inserir um e-mail válido.\");\n } else if (\n contactData[\"type\"] === \"telefone\" &&\n verifyExistentTelephone.length > 0\n ) {\n this.props.showToast(\"Ops\", \"Esse telefone já está cadastrado.\");\n } else if (\n contactData[\"type\"] === \"email\" &&\n verifyExistentEmail.length > 0\n ) {\n this.props.showToast(\"Ops\", \"Esse e-mail já está cadastrado.\");\n } else\n this.context.ConsigazApi.manutencaoContatos(\n CPFCNPJ,\n cpfContato,\n contactData[\"name\"] || \"\",\n contactData[\"telefone\"] || \"\",\n contactData[\"email\"] || \"\",\n undefined,\n contactData[\"department\"] || (contactTypes || [\"\"])[0]\n ).then(\n () => {\n this.props.showToast(\"Sucesso!\", \"Contato inserido com sucesso.\");\n this.loadContactData();\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n this.ModalEdit && this.ModalEdit.close();\n this.ModalNewContact && this.ModalNewContact.close();\n };\n\n submitChangeData = () => {\n const {\n contactData,\n isPhoneNumberValid,\n isEmailAddressValid,\n contactTypes,\n } = this.state;\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n const { cpf: cpfContato } = ClienteService.industrialContato || {};\n\n if (isEmailAddressValid === false || isPhoneNumberValid === false)\n return this.props.showToast(\"OPS!\", \"Você inseriu um dado inválido.\");\n\n (isEmailAddressValid || isPhoneNumberValid) &&\n this.context.ConsigazApi.manutencaoContatos(\n CPFCNPJ,\n cpfContato,\n contactData[\"name\"] || \"\",\n contactData[\"telefone\"] || \"\",\n contactData[\"email\"] || \"\",\n contactData[\"sequencia\"],\n contactData[\"department\"] || (contactTypes || [\"\"])[0]\n ).then(\n () => {\n this.props.showToast(\"Sucesso\", \"Dados alterados com sucesso!\");\n this.loadContactData();\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n\n this.ModalEdit && this.ModalEdit.close();\n this.ModalNewContact && this.ModalNewContact.close();\n };\n\n deleteContact = () => {\n const { contactData } = this.state;\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n const { cpf: cpfContato } = ClienteService.industrialContato || {};\n\n this.context.ConsigazApi.manutencaoContatos(\n CPFCNPJ,\n cpfContato,\n contactData[\"name\"] || \"\",\n contactData[\"telefone\"] || \"\",\n contactData[\"email\"] || \"\",\n contactData[\"sequencia\"],\n \"\",\n true\n ).then(\n () => {\n this.props.showToast(\"Sucesso\", \"Dado excluido com sucesso!\");\n this.loadContactData();\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n\n (this.ModalEdit && this.ModalEdit.close()) ||\n (this.ModalEdit && this.ModalEdit.close());\n };\n\n handlePhoneNumberChange = (e) => {\n const phoneNumberMasked = maskPhoneNumber(e.target.value);\n const { contactData } = this.state;\n\n this.setState({\n phoneNumber: phoneNumberMasked,\n isPhoneNumberValid: validatePhoneNumber(phoneNumberMasked),\n contactData: {\n ...contactData,\n telefone: phoneNumberMasked,\n },\n });\n };\n\n handleEmailAddressChange = (e) => {\n const emailAddress = e.target.value;\n const { contactData } = this.state;\n\n this.setState({\n emailAddress: emailAddress,\n isEmailAddressValid: validateEmailAddress(emailAddress),\n contactData: {\n ...contactData,\n email: emailAddress,\n },\n });\n };\n\n render() {\n const {\n redirectState,\n clientContactData,\n contactData,\n contactTypes,\n } = this.state;\n\n return (\n (this.template = ref)}\n history={this.props.history}\n redirectFrom=\"IndustrialContact\"\n redirectState={redirectState}\n className=\"industrial-contact-page\"\n >\n \"Prédio\"\n

Contatos da Empresa

\n\n

\n Você poderá cadastrar até 3 telefones (celulares ou fixos) e 5 emails\n

\n\n
\n {\n // if (filterList.length >= 3)\n // this.props.showToast(\n // \"Ops!\",\n // \"Você já inseriu o número máximo de telefones.\",\n // 5000\n // )\n // else\n this.setState(\n {\n contactData: { type: \"telefone\" },\n },\n () => this.ModalNewContact && this.ModalNewContact.open()\n );\n }}\n >\n Novo telefone\n \n {\n // if (filterEmail.length >= 5)\n // this.props.showToast(\n // \"Ops!\",\n // \"Você já inseriu o número máximo de e-mails.\"\n // )\n\n // else\n this.setState(\n {\n contactData: { type: \"email\" },\n },\n () => this.ModalNewContact && this.ModalNewContact.open()\n );\n }}\n >\n Novo Email\n \n
\n
\n\n {this.renderListTelephone &&\n (this.renderListTelephone || []).map((contact) => (\n \n
\n \n
\n
\n

{`${toTitleCase(contact.type)} ${\n contact.index + 1\n }`}

\n

\n

Departamento: {toTitleCase(contact.title)}

\n

\n {contact.value}\n\n
\n
\n {\n const newState = {\n contactData: {\n name: contact.name,\n type: contact.type,\n sequencia: contact.sequencia,\n },\n };\n\n newState[\"phoneNumber\"] = contact.value;\n newState[\"isPhoneNumberValid\"] = validatePhoneNumber(\n contact.value\n );\n newState.contactData = {\n ...newState.contactData,\n telefone: contact.value,\n };\n\n this.setState(newState, () => {\n this.ModalEdit && this.ModalEdit.open();\n });\n }}\n >\n Editar\n \n {\n this.setState(\n {\n contactData: {\n name: contact.name,\n type: contact.type,\n sequencia: contact.sequencia,\n },\n },\n () => {\n this.ModalDelete && this.ModalDelete.open();\n }\n );\n }}\n >\n Excluir\n \n
\n
\n
\n ))}\n\n {this.renderListEmail &&\n (this.renderListEmail || []).map((contact) => (\n \n
\n \n
\n
\n

{`${toTitleCase(contact.type)} ${\n contact.index + 1\n }`}

\n

\n

Departamento: {toTitleCase(contact.title)}

\n

\n {contact.value}\n\n
\n
\n {\n const newState = {\n contactData: {\n name: contact.name,\n type: contact.type,\n sequencia: contact.sequencia,\n },\n };\n\n newState[\"emailAddress\"] = contact.value;\n newState[\"isEmailAddressValid\"] = validateEmailAddress(\n contact.value\n );\n newState.contactData = {\n ...newState.contactData,\n email: contact.value,\n };\n\n this.setState(newState, () => {\n this.ModalEdit && this.ModalEdit.open();\n });\n }}\n >\n Editar\n \n {\n this.setState(\n {\n contactData: {\n name: contact.name,\n type: contact.type,\n sequencia: contact.sequencia,\n },\n },\n () => {\n this.ModalDelete && this.ModalDelete.open();\n }\n );\n }}\n >\n Excluir\n \n
\n
\n
\n ))}\n\n (this.ModalDelete = ref)}\n shown={false}\n title={`Excluir ${\n contactData[\"type\"] === \"telefone\" ? \"telefone\" : \"e-mail\"\n }`}\n confirmButton={true}\n confirmButtonText=\"Sim, quero excluir\"\n confirmButtonAction={(modal) => {\n const theType = contactData.type;\n\n modal.close();\n\n if (\n (clientContactData || []).filter(\n (cData) => cData.type === theType\n ).length === 1\n )\n this.props.showToast(\n \"Ops!\",\n `É necessário apresentar pelo menos um ${\n contactData[\"type\"] === \"telefone\" ? \"telefone\" : \"e-mail\"\n } cadastrado. Você poderá editar o ${\n contactData[\"type\"] === \"telefone\" ? \"número\" : \"e-mail\"\n } inserido.`\n );\n else this.deleteContact();\n }}\n declineButton={true}\n declineButtonText=\"Cancelar\"\n >\n

\n Tem certeza que deseja excluir este{\" \"}\n {contactData[\"type\"] === \"telefone\"\n ? \"número de telefone\"\n : \"e-mail\"}\n

\n \n\n (this.ModalNewContact = ref)}\n shown={false}\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Confirmar\"\n confirmButtonAction={() => this.submitNewContact()}\n >\n

\n Insira o novo{\" \"}\n {contactData[\"type\"] === \"telefone\" ? \"telefone\" : \"e-mail\"} e o\n departamento ao qual ele pertence\n

\n {contactData[\"type\"] === \"telefone\" ? (\n \n ) : (\n \n )}\n ({\n title: toTitleCase(contactType),\n value: contactType,\n }))}\n value={contactData[\"department\"]}\n onChange={(e) =>\n this.setState({\n contactData: {\n ...contactData,\n department: e.target.value,\n },\n })\n }\n />\n \n\n (this.ModalEdit = ref)}\n shown={false}\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Confirmar\"\n confirmButtonAction={() => this.submitChangeData()}\n >\n

\n Altere o {contactData.type === \"email\" ? \"email\" : \"telefone\"} e o\n departamento ao qual ele pertence\n

\n {contactData.type === \"email\" ? (\n \n ) : (\n \n )}\n ({\n title: toTitleCase(contactType),\n value: contactType,\n }))}\n onChange={(e) =>\n this.setState({\n contactData: {\n ...contactData,\n department: e.target.value,\n },\n })\n }\n value={contactData.department}\n />\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(IndustrialContact);\n","import React, { Component } from \"react\";\n\nimport \"./Recommendation.scss\";\n\nimport apiContext from \"../../api\";\nimport ClienteService from \"../../services/cliente\";\nimport BuildingImg from \"../../assets/illustrations/buildings.svg\";\nimport HomeTemplate, { redirect } from \"../HomeTemplate/HomeTemplate\";\nimport Card from \"../../components/Card/Card\";\nimport { IconPlus, IconTelephone } from \"../../components/Icons/Icons\";\nimport CondominioService from \"../../services/condominio\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { toastOperations } from \"../../state/ducks/toast\";\nimport { loadingOperations } from \"../../state/ducks/loading\";\nimport {\n toTitleCase,\n maskPhoneNumber,\n validatePhoneNumber,\n} from \"../../components/Masks/Masks\";\nimport Modal from \"../../components/Modal/Modal\";\nimport moment from \"moment\";\n\nclass IndustrialContact extends Component {\n static contextType = apiContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n redirectState: {},\n listContact: this.initialListContact || [],\n selectedCondominio: CondominioService.selectAll\n ? \"all\"\n : CondominioService.selected || {},\n contactData: this.initialContactData,\n phoneNumber: \"\",\n isPhoneNumberValid: false,\n deleteData: null,\n address: {},\n };\n }\n\n get initialContactData() {\n return {\n name: \"\",\n telefone: null,\n };\n }\n\n get initialListContact() {\n return {\n name: \"\",\n telefone: [],\n };\n }\n\n componentDidMount() {\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n this.props.showLoading();\n this.context.ConsigazApi.consultaLocalEntrega(CPFCNPJ)\n .then(ClienteService.consultaLocalEntregaApiParser)\n .then(({ Cliente }) => {\n if (Cliente) {\n this.props.dismissLoading();\n this.setState({\n address: Cliente.ClienteRetorno[0].ClienteEntrRetorno[0],\n });\n }\n })\n .catch((errorDescription) => {\n this.props.dismissLoading();\n this.setState({}, () => this.props.showToast(\"Ops!\", errorDescription));\n });\n }\n\n submitRecommendation = () => {\n const {\n contactData,\n listContact,\n deleteData,\n isPhoneNumberValid,\n } = this.state;\n\n if (contactData[\"name\"] === \"\" || contactData[\"telefone\"] === null)\n this.props.showToast(\"OPS\", \"Insira todos os dados.\");\n else if (!isPhoneNumberValid)\n this.props.showToast(\"OPS\", \"Insira um telefone válido.\");\n else if (deleteData === null) {\n if (listContact[\"telefone\"].indexOf(contactData[\"telefone\"]) === -1) {\n this.setState({\n listContact: { ...listContact, name: contactData[\"name\"] },\n });\n listContact[\"telefone\"].push(contactData[\"telefone\"]);\n } else this.props.showToast(\"OPS\", \"Esse número já foi inserido.\");\n } else {\n listContact[\"telefone\"].splice(\n listContact[\"telefone\"].indexOf(deleteData),\n 1\n );\n this.setState({ deleteData: null });\n }\n };\n\n generateOrder = () => {\n const { listContact, address } = this.state;\n const { [`local-entrega`]: localEntrega } = CondominioService.selectAll\n ? address\n : CondominioService.selected;\n const {\n CPFCNPJ,\n email,\n [`nome-emit`]: nome,\n telefone,\n } = ClienteService.localEntrega;\n const splitedName = nome.split(\" \");\n const firstName = splitedName.shift();\n const lastName = splitedName.join(\" \");\n\n this.context.ConsigazApi.geraOcorrencia(\n null,\n \"indicacao\",\n null,\n null,\n null,\n CPFCNPJ,\n localEntrega,\n {\n informacoes: `${listContact}`,\n contact: firstName,\n lastNameDept: lastName,\n phone: telefone,\n email: email,\n }\n ).then(\n ({ Ocorrencia }) => {\n this.props.dismissLoading();\n if (Ocorrencia) {\n this.setState({\n protocol: {\n ...Ocorrencia[0],\n title: \"Indicação de Clientes\",\n },\n content: \"protocol\",\n });\n this.setState({\n nrpedido: Ocorrencia[0][\"v-nr-ocorrencia\"],\n prazo: moment(Ocorrencia[0][\"v-dt-prev-atendimento\"]),\n });\n\n this.thanksModal && this.thanksModal.open();\n } else\n this.props.showToast(\"Ops!\", \"Não foi possível gerar a ocorrencia.\");\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n };\n\n deleteContact = () => {\n const { contactData } = this.state;\n const { CPFCNPJ } = ClienteService.localEntrega || {};\n const { cpf: cpfContato } = ClienteService.industrialContato || {};\n\n this.context.ConsigazApi.manutencaoContatos(\n CPFCNPJ,\n cpfContato,\n contactData[\"name\"] || \"\",\n contactData[\"telefone\"] || \"\",\n contactData[\"email\"] || \"\",\n contactData[\"sequencia\"],\n \"\",\n true\n ).then(\n () => {\n this.props.showToast(\"Sucesso\", \"Dado excluido com sucesso!\");\n this.loadContactData();\n },\n (errorDescription) => {\n this.props.dismissLoading();\n this.props.showToast(\"Ops!\", String(errorDescription));\n }\n );\n\n (this.ModalEdit && this.ModalEdit.close()) ||\n (this.ModalEdit && this.ModalEdit.close());\n };\n\n handlePhoneNumberChange = (e) => {\n const phoneNumberMasked = maskPhoneNumber(e.target.value);\n const { contactData } = this.state;\n\n this.setState({\n phoneNumber: phoneNumberMasked,\n isPhoneNumberValid: validatePhoneNumber(phoneNumberMasked),\n contactData: {\n ...contactData,\n telefone: phoneNumberMasked,\n },\n });\n };\n\n render() {\n const {\n redirectState,\n contactData,\n listContact,\n selectedCondominio,\n address,\n nrpedido,\n prazo,\n } = this.state;\n var today = moment(new Date().toISOString().split(\"T\")[0]);\n if (selectedCondominio === \"all\") CondominioService.selected = address;\n return (\n (this.template = ref)}\n history={this.props.history}\n redirectFrom=\"ClientRecommendation\"\n redirectState={redirectState}\n className=\"client-recommendation-page\"\n >\n \"Prédio\"\n

Indicação de Clientes

\n

Indique um novo cliente para a Consigaz.

\n \n \n {listContact && listContact[\"telefone\"].length ? (\n
\n {\n listContact && listContact[\"telefone\"].length > 2\n ? this.props.showToast(\n \"OPS\",\n \"Você inseriu o número máximo de telefones (3).\"\n )\n : this.submitRecommendation();\n }}\n >\n Novo telefone\n \n
\n ) : (\n \"\"\n )}\n {listContact &&\n (listContact[\"telefone\"] || []).map((contact) => (\n \n
\n \n
\n
\n

{`${toTitleCase(\"Telefone\")} `}

\n {contact}\n
\n
\n {\n this.setState(\n {\n deleteData: contact,\n },\n () => {\n this.submitRecommendation();\n }\n );\n }}\n >\n Excluir\n \n
\n
\n
\n ))}\n
\n \n Salvar\n \n
\n\n (this.thanksModal = ref)}\n title=\"Obrigado!\"\n closeButton={true}\n confirmButton={true}\n confirmButtonText=\"Ok\"\n confirmButtonAction={() => {\n redirect(this.props, \"/home-services\", { tab: \"protocol\" });\n }}\n >\n
\n Entraremos em contato com sua indicação no prazo de até{\" \"}\n {prazo && prazo.diff(today, \"days\")} dias úteis!\n
\n
\n Nº do protocolo: {nrpedido}\n \n \n );\n }\n}\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n showToast: toastOperations.show,\n showLoading: loadingOperations.show,\n dismissLoading: loadingOperations.dismiss,\n },\n dispatch\n );\n}\n\nexport default connect(null, mapDispatchToProps)(IndustrialContact);\n","import React, { Component } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport Page from '../../components/Page/Page'\nimport PageCenterContent from '../../components/PageCenterContent/PageCenterContent'\nimport PageHeaderImage from '../../components/PageHeaderImage/PageHeaderImage'\n\nimport CheckIcon from '../../assets/illustrations/checkIcon.png'\n\nexport default class ReligueProtocol extends Component {\n render() {\n return (\n \n \n \n
\n
\n
\n\n
\n

Número do protocolo:

\n\n \n {this.props?.location.state?.protocolNumber}\n

\n\n
\n

O religue será realizado em até 2 dias úteis.

\n
\n\n
\n
\n\n Avançar
\n
\n \n )\n }\n}","import React, { Component } from \"react\";\nimport {\n BrowserRouter as Router,\n Route,\n Switch,\n Redirect,\n} from \"react-router-dom\";\n\nimport ApiContext, { defaultContext as defaultApiContext } from \"../../api\";\n\nimport WellcomePage from \"../../pages/Wellcome/Wellcome\";\nimport WellcomeAgainPage from \"../../pages/WellcomeAgain/WellcomeAgain\";\nimport NewClientPage from \"../../pages/NewClient/NewClient\";\nimport NewIndustrialClientPage from \"../../pages/NewIndustrialClient/NewIndustrialClient\";\nimport ExistentClientPage from \"../../pages/ExistentClient/ExistentClient\";\nimport AddressSearchPage from \"../../pages/AddressSearch/AddressSearch\";\nimport AddressComplementPage from \"../../pages/AddressComplement/AddressComplement\";\nimport AddressActivePage from \"../../pages/AddressActive/AddressActive\";\nimport AddressDonePage from \"../../pages/AddressDone/AddressDone\";\nimport AddressListPage from \"../../pages/AddressList/AddressList\";\nimport CancellationPage from \"../../pages/Cancellation/Cancellation\";\nimport ContestationPage from \"../../pages/Contestation/Contestation\";\nimport SaveTimePage from \"../../pages/SaveTime/SaveTime\";\nimport ServicesPage from \"../../pages/Services/Services\";\nimport ServicesConfirmPage from \"../../pages/ServicesConfirm/ServicesConfirm\";\nimport HomeServicesConfirmPage from \"../../pages/HomeServicesConfirm/HomeServicesConfirm\";\nimport PrivacyPolicyPage from \"../../pages/PrivacyPolicy/PrivacyPolicy\";\nimport WarrantyTermsPage from \"../../pages/WarrantyTerms/WarrantyTerms\";\nimport HomePage from \"../../pages/Home/Home\";\nimport ConsumptionPage from \"../../pages/Consumption/Consumption\";\nimport FinancesPage from \"../../pages/Finances/Finances\";\nimport HomeServicesPage from \"../../pages/HomeServices/HomeServices\";\nimport HomeDeliveryPage from \"../../pages/HomeDelivery/HomeDelivery\";\nimport PersonalDataPage from \"../../pages/PersonalData/PersonalData\";\nimport HelpPage from \"../../pages/Help/Help\";\nimport InvoicePdfPage from \"../../pages/InvoicePdf/InvoicePdf\";\nimport AcquittanceLetterPdfPage from \"../../pages/AcquittanceLetterPdf/AcquittanceLetterPdf\";\nimport DanfePdfPage from \"../../pages/DanfePdf/DanfePdf\";\nimport AdmnistrativeLoginPage from \"../../pages/AdmnistrativeLogin/AdmnistrativeLogin\";\nimport FakeLoginPage from \"../../pages/FakeLogin/FakeLogin\";\nimport ClienteService from \"../../services/cliente\";\nimport AddressSelect from \"../../pages/AddressSelect/AddressSelect\";\nimport IndustrialContact from \"../../pages/IndustrialContact/IndustrialContact\";\nimport ClientRecommendation from \"../../pages/Recommendation/Recommendation\";\nimport ReligueProtocol from \"../../pages/ReligueProtocol/ReligueProtocol\";\n\nconst pageRenderMiddleware = (RouteComponent) => (props) => {\n const localEntrega = ClienteService.localEntrega;\n\n if (localEntrega) {\n const { segmento, email } = localEntrega;\n\n if (segmento === \"CONTASIM\" && !email) {\n return ;\n }\n }\n\n return ;\n};\n\nexport default class App extends Component {\n render() {\n return (\n \n \n \n \n \n \n {[\n [\"/wellcome\", WellcomePage],\n [\"/wellcome-again\", WellcomeAgainPage],\n [\"/new-client\", NewClientPage],\n [\"/new-industrial-client\", NewIndustrialClientPage],\n [\"/existent-client\", ExistentClientPage],\n [\"/address-search\", AddressSearchPage],\n [\"/address-complement\", AddressComplementPage],\n [\"/address-active\", AddressActivePage],\n [\"/address-done\", AddressDonePage],\n [\"/address-select\", AddressSelect],\n [\"/admnistrative-login\", AdmnistrativeLoginPage],\n [\"/fake-login\", FakeLoginPage],\n [\"/address-list\", AddressListPage],\n [\"/cancellation\", CancellationPage],\n [\"/contestation\", ContestationPage],\n [\"/save-time\", SaveTimePage],\n [\"/services\", ServicesPage],\n [\"/services-confirm\", ServicesConfirmPage],\n [\"/home-services-confirm\", HomeServicesConfirmPage],\n [\"/privacy-policy\", PrivacyPolicyPage],\n [\"/warranty-terms\", WarrantyTermsPage],\n [\"/home\", pageRenderMiddleware(HomePage)],\n [\"/consumption\", pageRenderMiddleware(ConsumptionPage)],\n [\"/finances\", pageRenderMiddleware(FinancesPage)],\n [\"/home-services\", HomeServicesPage],\n [\"/home-delivery\", HomeDeliveryPage],\n [\"/personal-data\", PersonalDataPage],\n [\"/help\", HelpPage],\n [\"/invoice-pdf\", InvoicePdfPage],\n [\"/consigaz/invoice-pdf\", InvoicePdfPage],\n [\"/acquittance-letter-pdf\", AcquittanceLetterPdfPage],\n [\"/danfe-pdf\", DanfePdfPage],\n [\"/consigaz/danfe-pdf\", DanfePdfPage],\n [\"/industrial-contact\", IndustrialContact],\n [\"/recommendation\", ClientRecommendation],\n [\"/religue-protocol\", ReligueProtocol],\n ].map(([path, component]) => (\n \n ))}\n \n \n \n );\n }\n}\n","/* istanbul ignore file */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","/* istanbul ignore file */\n\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { createRoot } from 'react-dom/client';\n\nimport App from './components/app/App';\nimport * as serviceWorker from './services/serviceWorker';\nimport configureStore from './state/store';\n\nimport './index.scss';\n\nconst store = configureStore({})\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render( \n \n \n \n);\n\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","\nimport { createStore, combineReducers } from \"redux\";\nimport * as reducers from \"./ducks\";\n\nexport default function configureStore( initialState ) {\n const rootReducer = combineReducers( reducers );\n\n return createStore(\n rootReducer,\n initialState\n );\n}","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKEAAACQCAMAAABXqfuMAAABVlBMVEUAAAAENGLf9vwENGAAMGAFM2EAMGAENGEDMmIEM2EFM2EDM2MEM2IFM2IFM2EFMmEENGEAMGAvWoAEM2EENGITQmEEM2FRh/pliqZjiKWevc8NO2EDM2EHNmEkUF8RQXlTiv/f9vxUiv8EM2JTiv9Siv8DMmFViv9Ri/8FNGLf9v3L5Vh6zd5Uiv86ZIg/gKCoxdYhWoFxla/Y7ISZuVoYSYg7ZYlylrBcp79cpr4ENGGAolwPPmq10N/D3emMrcNnjF2yzllvkXQQPWEpVGClw1qauc2Sssejvnu+2llAddhOdV5/oLmNrlwRPmE1X2BEbI/R6fOXt8pJcJMeTHZWfJt0mFxTeZkwbJATRnEdSWNagF3I4u1jiKVCal6evM+91YBtj3IRPmR5m7RqjqoTQ39TeW42acTL4IIsVWiqx9iNrsMiU5ywyX2WsnqIp3h8m3Vgg3D7BiW6AAAAKXRSTlMAgMdAMKAQwGDw0FDw4d9wvyD4kI/PsPXj49XIX/b248jGwK+QYEwwLJ6pMlgAAAZCSURBVHja7dxZe9JAFIDhIEkIUIp13/ftgKUUsVXZRGkVKWBtrdpWrXXf9f/fmOY89CQM2Ukyar8LvcgTfU2YZDKhCvrkixBWKVHw0hEIr0lPwhSEmCehBOGV8SSMa/u+vxloZxOwU1bwVAbUPk4H2jUR1CZkb8Ksdgyng+wCfpYkwVvyBKg9mg6wy3IS1ESPQvz3fZsOrqOCAmopwWsiqFWPTgfWJbykKYLnUgGPlas0TjymBDtWzvkYJzRWAo/GCbf3lZTgJxGCTxF8BcEX9y+sFoLpQCIzJmEhF0z7hNiecE/oWLg6r9bgWahV2BOOSfhyTt98jqoZtqzUaAuzU5DCJTDWIEYVDK3SFmanAEZKSU37cwtg7OkuowhD1XMYu1MpuKsN+5cVzIXFCIWz2AjhC9zygoTMTqEIr2MjhDO4ZYaEwzv9tUI5HpMSJw8fPnwydmqKP+GV7H7QlzkkciY8DUz70zwJ75isefIuBDjEmfB+/67aRr9FxJTMj3D97kJ+UHPt1YCYFDkR9rpoI+SrXSIXQijnmcotQOIUr8J8u4PEFLfCfH4NiQf5FQ6IcQ/CW9gI4XPc8pyEzE62QgpP9CQH80MSDoXDReFY2MSD6Er4FIy9pAcpGGp5d9OKJyGd57RjIXukqronugLzBGO3k72weR/UJIdCrF7StVTP6WroNy3mKGYnZ0I6iK6EbKWq1lLOffbCLl5w/AnfgdbbQIRt2CkWhbAxr3Ysth+F5vVB7Uj4QhpXdsK7oJbwJ2w81noSoBD8CKlghBXuhWXXwvq8vjrz4cdwxdZqp1pR7URcshN23QqLYCzQewp9Dvm9L+fzG9pY5mZu0zS5HkqcCJstgMqwEO8pboW3sVFzbNxCc2xmJwuh9gjaHDVQRE6eU3rsZxLVE7w8SQErxEm2xLGwgyeZX2ETtGR+hWsoTGa5FVZ2l2RlToX5Fq3TcSrMV9YHxDSnQjImRV6F+fYGESMTrrVaa4yQGTCTcmRCbQ7YISFT9z4uJUYm7AD+SkKGCFrxqN6NbgBVtppqp6KaH3ZblkKayYJiLQzsHX253SKh+6VEEo7tew6LzNUGiQZhu9wccZ5FKyFWKugr5ajain4LfVeE2WkpxwiRqBdWetCrsAfxoImwOqf2MjfuSEjEsu4S2GOn25PhfiOIhEQsExCgzV5xpkITsqtzbRTqgK0RS4npkIQ0vpn7MgHvL+QNaVOIGA9CAjpb7CRcOEICjl7sjF5IQE/Cr/NMutcSRapm9NSL1DKOlJLa8VhiWNghoBdhCUa0NBidoK/aIN/yAdA3h8bcyBksAZk2HAhXGR5tXAZjVRI+Zf5NpkICsvUdCMFCWASTxU/Ha18WQBLGxigsuhayQPaKnXUgfKRrWDg7ozU7QjiDWQoJaPq0IjoQTusyCv0/6xGQrYMLdZELTYHtHqhJ0Qu71i8F0tELTZ8CevjTpfwK8V4T41eIA3lC5la4AFqKwKtwoQd4x+NV2EXgxBSvwjXA0gKfwnILMEWIWNjE9aV+13iC+0DACIXN8t0zMKjXqSC5XOn0gICehf7nNnfAtowoeBf6nx/aCw/KAtfCBB5A38I6DGXxnOJCOCHF0eFLiJVMVxbrxiewA8usMCMpU7hUnZZS9PGT0nh+fQux5eLQUzFVYx+lSQhZPI20mC7Gd6KT61voJRKiioTUnnBP+F8KV0DryV8oVHgX3oFkTOZcCJBMexCmJ8FV1Xm6zT1Q2xwWLj3TqrHCnSTXwilwG72ve4DHyiYSItGtMA6uK7kVntcLgUchHkP4sO1d+GLWYatOhTTRoW/qPtz6DINSh07JboQz1x12yyDcXFTbtHmVQj288QmJWPKQHKiQciG8sbUNeqMYpnDzgVbRWnjjDRhSQhS+Bq3HNsJP2+D0KIrZmJaEz78Oew5qc/S1dStho6SFb81QqPYLANY/vPm9bvezjgqMoyIrNLvaoFDt4Zsf2u8/t63PczIqIfXdbLEQg3ELNxe1vjgV7o4aORwh5UK4ZXl30e4kM5SbkVIoDap7EVK2wtnrlMerzT8u3OJO+OGesT6OFH6EJv/jhGAhrM5SbmZfq3MuO7B/0lSomApDzkyYEngXiqbCBPBQwuJhQAydmEkLbvoD5Ye0nPYKOwQAAAAASUVORK5CYII=\""],"sourceRoot":""}